정의를 외운 사람인지, 복구 가능성·API 사용성·@Transactional 롤백 정책까지 묶어서 _언제 무엇을 쓸지_ 설명하는 사람인지를 가른다.
Checked Exception은 Exception(RuntimeException 제외) 계열로, 호출자가 try/catch나 throws로 _처리하도록 컴파일러가 강제_한다. Unchecked Exception은 RuntimeException 계열로 강제가 없고 보통 코드 결함·불변식 위반 상황에서 던진다. Error는 OOM 같은 JVM 수준 문제라 일반 비즈니스 catch 대상이 아니다. 스프링 환경에서는 @Transactional 기본 정책상 RuntimeException과 Error만 자동 롤백되고 Checked Exception은 기본 롤백 대상이 아니라는 점까지 봐야 한다.
@Transactional이 Checked Exception에 롤백되지 않아 데이터가 일부 반영된 사고를 본 적이 있다면 그 케이스가 그대로 답변 후크가 된다
Checked Exception을 도메인 RuntimeException으로 감싸는 컨벤션을 만든 경험이 있다면 API 사용성 이야기로 자연스럽게 이어진다
도메인 검증 실패와 인프라 오류를 분리해 ControllerAdvice에서 다르게 처리한 경험이 있다면 깊이 있는 답이 된다
아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.