카테고리 없음

12. Bean 관리 - XML 방식과 어노테이션 방식 비교

leek94 2024. 9. 20. 20:40
구분 XML 방식 어노테이션 방식
빈 정의 방식 XML 파일에서 <bean> 태그로 빈을 정의 클래스에 어노테이션을 사용하여 빈을 정의
사용되는 파일 applicationContext.xml 등 XML 설정 파일 Java 클래스 내에 어노테이션으로 직접 정의
주요 어노테이션/태그 <bean> 태그 @Component, @Service, @Repository, @Controller, @Configuration
의존성 주입 방식 <property> 또는 <constructor-arg>를 사용해 주입 @Autowired, @Inject 어노테이션으로 주입
명시적 빈 등록 <bean> 태그로 수동 등록 어노테이션으로 자동 감지하여 등록
유연성 대규모 프로젝트에서 중앙에서 모든 빈 관리 가능 더 간결하고 적은 코드로 관리 가능
가독성 및 관리 용이성 설정 파일이 커지면 관리가 복잡할 수 있음 코드와 설정이 한곳에 있어 더 쉽게 이해 가능
동적 빈 구성 빈의 속성이나 의존성을 동적으로 설정할 수 있음 주로 정적 설정이며, 복잡한 설정 시 코드가 복잡해질 수 있음
테스트 용이성 테스트 환경에 맞춰 XML 파일을 변경 가능 테스트 시 코드 내에서 빈을 쉽게 변경 가능
구현 방식의 투명성 설정 파일을 통해 명시적으로 확인 가능 설정이 코드에 포함되어 명시적으로 확인이 어려울 수 있음
초기 설정 많은 XML 설정 필요 적은 설정으로 빠르게 시작 가능
호환성 XML 설정은 오래된 스프링 버전에서도 사용 가능 최신 스프링에서 권장하는 방식
설정 관리 도구 IDE의 XML 편집기 지원 Java 코드를 통한 IDE의 지원 (자동완성 등)