1. 자바의 예외 처리 방식과 Checked/Unchecked 예외의 차이점
자바에서 예외는 프로그램 실행 중 발생할 수 있는 오류 상황을 처리하기 위한 메커니즘이다. 예외는 크게 두 가지로 구분된다.
- Checked Exception: 컴파일 타임에 확인되며, 반드시 try-catch 구문 또는 throws 키워드로 처리해야 한다.
- Unchecked Exception: 런타임 시 발생하며, 명시적 예외 처리를 강제하지 않는다.
실무에서는 대부분 Unchecked Exception을 활용하여 예외 흐름을 간결하게 유지하고, 예외 처리 정책을 통합적으로 관리하는 방향으로 설계한다.
2. 전역 예외 처리(Global Exception Handling) 전략
스프링 프레임워크에서는 전역 예외 처리 방식으로 @ControllerAdvice와 @ExceptionHandler를 이용할 수 있다. 이를 통해 예외 발생 시 공통된 응답 구조와 메시지를 유지할 수 있으며, 각 예외 유형에 따라 적절한 HTTP 상태 코드와 메시지를 반환하도록 설정할 수 있다.
전역 예외 처리 전략은 시스템의 신뢰성과 유지보수성을 향상시키는 핵심 요소이며, 공통 예외 응답 포맷 정의, 커스텀 예외 클래스 설계, 로깅 연계 등과 함께 구성된다.
3. 자바의 로깅 프레임워크와 효과적인 로그 설계
로깅은 애플리케이션의 상태를 기록하고, 운영 중 발생할 수 있는 이슈를 추적하는 데 필수적인 기능이다. 자바에서는 다음과 같은 로깅 프레임워크가 널리 사용된다.
- SLF4J: 로깅에 대한 추상화 계층을 제공하는 인터페이스
- Logback: SLF4J의 기본 구현체로, Spring Boot에서 기본 채택
- Log4j2: 고성능 로깅 구현체
로깅은 단순 메시지 출력이 아니라, 로그 레벨을 체계적으로 관리하고 민감한 정보의 출력 여부를 고려해야 하며, 시스템 규모에 따라 로그 집계 및 분석 도구와의 연계도 중요하다.
4. 자바에서 자주 사용되는 설계 패턴과 실무 활용 사례
설계 패턴은 객체지향 설계를 보다 유연하고 재사용 가능하게 하기 위한 검증된 설계 기법이다. 면접에서는 패턴의 이해뿐 아니라, 실무에서의 활용 사례를 함께 설명할 수 있는 것이 중요하다.
- Singleton 패턴: 객체를 하나만 생성하여 공유. 예: 스프링 Bean 관리
- Factory 패턴: 객체 생성 로직을 별도로 추출. 예: 서비스나 DAO 생성
- Strategy 패턴: 알고리즘을 인터페이스로 캡슐화하여 동적으로 교체 가능. 예: 할인 정책, 인증 전략 등
- Observer 패턴: 한 객체의 상태 변화에 따라 다른 객체들이 반응. 예: 이벤트 시스템
- Template Method 패턴: 알고리즘의 골격을 정의하고 일부 단계를 서브클래스에서 구현. 예: 공통 처리 흐름 추상화
설계 패턴은 코드 재사용성과 유지보수성을 높이는 데 기여하며, 면접에서는 패턴을 적용한 실제 사례를 근거로 설명하는 것이 좋다.
5. 예외 처리, 로깅, 설계 패턴의 통합적 활용 방안
실무에서는 위 세 가지 요소를 분리하여 사용하는 것이 아니라, 시스템 전반에 걸쳐 통합적으로 설계하는 것이 중요하다.
- 예외 발생 시 적절한 설계 패턴(전략, 템플릿 등)을 통해 로직 분리를 유도하고,
- 전역 예외 처리 구조를 바탕으로 일관된 응답 포맷과 상태 코드 반환을 구현하며,
- 로그를 통해 예외 발생 원인과 흐름을 기록하고, 운영 환경에서의 추적 가능성을 확보한다.
특히, 예외 처리 로직에 패턴을 결합하거나, 로깅을 AOP로 분리하여 적용하는 등 유지보수성과 테스트 용이성을 고려한 구조 설계가 면접에서 긍정적으로 평가된다.
정리
예외 처리, 로깅, 설계 패턴은 단순한 기술 요소를 넘어 소프트웨어의 안정성과 품질을 좌우하는 핵심 영역이다. 면접에서는 각 기술에 대한 기본 지식뿐 아니라, 통합적으로 어떻게 설계하고 활용할 수 있는지에 대한 실무적인 관점이 중요한 평가 요소가 된다.
섹션6. 스프링MVC & REST API 설계
면접에서 진짜 자주 나오는 자바 질문 - 섹션 6. 스프링 MVC & REST API 설계
1. 스프링 MVC의 아키텍처 구성과 흐름 스프링 MVC는 Model-View-Controller 디자인 패턴을 기반으로 한 웹 애플리케이션 프레임워크이다. 주요 구성 요소는 DispatcherServlet, Controller, Model, View로 나눠진다.D
biesil.tistory.com
'Programming > Java' 카테고리의 다른 글
JAVA 자주 나오는 자바 면접 질문 30개 예시 (0) | 2025.04.17 |
---|---|
면접에서 진짜 자주 나오는 자바 질문 - 섹션 6. 스프링 MVC & REST API 설계 (0) | 2025.04.17 |
면접에서 진짜 자주 나오는 자바 질문 - 섹션 4. 자바 8 핵심 기능 (0) | 2025.04.17 |
면접에서 진짜 자주 나오는 자바 질문 - 섹션 3. 자바 동시성 및 멀티스레딩 (0) | 2025.04.17 |
면접에서 진짜 자주 나오는 자바 질문 - 섹션 2. 자바 고급 개념 (0) | 2025.04.17 |