본문 바로가기

토비의 스프링 정리

토비의 스프링 - 1.9 1장 정리

1.9.1 정리

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

1.9.2 스프링이란

  • 스프링은 ‘어떻게 오브젝트가 설계되고, 만들어지고, 어떻게 관계를 맺고 사용되는지에 관심을 갖는 프레임워크
  • 오브젝트를 생성, 분리, 개선, 의존관계 설정은 개발자의 역할 및 책임
  • 스프링은 원칙을 잘 따르는 설게를 적용하려 할 때 필연적으로 등작하는 번거로운 작업을 편하게 할 수 맀도록 도와주는 도구