1.9.1 정리
- 책임이 다른 코드를 분리(DB연결, DB실행)해서 두 개의 클래스로 만들었다.(관심사의 분리, 리팩토링)
- 바뀔 수 있는 쪽의 클래스는 인터페이스를 구현하게 하고, 다른 클래스에서 인터페이스를 통해 접근하도록 함. 정의하는 쪽의 구현 방법이 달라져 클래스가 변경되더라도, 그 기능을 사용하는 코드는 같이 수정할 필요가 없어짐(전략 패턴)
- 외부 오브젝트의 기능은 자유롭게 확장, 변경할 수 있도록 함(개방 폐쇄 원칙)
- 낮은 결합도와 높은 응집도 코드가 되어 코드가 깔끔해짐
- 제어권을 별도의 오브젝트 팩토리를 만들어 넘김.(제어의 역전/IoC)
- 전통적 싱글톤 패턴의 단점과 스프링의 싱글톤 레지스트리를 이용하여 싱글톤의 단점을 극볼할 수 있도록 함
- 설계 시점과 코드에는 클래스와 인터페이스 사이의 느슨한 의존관계만 만들어 놓고, 런타임 시에 실제 사용할 구체적인 의존 오브젝트를 제3자(DI 컨테이너)의 도움으로 주입 받아 의존관계를 형성하게 했음
- 의존 오브젝트를 주입할 때 생성자와 수정자 메소드를 이용하는 방법(생성자 주입과 수정자 주입)
- XML을 이용한 DI 설정정보를 만드는 방법 과 의존 오브젝트가 아닌 일반 값을 외부에서 설정해서 런타임 시에 주입하는 방법(XML 설정)
1.9.2 스프링이란
- 스프링은 ‘어떻게 오브젝트가 설계되고, 만들어지고, 어떻게 관계를 맺고 사용되는지에 관심을 갖는 프레임워크’
- 오브젝트를 생성, 분리, 개선, 의존관계 설정은 개발자의 역할 및 책임
- 스프링은 원칙을 잘 따르는 설게를 적용하려 할 때 필연적으로 등작하는 번거로운 작업을 편하게 할 수 맀도록 도와주는 도구
'토비의 스프링 정리' 카테고리의 다른 글
토비의 스프링 - 2.2 UserDaoTest 개선 (0) | 2022.09.28 |
---|---|
토비의 스프링 - 2.1 UserTest 다시 보기 (0) | 2022.09.28 |
토비의 스프링 - 1.8 XML을 이용한 설정 (0) | 2022.09.26 |
토비의 스프링 - 1.7 의존관계 주입(DI) (0) | 2022.09.26 |
토비의 스프링 - 1.6 싱글톤 레지스트리와 오브젝트 스코프 (0) | 2022.09.26 |