Spring Boot의 자동 설정(Auto Configuration)은 어떻게 동작하나요?
힌트 · @EnableAutoConfiguration과 spring.factories를 생각해보세요.
모범답안
Spring Boot의 자동 설정은 개발자가 직접 Bean을 등록하지 않아도 Spring 애플리케이션을 쉽게 구성할 수 있도록 도와주는 기능입니다. 핵심은 @EnableAutoConfiguration 어노테이션과 spring.factories 파일입니다.
@EnableAutoConfiguration 어노테이션은 애플리케이션 시작 시 자동 설정 클래스들을 로드하도록 지시합니다. 이 때, Spring Boot는 META-INF/spring.factories 파일에서 자동 설정 클래스 목록을 찾습니다.
spring.factories 파일에는 org.springframework.boot.autoconfigure.EnableAutoConfiguration 키에 해당하는 자동 설정 클래스들이 나열되어 있습니다. 각 자동 설정 클래스는 @ConditionalOnClass와 같은 조건부 어노테이션을 사용하여 특정 클래스가 classpath에 존재할 때만 Bean을 등록하도록 구성됩니다. 예를 들어, DataSource 클래스가 존재하면 데이터베이스 관련 Bean을 자동으로 등록하는 식입니다.
이러한 자동 설정은 Spring Boot Starter를 통해 제공되며, 개발자는 필요한 Starter만 추가하여 애플리케이션에 필요한 기능들을 쉽게 활성화할 수 있습니다.
읽었다면, 이제 직접 답해볼 차례예요
패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.
함께 보는 Java / Spring 면접 질문
- Spring의 @Transactional 애노테이션의 propagation 속성에 대해 설명하고, REQUIRED와 REQUIRES_NEW의 차이점을 설명해주세요.
- Spring Bean의 생명주기(Lifecycle)에 대해 설명해주세요. 초기화와 소멸 콜백은 어떻게 처리하나요?
- Spring에서 AOP(Aspect Oriented Programming)란 무엇이며, 어떤 상황에서 사용하나요?
- Java 8의 Stream API와 병렬 스트림(Parallel Stream)의 사용법과 주의사항에 대해 설명해주세요.
- Spring Security의 인증(Authentication)과 인가(Authorization)의 차이점과 동작 방식을 설명해주세요.
- JWT(JSON Web Token)의 구조와 Spring에서의 활용 방법에 대해 설명해주세요.