티스토리 뷰
SOLID
- SRP (Single Responsibility Principle) : 단일 책임 원칙
- OCP (Open-Closed Principle) : 개방 폐쇄 원칙
- LSP (Liskov Substitution Principle) : 리스코프 치환 원칙
- ISP (Interface Segragation Principle) : 인터페이스 분리 원칙
- DIP (Dependency Inversion Principle) : 의존관계 역전 원칙
SRP, 단일 책임 원칙
한 클래스는 하나의 책임만 가져야 한다
클래스에서 변경사항이 있을 때, 애플리케이션의 파급 효과가 적으면 SRP 원칙을 잘 따른 것으로 볼 수 있다.
OCP, 개방 폐쇄 원칙
소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다
객체를 직접 수정하지 않고도 변경사항을 적용 할 수 있도록 설계해야 한다 -> 객체를 추상화함으로써 확장엔 열려있고, 변경엔 닫혀있는 유연한 구조를 만들 수 있다.
LSP, 리스코프 치환 원칙
객체는 프로그램의 정확성을 깨지 않으면서 하위 타입의 인스턴스로 바꿀수 있어야 한다.
자식 클래스는 언제나 자신의 부모 클래스를 대체할 수 있어야한다 -> 부모 클래스가 들어갈 자리에 자식 클래스를 넣어도 계획대로 잘 작동해야 한다.
ISP, 인터페이스 분리 원칙
범용 인터페이스 하나보다는 특정 클라이언트를 위한 여러 개의 인터페이스 분리가 더 좋다.
하나의 일반적인 인터페이스보다 여러개의 구체적인 인터페이스가 좋다.
DIP, 의존관계 역전 원칙
프로그래머는 “추상화에 의존해야지, 구체화에 의존하면 안된다.” 의존성 주입은 이 원칙을 따르는 방법 중 하나다.
구체적인 클래스보단 인터페이스나 추상 클래스와 관계를 맺어야 한다.
참조) 스프링 핵심 원리 - 기본편(김영한)
'개발 > Spring' 카테고리의 다른 글
[JPA] - JPA 영속성 컨텍스트(PersistenceContext) (0) | 2022.01.30 |
---|---|
[JPA] - JPA란 (0) | 2022.01.25 |
[Spring] - 의존관계 주입 (0) | 2022.01.10 |
[Spring] - 빈(Bean) 수동등록, 자동등록 (0) | 2021.12.28 |
[Spring] - JUnit5 기초 (0) | 2021.12.04 |