Spring Boot 개념 정리
자동 bean 등록, 수동 bean 등록 어떤 경우에 하는게 좋을까?
반오십 코린이
2023. 2. 19. 14:12
728x90
@Component, @Controller, @Service, @Repository 등을 통해 자동으로 스캔하면 굉장히 간단하다.
수동으로 bean 등록을 진행하면 @Configuration 설정 정보 class에서 @Bean을 적고 객체 생성과 주입 대상을 일일이 적어주어야 하기 때문에 번거롭다.
추후에 관리할 빈이 많아서 설정 정보가 커지면 정보를 관리하는 것 자체가 부담이 된다. (유지 보수에 부담)
자동빈을 사용하면 OCP, DIP 같은 객체 지향 원칙을 지킬 수 없나?
그것도 아니다. 잘 지킬 수 있다.
그럼 수동빈을 굳이 사용하는 이유는 무엇인가?
애플리케이션은 크게 업무로직과 기술 지원 로직으로 나눌 수 있다.
업무 로직은 컨트롤러, 서비스, 레포지토리 등을 의미한다.
기술 지원 로직은 말그대로 기술적인 문제나 공통 관심사(AOP)를 처리할 때 주로 사용됨.
예를 들어 데이터 베이스 연결, 공통 로그 처리 등등이 있다.
업무 로직 같은 경우는 문제가 발생하면 어디가 문제인지 명확하게 보이지만
기술 지원 로직 같은 경우는 적용이 잘 되고 있는지 파악하기 어려운 경우가 많다.
그래서 기술 지원 로직은 가급적 수동 빈 등록을 통해 명확하게 드러내야한다.
이외에 어떤 경우들이 있을까?
직접 등록하는 기술 지원 객체는 수동 등록
다형성을 적극 활용하는 비즈니스 로직은 수동 등록을 고민해보자
728x90