ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [CS] 스프링부트를 쓰는 이유와 자동설정 원리
    CS 2023. 1. 5. 10:48
    728x90

    스프링을 사용하는 이유

    기존에는 EJB(Enterprise Java Bean)을 사용하였는데, 개발, 배포, 예외처리, 단위 테스트 등에 관한 많은 문제점들이 있었다.

     

    Spring framework는 DI로 단위 테스트를 가능케 하고 AOP로 코드 감소하는 등의 생산성을 향상시키고 유지보수 비용을 감소 시키게 해주기에 우리는 스프링을 사용한다.

     

    스프링에는 핵심적인 기능 3가지를 스프링 삼각형이라고 부른다

    스프링 삼각형

    • IoC / DI - 의존성 주입 기능
    • AOP - 비즈니스 로직과 관계가 적은 트랜잭션, 로깅, 예외처리 등의 횡단관심으로 모듈화하여 처리할 수 있는 프로그래밍 방법
    • PSA - 실제 사용하는 기술에 관계없이 일관된 기술 접근 환경을 제공하도록 서비스의 추상화 계층을 제공 ( ex : Spring Trasaction Manager, Spring Cache Manager )

     

    이러한 핵심적인 3가지 기능을 토대로 MVC 구조, 톰캣을 통해 WAS에 독립적인 개발환경등을 갖으면서, 기존에 존재했던 여러 개발환경의 어려움, 무거웠던 프레임워크 등을 극복할 수 있었기에 스프링을 사용한다.

     

    자동 설정 원리

    1. @SpringBootApplication

    세부로 들어가면

    1. @ComponentScan
    2. @EnableAutoConfiguration

     

    이라는 어노테이션들이 포함되어 있다.

    간단하게 두개의 어노테이션을 보면

     

    2. @ComponentScan

    선언된 패키지를 포함한 하위 패키지의 Component를 Scan해서 Bean으로 등록해주는 어노테이션이다.

    그렇기에 기본 설정에서는 기본 패키지 하위로 패키지를 생성하여야 Bean으로 등록된다 ( 중요 )

     

    3. @EnableAutoConfiguration

    Dependency 목록에서 spring-boot-autoconfigure-2.1.7.RELEASE.jar에는 META-INF/spring.factories 파일이 있는데, 열어보면 #Auto Configure 밑에 해당하는 패키지들의 AutoConfiguration이 선언되어 있다.

     

    그리고 jar 파일 밑에 선언된 패키지의 클래스들로부터 설정값을 Bean으로 등록하여서 자동 설정이 가능한 것 이다.

     

    참조

    https://velog.io/@ljinsk3/Spring을-사용하는-이유

    https://rooted.tistory.com/6

    'CS' 카테고리의 다른 글

    [CS] 직렬화  (0) 2023.01.07
    [CS] JPA 영속성 컨텍스트  (0) 2023.01.06
    [CS] AOP  (0) 2023.01.04
    [CS] Bean  (0) 2023.01.04
    [CS] 멀티 스레드  (0) 2022.12.27
Designed by Tistory.