본문 바로가기

Development/Spring Boot

[Spring Boot] 스프링 컨테이너와 스프링 빈 (0) - 이전 강의 중요 포인트 정리

1- 이전까지 강의 주요 포인트 정리

  • 객체지향
    - SOLID 원칙
    --> OCP와 DIP를 지키지 못하는 경우가 많음.
    --> 이때 개발자가 직접 AppConfig로 DI를 주어 OCP와 DIP를 해소해주는 방법이 존재함

    - AppConfig 활용
    --> 구현 객체를 생성하고 연결을 책임지는 별도의 클래스
    --> 즉, 어플리케이션 동작에 필요한 실제 구현 책체 생성하고, 참조 값을 리턴함

  • 스프링 핵심 원리
    - 제어의 역전[ IoC : Inversion of Controll ]
    --> 말 그대로 제어의 역전으로, 개발자가 무언가를 호출하는 것이 아니라 프레임워크가 대신 호출하는 것을 말함
    --> 스프링에 극한된 개념이 아니라 여러 곳에서 사용됨

    - 의존관계 주입[ DI: Dependency Injection ]
    --> 정적인 클래스 의존 관계와 실행 시점에 결정되는 동적인 객체(인스턴스) 의존 관계를 분리해 생각해야함.
    --> 한 마디로 인터페이스에 의존해야하며, 해당 호출되는 곳에서는 어떤 구현체가 사용되는지 몰라야 함

    - 컨테이너 [ == DI 컨테이너 ]
    --> AppConfig 처럼 객체를 생성하고 관리해 의존관계를 연결해주는 것을 IoC컨테이너 혹은 DI 컨테이너라 함
    --> 허나 DI 컨테이너가 좀 더 정확한 용어임. IoC는 너무 범용적인 용어. (이 개념은 스프링을 제외한 JUnit 프레임워크에도 적용되는 등 다른 것에도 적용됨 )
    --> AppConfig는 전체 조립 역할을 맡기에 어셈블러 혹은 오브젝트 팩토리 드응로 불리기도 함
  • 왜 스프링이 만들어졌는가
    - 스프링 컨테이너 등을 통해 설정 환경을 용이하게 관리하고 
    - 객체지향언어를 객체지향언어 답게 수행하기 위해

    로 이해함