백엔드 개발 · 중급
Spring Bean의 생명주기(Lifecycle)에 대해 설명해주세요. 초기화와 소멸 콜백은 어떻게 처리하나요?
힌트 · @PostConstruct, @PreDestroy, InitializingBean 등을 생각해보세요.
BeanPostProcessorInitializingBeanDisposableBean@PostConstruct@PreDestroy
모범답안
Spring Bean의 생명주기는 Bean이 생성되고, 사용 가능하게 되며, 소멸되는 과정을 말합니다.
Bean이 생성된 후 초기화 단계에서는 InitializingBean 인터페이스의 afterPropertiesSet 메서드나 @PostConstruct 어노테이션을 사용하여 Bean 초기화 작업을 수행할 수 있습니다. InitializingBean은 인터페이스를 구현해야 하지만, @PostConstruct는 어노테이션만 붙이면 되므로 더 간편하게 사용할 수 있습니다.
Bean이 소멸되기 전에는 DisposableBean 인터페이스의 destroy 메서드나 @PreDestroy 어노테이션을 사용하여 Bean 소멸 작업을 수행합니다. 마찬가지로 @PreDestroy가 더 편리합니다.
BeanPostProcessor를 사용하면 Bean의 초기화 전후에 사용자 정의 로직을 추가할 수도 있습니다. 이는 Bean의 생성 과정에 더 세밀한 제어를 가능하게 합니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Java / Spring 면접 질문
- Spring의 프로파일(Profile) 기능은 무엇이며, 어떻게 활용하나요?
- Java의 String, StringBuilder, StringBuffer의 차이점은 무엇인가요?
- Spring의 @Transactional 애노테이션의 propagation 속성에 대해 설명하고, REQUIRED와 REQUIRES_NEW의 차이점을 설명해주세요.
- Spring에서 AOP(Aspect Oriented Programming)란 무엇이며, 어떤 상황에서 사용하나요?
- Spring Boot의 자동 설정(Auto Configuration)은 어떻게 동작하나요?
- Java 8의 Stream API와 병렬 스트림(Parallel Stream)의 사용법과 주의사항에 대해 설명해주세요.