인프런의 '스프링 핵심 원리 (기본편)' 을 듣고 해당 내용을 정리한 포스트 입니다.
강의 바로가기
관심사를 분리하자
AppConfig
- 애플리케이션의 전체 동작 방식을 구성(config)하기 위해 사용
- 애플리케이션의 실제 동작에 필요한 '구현 객체를 생성'한다.
- 생성한 객체 인스턴스의 참조(레퍼런스)를 '생성자를 통해서 주입(연결)'해준다.
- 어떤 구현 객체를 주입할지는 오직 외부(AppConfig)에서 결정된다!
![](https://velog.velcdn.com/images%2Fcountryyoon%2Fpost%2Fe8686d04-f10d-4f4d-a515-e14c5adbe8f9%2Fimage.png)
-> DIP 완성!
(각 클래스에 생성자가 없으면 오류가 날 수 있음)
-> 클라이언트인 memberServiceImpl 입장에서 보면, 의존관계를 마치 외부에서 주입해주는것 같다고 해서
DI(Dependency Injection), 의존관계 주입 또는 의존성 주입 이라고 한다.
정리
- AppConfig를 통해서 관심사를 확실하게 분리한다.
- AppConfig는 구체 클래스를 선택한다.