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

Service

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

My

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

Policy

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

© 2026 그알것 · What Still Matters

질문 목록Spring
Spring

AutoConfiguration 동작 원리를 설명해주세요

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

면접관의 질문 의도

자동설정을 "그냥 마법" 정도로 아는지, 후보 → 조건 평가 → Import 흐름을 단계로 풀 수 있는 사람인지를 가른다.

큐레이션 답변

학습 자료

Spring Boot 자동설정은 @SpringBootApplication 안의 @EnableAutoConfiguration에서 시작된다. AutoConfigurationImportSelector가 spring.factories(또는 AutoConfiguration.imports) 파일에서 후보 클래스를 수집하고, 중복 제거·@SpringBootApplication exclude 반영·@Conditional 평가를 거쳐 최종 Import 목록을 정한다. @ConditionalOnClass, @ConditionalOnMissingBean 같은 조건이 클래스패스와 사용자 정의 빈을 살펴서 "필요할 때만" 자동설정이 적용된다. 즉 "무조건 다 들어오는" 게 아니라 조건이 통과한 자동설정만 컨텍스트에 들어간다.

좋은 답변 구조

  1. 01@EnableAutoConfiguration과 AutoConfigurationImportSelector의 역할을 정의한다
  2. 02후보 수집 → exclude → @Conditional 평가 → Import의 단계별 흐름을 설명한다
  3. 03@ConditionalOnMissingBean 같은 분기 조건이 사용자 빈에 어떻게 양보하는지 짚는다
  4. 04디버깅 도구(ConditionEvaluationReport, --debug)와 운영 시 자동설정 제어 전략으로 마무리한다

자주 실수하는 포인트

자동설정을 "마법" 정도로 설명하고 후보 수집/조건 평가 단계를 빠뜨린다
exclude와 @Conditional 필터링의 적용 순서를 헷갈린다
@ConditionalOnMissingBean 때문에 사용자가 정의한 빈이 우선한다는 사실을 모른다
문제 발생 시 ConditionEvaluationReport 같은 디버깅 도구를 떠올리지 못한다

실무 맥락

  • starter 의존성 추가 후 의도하지 않은 DataSource/Security 빈이 등록되는 상황
  • 자동설정 일부를 끄고 커스텀 설정으로 갈아끼워야 하는 멀티 환경 프로젝트
  • 공통 모듈에서 자동설정 starter를 만들어 팀에 배포해야 하는 작업

본인 경험에 녹이는 힌트

ConditionEvaluationReport를 읽어 "어떤 조건에서 빈이 빠졌는지"를 찾은 적이 있다면 자동설정 디버깅 방법으로 연결할 수 있다

exclude로 충돌을 해소한 경험이 있다면 후보 선택의 어느 단계에 개입한 건지로 말할 수 있다

사내 공용 starter에 @AutoConfiguration을 직접 작성해본 적이 있다면 어떤 @Conditional 조합을 썼는지가 답변 후크가 된다

커뮤니티 인기 답변

전체 0개

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

관련 꼬리 질문

Q1AutoConfiguration과 @Configuration의 우선순위는 어떻게 되나요
Q2자동설정 적용 여부를 확인하는 방법은 무엇인가요
Q3starter를 만들 때 자동설정은 어떻게 구성하나요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문