카테고리 없음
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의 지원 (자동완성 등) |