김영한님의 스프링 핵심 원리 강의 학습 내용입니다.
SOLID - 좋은 객체 지향 설계의 5원칙
1. SRP - 단일 책임 원칙
- 하나의 클래스는 하나의 책임만 가져야 한다.
- 변경 시 파급 효과가 적으면 잘 따른 것이다.
2. OCP - 개방 폐쇄 원칙
- 소프트웨어 요소는 확장에 열려 있고 변경에 닫혀 있어야 한다.
- 다형성을 활용한다.
- 인터페이스를 구현한 새 클래스를 만들어 새 기능을 구현 한다.
3. LSP - 리스코프 치환 원칙
- 다형성에서 하위 클래스는 인터페이스 규약을 다 지켜야 한다.
4. ISP - 인터페이스 분리 원칙
- 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나 보다 좋다.
- 인터페이스가 명확해진다.
- 대체 가능성이 높아진다.
5. DIP - 의존관계 역전 원칙
- 구현 클래스에 의존하는 것이 아닌 인터페이스에 의존해야 한다.
다형성 만으로는 OCP와 DIP를 지킬 수 없다.
So, 스프링 기술로 이를 가능하게 한다.
1. DI - 의존관계와 의존성을 주입한다.
2. DI 컨테이너를 제공한다.