TIL ... day 16 4주차 - Spring 1일차 새로운 시작 22.05.27

BYEONGMIN CHOI·2022년 5월 27일
0

TIL(Today I Learned)

목록 보기
12/24

4주차가 시작되는 하루...
새로운 과제를 맞이하며 다시 개념을 잡기 위해 과제에 필요한 부분보다 스프링 이해를 위해 주어진 강의를 처음부터 보기 시작했다.


Spring의 재이해

스프링이 어떤 프레임 워크인지 모르고 3주차의 과제를 했던거 같다. 오늘 하루 spring boot를 조금이나마 이해하는 하루였다.

  • 스프링 프레임워크
    • 평범한 POJO를 사용하면서도 EJB에서만 가능했던 많은 일을 가능하도록 지원한다
    • IoC와 AOP를 지원하는 경량의 컨테이너 프레임워크이다. AOP에 대한 이해는 아직 부족하다.
    • 객체의 생성과 의존관계를 컨테이너가 자동으로 관리한다.

    • 경량(Lightweight)
      스프링은 크기 측면에서 가볍다.
      스프링은 여러 개의 모듈로 구성되어 있고 각 모듈은 하나 이상의 JAR 파일로 구성되어 있다.
      적은 수의 JAR 파일만 있으면 개발과 실행이 모두 가능하기 때문에 배포 역시 매우 빠르고 쉽다.
      예) spring-context.jar, spring-aop.jar 등등

    • 제어의 역행(Inversion of Control)
      스프링은 제어의 역행(IoC)을 통해 애플리케이션을 구성하는
      객체 간의 느슨한 결합 즉, 낮은 결합도를 유지한다.
      IoC가 적용되기 전에는 객체의 생성, 객체와 객체 사이의 의존관계를 개발자가 직접 자바 코드로 처리했었다.
      IoC가 적용되면 객체 생성을 자바 코드로 직접 처리 할 필요 없이 컨테이너가 대신 처리한다.

* 강한 결합과 느슨한 결합

- 강한 결합

- 객체 내부에서 다른 객체를 생성하는 것은 강한 결합도를 가지는 구조이다.


- 느슨한 결합
- 수정이 필요할 때 하나의 객체에서만 수정이 가능하다면 느슨한 결합이라고 할 수 있다.


- 각 객체에 대한 객체 생성은 한번만 한다.
- 생성된 객체에 모든 곳에 사용한다.

  • 스프링 IoC 컨테이너
    • DI(Dependency Insert) 의존성 부여를 통해 강한결합 \rightarrow 느슨한 결합으로 만들어 제어의 역전(IoC)이 발생
    • 스프링 IoC 컨테이너는 Bean 객체를 저장?한다.

    • DI( 의존성 부여 )
    • @Component : 조건 beanpackage가 설정되어있는 @SpringBootApplication에 의해 default 되어 있는 곳에서만 설정이 가능하다.
    • @Bean : 직접 객체를 생성하여 Bean으로 등록 요청
    • DI 가 부여된 constructor에 @Autowired 적용 가능 \leftarrow 스프링 IoC 컨테이너에 의해 관리되는 클래스에서만 가능하다./ Spring 4.3버전 부터 @Autowired 생갹 가능하며 생성자 선언이 1개 일때만 생략 가능하다.
profile
스스로 성장하는 개발자가 되겠습니다.

0개의 댓글