Helmi

1. 소프트웨어 설계 - SOLID 본문

정보처리기사/필기

1. 소프트웨어 설계 - SOLID

Helmi 2023. 5. 11. 15:05

객체 지향 설계 원칙, SOLID

시스템 변경이나 확장에 유연한 시스템을 설계하기 위해 지켜야 할 5가지 원칙으로, 5가지 원칙의 앞 글자를 따 SOLID 원칙이라고도 불림

 

1. 단일 책임 원칙(SRP; Single Responsibility Principle)

- 객체는 단 하나의 책임만 가져야 한다

- 응집도는 높고, 결합도는 낮게 설계하는 것

 

2. 개방-폐쇄 원칙(OCP; Open-Closed Principle)

- 기존의 코드를 변경하지 않고 기능 추가할 수 있도록 설계해야 한다는 원칙

- 공통 인터페이스를 하나의 인터페이스로 묶어  캡슐화하는 방법이 대표적

 

3. 리스코프 치환 워칙(LSP; Liskov Substitution Principle)

- 자식  클래스는 최소한 자신의 부모 클래스에서 가능한 행위는 수행할 수 있어야 한다는 설계 원칙

- 자식 클래스는 부모 클래스의 책임 무시하거나 재정의하지 않고 확장만 수행하도록 해야 함

 

4. 인터페이스 분리 원칙(ISP; Interface Segregation Principle)

- 자신이 사용하지 않는 인터페이스와 의존 관계를 맺거나 영향 받지 않아야 한다는 원칙

- 단일 책임 원칙이 객체가 갖는 하나의 책임이라면, 인터페이스 분리 원칙은 인터페이스가 갖는 하나의 책임

 

5. 의존 역전 원칙(DIP; Dependency Inversion Principle)

- 각 객체들 간의 의존 관계가 성립될 때, 추상성이 낮은 클래스보다 추상성이 높은 클래스와 의존 관계를 맺어야 한다는 점

- 일반적으로 인터페이스를 활용하면 이 원칙은 준수됨