그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록Java
Java

자바에서 Checked Exception과 Unchecked Exception에 대해서 설명해주세요

실무4/5
설계4/5
인간3/5
기초3/5

면접관의 질문 의도

정의를 외운 사람인지, 복구 가능성·API 사용성·@Transactional 롤백 정책까지 묶어서 _언제 무엇을 쓸지_ 설명하는 사람인지를 가른다.

큐레이션 답변

학습 자료

Checked Exception은 Exception(RuntimeException 제외) 계열로, 호출자가 try/catch나 throws로 _처리하도록 컴파일러가 강제_한다. Unchecked Exception은 RuntimeException 계열로 강제가 없고 보통 코드 결함·불변식 위반 상황에서 던진다. Error는 OOM 같은 JVM 수준 문제라 일반 비즈니스 catch 대상이 아니다. 스프링 환경에서는 @Transactional 기본 정책상 RuntimeException과 Error만 자동 롤백되고 Checked Exception은 기본 롤백 대상이 아니라는 점까지 봐야 한다.

좋은 답변 구조

  1. 01Checked·Unchecked·Error의 정의와 _복구 가능성_이라는 판단 축을 정리한다
  2. 02컴파일러 강제·라이브러리 API 사용성·@Transactional 롤백 정책을 차이 축으로 짚는다
  3. 03내부 API·공용 라이브러리 API·도메인 검증 실패 등 상황별 선택 기준을 조건으로 제시한다
  4. 04팀 컨벤션과 라이브러리 공개 범위를 고려한 결론으로 마무리한다

자주 실수하는 포인트

Checked/Unchecked 차이를 "컴파일러가 검사하느냐"로만 외운다
@Transactional이 Checked Exception에 _자동 롤백되지 않는다_는 사실을 모른다
도메인 검증 실패까지 Checked로 던져 호출자에게 try/catch를 강제한다
Error까지 catch해서 OOM/StackOverflowError를 삼킨다

실무 맥락

  • 공용 라이브러리 API를 설계하면서 어떤 예외를 노출할지 정해야 하는 상황
  • 서비스 계층 @Transactional 메서드에서 Checked 예외 발생 시 롤백 여부 점검
  • 도메인 검증 실패와 시스템 오류를 분리해 핸들러에서 다르게 처리해야 하는 컨트롤러 설계

본인 경험에 녹이는 힌트

@Transactional이 Checked Exception에 롤백되지 않아 데이터가 일부 반영된 사고를 본 적이 있다면 그 케이스가 그대로 답변 후크가 된다

Checked Exception을 도메인 RuntimeException으로 감싸는 컨벤션을 만든 경험이 있다면 API 사용성 이야기로 자연스럽게 이어진다

도메인 검증 실패와 인프라 오류를 분리해 ControllerAdvice에서 다르게 처리한 경험이 있다면 깊이 있는 답이 된다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1도메인 검증 실패는 Checked와 Unchecked 중 무엇이 적절한가요
Q2공용 라이브러리 API에서는 어떤 기준으로 선택하나요
Q3Error를 catch하지 않는 이유는 무엇인가요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문