객체지향과 스프링

이동영·2023년 3월 20일
0

스프링

목록 보기
5/17
  • 스프링은 다형성과 OCP DIP를 가능하게 지원을 해준다.
  • DI : 의존관계 의존성 주입
  • DI 컨테이너 제공 자바의 객체를 컨테이너에 빈으로 관리하며 의존관계들을 서로 주입해주고 연결해주도록 하는 역활이다.
  • 이것들을 해야 클라이언트 코드의 변경 없이 부품교체 하듯이 할 수 있다.

스프링이 없던 시절로

  • 객체 지향 원칙을 지키려고 보니 배 보다 배꼽이 더 커져버렸다.
  • OCP DIP를 지키려고 보니 코드량이 늘어나게 되었고 결국 프레임워크를 만들게 되었다.
  • DI는 말보다 코드로 쳐보는것이 필요성을 느끼게 되었다.

정리

  • 모든 설계에는 역활과 구현을 분리해야 한다.
  • 애플리케이션은 배역과 대본만 만들고 어떤 배우가 와도 연기가 가능하도록 만들어야 한다. 이것이 좋은 객체지향의 설계이다.
  • 이것을 가능하게 하려면 OCP DIP 다형성을 지켜야 한다.
  • 그렇게 하려면 무언가가 더 필요한데 그것이 스프링 컨테이너이다.
  • 인터페이스를 미리 만들어두면 하부 구현기술을 나중에 만들 수 있는 장점이 있다. 예를들어서 데이터베이스를 무엇을 사용할 지 정해지지 않은 상태에서 먼저 MemoryMemberRipository라는 구현객체를 만들어 두고 정해지면 데이터베이스성질의 Repository를 구현하여 교체시켜줄 수 있는것이다.
  • 간단한 인터페이스를 만들어 두고 개발을 하면서 세부적으로 기능을 확장해나가면 된다.
profile
가치를 제공하는 개발자

0개의 댓글