C++/면접 대비

SOLID 가 뭔가요?

WhNi 2024. 3. 10. 19:59

객체 지향 프로그래밍 설계 원칙을 나타내는 약어로 5 가지 원칙을 의미합니다.

 

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

객체는 단 하나의 책임만을 가져야합니다. 그래서 클래스는 하나의 주요 기능 혹은 책임을 갖도록 설계되어야 합니다. 

 

2. 개방- 폐쇄의 원칙 (Open- closed Principle, OCP)

기존의 코드를 수정하지 않고도 새로운 기능을 추가할 수 있도록 설계되어야 합니다.

 

3. 리스코프 치환 원칙 (Liskov Substitution Principle, LSP)

자식 클래스는 항상 부모클래스를 대체할 수 있어야 하니다. 

 

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

클라이언트가 필요로만 하는 기능을 인터페이스로 분리합니다. 

 

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

추상화를 통해서 구체적인 구현에 대한 의존성을 줄여야 합니다.