스프링 부트 AutoConfiguration은 어떻게 필요한 빈만 자동 등록할까 빠른 답 AutoConfiguration의 출발점은 @SpringBootApplication 내부의 @EnableAutoConfiguration이다. AutoConfigurationImportSelector가 후보 설정을 수집하고 조건에 맞는 클래스만 남긴다. 원하지 않는 자동 설정은 exclude, excludeName, spring.autoconfigure.exclude로 제거할 수 있다. 빈 등록 결과가 예상과 다르면 --debug와 Condition Evaluation Report부터 확인하는 것이 가장 빠르다. 목차 흐름으로 보기 왜 AutoConfiguration이 필요한가: 반복 설정을 줄이는 기본 전략 @SpringBootApplication 에서 시작되는 자동 설정 진입점 AutoConfigurationImportSelector 는 어떤 순서로 후보를 고를까 조건부 자동 설정은 어떻게 읽어야 할까 실전 예시: spring-boot-starter-web 을 추가하면 무엇이 일어날까 자동 설정을 끄거나 바꾸는 실전 설정 방법 디버깅: 왜 어떤 빈은 등록되고 어떤 빈은 빠질까 실무에서 자주 하는 오해와 주의점 정리 흐름으로 보기 핵심은 단순합니다. 스프링 부트가 "마법처럼 아무 빈이나 등록하는 것"이 아니라, 자동 설정 후보를 먼저 모으고, 애플리케이션 상태를 보고, 조건을 통과한 설정만 적용하는 구조입니다. 그래서 AutoConfiguration은 감으로 이해하기보다 "후보 수집 -> 조건 평가 -> 빈 등록"의 흐름으로 보는 편이 훨씬 정확합니다. 왜 AutoConfiguration이 필요한가: 반복 설정을 줄이는 기본 전략 순수 스프링만 사용할 때는 웹 서버, JSON 직렬화기, 메시지 컨버터, 데이터소스, 트랜잭션 매니저 같은 인프라 빈을 직접 등록하는 경우가 많았습니다. 문제는 이런 설정이 프로...