728x90
스프링에서의 객체 지향 설계
- 스프링은 DI(Dependency Injection, 의존관계 주입)와 DI 컨테이너로 다형성 + OCP,DIP를 가능하게 지원한다.
- 클라이언트 코드의 변경없이 기능 확장(쉽게 부품을 교체하듯이 개발)
스프링이 없던 시절...
- 좋은 객체 지향 개발을 하기위해 OCP, DIP 원칙을 지키면서 개발을 하면 할 일이 너무 많다.
- 원칙을 지키기 위한 개발이 실제 개발을 하기위한 코드보다 더 많았다. 그래서 프레임워크로 만들어버림.
- 순수하게 자바로 OCP, DIP 원칙을 지키면서 개발을 해보면 결국 스프링 프레임워크를 만들게 된다.(더 정확히는 DI 컨테이너)
실무 고민
- 인터페이스를 도입하면 추상화라는 비용이 발생한다.
- 기능을 확장할 가능성이 없다면, 구체 클래스를 직접 사용하고, 향후 꼭 필요할 때 리팩터링해서 인터페이스를 도입하는 것도 방법이다.
참고 :
김영한 - 스프링 핵심 원리
728x90
'[Spring] > Spring 기본' 카테고리의 다른 글
프레임워크(Freamework)와 라이브러리(Library)의 차이 (0) | 2022.10.11 |
---|---|
프레임워크(Framework)란? (0) | 2022.10.11 |
좋은 객체 지향 설계의 5가지 원칙 : SOLID (0) | 2022.10.11 |
좋은 객체 지향 프로그래밍이란? (0) | 2022.10.10 |
스프링이란? (0) | 2022.10.10 |