SRP : 단일 책임 원칙 ( Single Responsibility Principle)
OCP : 개방-폐쇄 원칙 ( Open/Closed Principle)
LSP : 리스코프 치환 원칙 ( Liskov Substitution Principle )
ISP : 인터페이스 분리원칙 ( Interface Segregation Principle )
DIP : 의존관계 역전 원칙 ( Dependency inversion priciple )
SOLID 란 객체 지향 프로그램을 하면서 지켜야하는 5대 원칙이다.
해당 원칙을 지키면 시간이 지나도 변경이 용이하고, 유지보수와 확장이 쉬운 소프트웨어를 개발하는데 도움이 된다.
SRP 단일 책임 원칙
- 한 클래스는 하나의 책임(기능)만 가져야 한다.
- 클래스를 변경하는 이유는 단 하나여야 한다.
OCP 개방-폐쇄 원칙
- 확장에는 열려 있으나 변경에는 닫혀 있어야 한다.
- 기존의 코드를 변경하지 않고 기능을 수정하거나 추가할 수 있도록 설계해야 한다.
LSP 리스코프 치환 원칙
- 프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않으면서 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
- 상속 관계에서는 일반화 관계 (IS -A) 가 성립해야 한다.
EX) 고래는 포유류 이다. 참새는 조류이다.
ISP 인터페이스 분리원칙
- 특정 클라이언트를 위한 인터페이스 여러 개가 범용 인터페이스 하나보다 낫다.
- 클라이언트는 자신이 사용하는 메소드에만 의존해야 한다.
- 한 클래스는 자신이 사용하지 않는 인터페이스는 구현하지 않아야 한다.
DIP 의존관계 역전 원칙
- 추상화에 의존해야지, 구체화에 의존하면 안된다.
참고 :
-인프런 스프링 핵심원리
- https://devlog-wjdrbs96.tistory.com/380
- https://velog.io/@haero_kim/SOLID-%EC%9B%90%EC%B9%99-%EC%96%B4%EB%A0%B5%EC%A7%80-%EC%95%8A%EB%8B%A4
'Spring > Spring-detail' 카테고리의 다른 글
디자인 패턴 간략히 알아보기 (0) | 2022.09.14 |
---|---|
빌드 관리 도구 ( Gradle / Maven ) (0) | 2022.09.14 |
JPA Auditing 적용 (0) | 2022.09.13 |
JUnit 테스트의 생명주기를 알아보자 (1) | 2022.09.11 |
application.yml 에서 JPA 설정하기 (1) | 2022.09.11 |
댓글