- SOLID란?
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) : 의존 역전 원칙
- 추상화에 의존해야 하며, 구체화에 의존하면 안 된다는 원칙
- 구현체에 대한 의존성을 낮춰, 유연하고 확장 가능한 구조를 만들 수 있음