🤗 인프런 [스프링 핵심원리-기본편]을 듣고 기록하는 글입니다
진행 과정
- 원래는 appConfig에서 구현체 주입해주는 방식이
- xxService라는 함수안에서 new ServiceImpl을 선언하고,
- 거기 안에서 또 new xxRepository, new xxPolicy를 선언했었음.
- 근데 이걸, repository나 policy로 새로 선언해서 반환해주는 함수를 따로 떼어내는식으로 리팩토링 진행!

- 사용영역의 코드는 전혀 건들지 않고, 구성영역의 코드만 변경하면 영역확장을 마음대로 할 수 있는것임.

- 이렇게 리팩토링 후에도 잘 작동하는 모습을 볼 수 있었음
새로 알게 된 내용
appConfig와 SOLID원칙
-
추상화에 의존하고, 구체화에 의존하지 말아야한다라는 원칙을 따르는 방법들중 하나가 바로 의존성 주입이다.(DIP 문제)
- appConfig가 바로 이 의존관계 주입 역할을 갖게 되는것.
-
소프트웨어 요소는 확장에 열려있으나 변경에는 닫혀있어야한다.
- appconfig를 만들면서 사용영역과 구성 영역을 분리했기 때문에, 새로운 요소를 넣어 확장을 해도 사용역역의 변경을 닫혀있게됨