본문 바로가기
TOP BOTTOM
1. 프로그래밍/Spring

[스프링 핵심 원리] 1-3. 객체 지향 설계 원칙(SOLID)

by mola23 2022. 3. 2.

강의

클린코드로 유명한 로버트 마틴이 정리한 좋은 객체 지향 설계의 5가지 원칙

1. SRP

단일 책임 원칙 (Single Responsibility Principle)

한 클래스는 하나의 책임만 가져야 한다.
- 변경되었을 때, 파급 효과가 적어야 함

 

2. OCP

개방/폐쇄 원칙 (Open Closed Principle)

SW 요소는 확장에는 열려 있으나, (클라이언트의) 변경에는 닫혀 있어야 한다.

 

3. LSP

리스코프 치환 원칙 (Liskov Substitution Principle)

프로그램의 객체는 프로그램의 정확성을 깨뜨리지 않고 하위 타입의 인스턴스로 바꿀 수 있어야 한다.
eg) 자동차 엑셀은 느리더라도 앞으로 가야 함. 뒤로 가면 LSP 위반

 

4. ISP

인터페이스 분리 원칙 (Interface Segregation Principle)

 : 범용 인터페이스 1개보다는, 특정 클라이언트를 위한 인터페이스로 여러 개를 생성한다.
-> 인터페이스가 명확해지고, 대체 가능성이 높아진다.

 

5. DIP

의존관계 역전 원칙 (Dependency Inversion Principle)

: 구현 클래스가 아닌 인터페이스(추상화)에 의존해야 함. 
- 구현체에 의존하면 변경이 어려워짐

 

댓글