1- 이전까지 강의 주요 포인트 정리
- 객체지향
- SOLID 원칙
--> OCP와 DIP를 지키지 못하는 경우가 많음.
--> 이때 개발자가 직접 AppConfig로 DI를 주어 OCP와 DIP를 해소해주는 방법이 존재함
- AppConfig 활용
--> 구현 객체를 생성하고 연결을 책임지는 별도의 클래스
--> 즉, 어플리케이션 동작에 필요한 실제 구현 책체 생성하고, 참조 값을 리턴함 - 스프링 핵심 원리
- 제어의 역전[ IoC : Inversion of Controll ]
--> 말 그대로 제어의 역전으로, 개발자가 무언가를 호출하는 것이 아니라 프레임워크가 대신 호출하는 것을 말함
--> 스프링에 극한된 개념이 아니라 여러 곳에서 사용됨
- 의존관계 주입[ DI: Dependency Injection ]
--> 정적인 클래스 의존 관계와 실행 시점에 결정되는 동적인 객체(인스턴스) 의존 관계를 분리해 생각해야함.
--> 한 마디로 인터페이스에 의존해야하며, 해당 호출되는 곳에서는 어떤 구현체가 사용되는지 몰라야 함
- 컨테이너 [ == DI 컨테이너 ]
--> AppConfig 처럼 객체를 생성하고 관리해 의존관계를 연결해주는 것을 IoC컨테이너 혹은 DI 컨테이너라 함
--> 허나 DI 컨테이너가 좀 더 정확한 용어임. IoC는 너무 범용적인 용어. (이 개념은 스프링을 제외한 JUnit 프레임워크에도 적용되는 등 다른 것에도 적용됨 )
--> AppConfig는 전체 조립 역할을 맡기에 어셈블러 혹은 오브젝트 팩토리 드응로 불리기도 함 - 왜 스프링이 만들어졌는가
- 스프링 컨테이너 등을 통해 설정 환경을 용이하게 관리하고
- 객체지향언어를 객체지향언어 답게 수행하기 위해
로 이해함
'Development > Spring Boot' 카테고리의 다른 글
[Spring Boot] 스프링 컨테이너와 스프링 빈 (2) 컨테이너에 등록된 모든 빈 조회 (0) | 2022.08.13 |
---|---|
[Spring Boot] 스프링 컨테이너와 스프링 빈 (1) 생성 과정 (0) | 2022.08.13 |
[Spring Boot] 스프링 부트로 전환하기 (0) | 2022.08.09 |
[Spring Boot] IoC, DI, 컨테이너 (0) | 2022.08.05 |
[Spring Boot] 새로운 구조 및 구현체 적용 (0) | 2022.08.04 |