[Effective-Java] Chapter10 #75. 예외의 상세 메시지에 실패 관련 정보를 담으라
·
Reference/Effective-Java
이번 주제는 자바 라이브러리에서 권장하기 보단, 책의 저자가 권장하는 방식에 대한 이야기다. 📌 스택 추적(stack trace) 예외 객체의 toString 메서드를 호출해 얻은 문자열 일반적으로 예외 클래스 이름 뒤에 상세 메시지가 붙는 형태 프로그래머 혹은 신뢰성 엔지니어(SRE; Site Reliability Engineer)가 실패 원인을 분석하기 위한 유일한 정보인 경우가 많다. 실패를 재현하기 힘든 경우, 더 자세한 정보를 얻기가 어렵거나 불가능하다. toString 메서드에 실패 원인에 관한 정보를 가능한 한 많이 담아야 한다. 📌 예외 상세 메시지에 담겨야 하는 정보 💡 스택 추적 정보는 많은 사람이 볼 수 있으므로 비밀번호나 암호 키 같은 보안 정보는 담지 마라 예외에 관여된 모든 매개..
[OS] Process
·
Computer Science/Computer Structure & OS
강민철님의 "혼자 공부하는 컴퓨터 구조+운영체제"을 기반으로 학습한 게시물입니다. 📕 목차 1. Overall 2. Process State & Hierarchy Structure 3. Thread 1. Overall 📌 Process 보조 기억 장치에 저장된 프로그램을 메모리에 적재하고 실행시킨 프로그램 종류 Foreground Process 사용자가 보는 앞에서 실행되는 process 일반적인 명령어 실행은 모두 전면 처리 과정 Background Process 수행이 오래 걸리는 작업 등의 사용자가 보지 못하는 후면에서 실행되는 process 사용자와 일정 상호작용하지 않고 정해진 일만 수행하는 Background Process를 Unix 체계에선 데몬(daemon), Window 체제에서는 서비스..
[SQL] Index
·
Backend/MySQL
우재남님의 "혼자 공부하는 SQL"을 기반으로 학습한 게시물입니다. 📕 목차 1. What is Index? 2. 내부 작동 3. Practice 1. What is Index? 📌 Concept 데이터 저장(INSERT, UPDATE, DELETE) 성능을 희생하고 조회(SELECT) 성능을 높여주는 자료구조 책 뒷편의 '찾아보기'와 비슷하다 효율적인 검색을 위해 자주 찾는 column을 Index로 생성해 놓는다. Index는 Table의 Column 단위로 생성된다. 하나의 column에 여러 개의 Index를 생성하거나, 여러 개의 column을 묶어 하나의 Index로 만들 수도 있으나 드문 경우다. 알파벳 순서 또는 한글 순서 등의 형태로 정렬되어 있다. 용어를 요약해두지 않고, 어느 페이지에..
[Effective-Java] Chapter10 #74. 메서드가 던지는 모든 예외를 문서화하라
·
Reference/Effective-Java
1️⃣ 검사 예외는 항상 따로따로 선언하고, 각 예외가 발생하는 상황을 @throws 태그로 정확히 문서화하라 공통 상위 클래스(Exception, Throwable)로 뭉뚱그려 선언하는 일은 삼가하라 메서드 사용자에게 대처할 힌트를 주지 못한다. 같은 맥락에서 발생할 여지가 있는 다른 예외까지 삼켜버릴 수 있다. main 메서드는 오직 JVM만이 호출하므로 Exception을 던져도 괜찮은 유일한 예다. 비검사 예외도 검사 예외처럼 문서화 해두면 좋다. 자신이 일으킬 수 있는 오류들을 알림으로써 프로그래머가 해당 오류가 나지 않도록 코딩하게 돕는다. 사실상 해당 메서드를 성공적으로 수행하기 위한 전제조건이 된다. 인터페이스 메서드의 경우 해당 조건이 일반 규약에 속하게 되어, 모든 구현체가 일관되게 동..