Spring 핵심 원리 기본편 (9) - (Spring Bean 등록) 자동 vs 수동의 올바른 실무 운영 기준

김정욱·2021년 2월 23일
1
post-thumbnail

지금까지

  • 지금까지 우리는 스프링 컨테이너에 스프링 빈(Bean)을 등록하는 2가지 방법을 모두 다룸
    • 수동 : AppConfig@Bean을 사용해 빈 등록
    • 자동 : Component Scan + @Component로 자동 빈 등록
  • 2가지 방법에 대해 어떤 경우에 자동 / 수동이 적합할지에 대한 생각을 해야함
  • 스프링 핵심원리 기본편김영한 님의 실무 운영 기준으로 작성!

Application의 로직(Logic)

  • Application 개발을 할 때 크게 2가지 로직(업무 / 기술지원)으로 나눌 수 있다.
  • 업무 로직
    : 보통 비즈니스 요구사항을 개발할 때 추가되거나 변경되는 로직들!
    • 개수가 많다. (기술 지원 로직 보다)
    • 자동으로 빈을 등록하는 것이 좋다 (유사 패턴이 생기기 때문)
      ex)
          웹을 지원하는 컨트롤러
          비즈니스 로직이 있는 서비스
          실제 데이터 계층의 로직을 처리하는 레포지토리
  • 기술 지원 로직
    : 기술적인 문제나 공통 관심사(AOP)를 처리할 때 주로 사용하며, DB 연결이나 공통 로그 처럼 업무를 지원하기 위한 하부 기술이나 공통 기술과 관련된 로직
    • 수가 적다 (업무 로직 보다)
    • 애플리케이션 전반에 걸쳐 영향을 주는 경우가 많다
    • 수동으로 빈을 등록하는 것이 좋다 (가시성, 유지보수성)
      ex)
          DataBase 연결

정리

자동 방법을 기본으로 사용하자 !

  • 스프링이 나오고 시간이 갈수록 점점 자동 빈 등록을 선호하는 추세
  • 스프링부트는 기본적으로 @SpringBootApplication 내부에 Component Scan이 존재
  • 실제 개발할 때 관리해야 하는 빈(Bean)이 매우 많은데, 이를 수동으로 모두 하는것은 비효율적
  • 자동 빈 등록을 사용해도 충분히 DIP / OCP를 지킬 수 있음

수동 빈 등록은 언제 사용?

1)기술 지원 로직 구현시
     --> 프로젝트 전체에 영향을 주는 코드이며, 따로 관리하는 것이 유지보수에 용이

2) 다형성을 적극 활용하는 비즈니스 로직 은 고민 해볼만 하다

profile
Developer & PhotoGrapher

0개의 댓글