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

Service

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

My

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

Policy

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

© 2026 그알것 · What Still Matters

질문 목록Java
Java

try-with-resources는 왜 필요하며 suppressed exception은 무엇인가요?

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

면접관의 질문 의도

문법 사용 여부보다 try-finally 대비 안전성과 suppressed exception이 왜 생겼는지를 같이 보는지 가르려는 질문이다.

큐레이션 답변

학습 자료

try-with-resources는 AutoCloseable을 구현한 객체를 try 괄호에 선언하면 블록을 빠져나갈 때 close를 자동 호출한다. 여러 자원을 동시에 잡으면 선언의 역순으로 정리되므로 수동 finally보다 누락이 적고 코드가 짧아진다. 본문에서 예외가 먼저 나고 close에서도 예외가 발생하면 close 예외를 suppressed로 보관해 원인 예외를 그대로 위로 던지고, 두 예외를 함께 추적할 수 있게 해준다. 정리 안정성과 디버깅 품질을 한 문법으로 챙길 수 있다는 게 핵심이다.

좋은 답변 구조

  1. 01try-with-resources의 전제(AutoCloseable)와 자동 close 동작을 설명한다
  2. 02수동 try-finally와의 차이를 누락 위험·코드 단순성 측면에서 비교한다
  3. 03다중 자원의 정리 순서를 짚는다
  4. 04suppressed exception이 디버깅에 어떤 가치를 주는지 정리한다

자주 실수하는 포인트

AutoCloseable이 아닌 객체를 같은 방식으로 처리하려 한다
close 예외가 본문 예외를 덮어 원인이 사라지는 상황을 간과한다
다중 자원이 선언 역순으로 닫힌다는 점을 오해해 자원 의존 순서를 잘못 설계한다

실무 맥락

  • JDBC 커넥션·Statement·ResultSet을 한 메서드 안에서 같이 잡는 코드
  • 파일·소켓·스트림을 다루며 자원 누수가 곧 운영 장애로 이어지는 환경
  • 예외 로그가 모니터링·알림과 직접 연결돼 원인 예외 정확도가 중요한 환경

본인 경험에 녹이는 힌트

장수명 프로세스에서 자원 누수로 메모리가 천천히 차오른 경험이 있다면 try-with-resources 도입 효과와 연결할 수 있다

suppressed 예외 로그를 따라가서 close 단계의 숨은 원인을 잡아본 적이 있다면 디버깅 사례로 말할 수 있다

커스텀 리소스를 AutoCloseable로 설계해 본 경험이 있다면 close 멱등성·예외 정책 판단으로 엮을 수 있다

커뮤니티 인기 답변

전체 0개

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

관련 꼬리 질문

Q1try-with-resources에서 자원 해제 순서는 어떻게 결정되나요
Q2suppressed exception은 코드에서 어떻게 조회하나요
Q3커스텀 리소스를 AutoCloseable로 설계할 때 주의점은 무엇인가요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문