SOLID는 유지보수 가능하고, 유연하며, 이해하기 쉬운 코드를 촉진하는 다섯 가지 객체지향 설계 원칙의 집합입니다: Single Responsibility, Open/Closed, Liskov Substitution, Interface Segregation, Dependency Inversion. 좋은 OO 설계를 안내합니다.
다섯 가지 원칙
S — SINGLE RESPONSIBILITY → 클래스는 변경할 이유가 하나여야 함 (하나의 책임/일)
→ 클래스가 너무 많은 일을 하지 않게 함 (갓 오브젝트 회피)
O — OPEN/CLOSED → 확장에는 열려 있고, 수정에는 닫혀 있음 → 기존 코드를 변경하지 않고
새 행위를 추가 (예: 다형성/strategy를 통해)
L — LISKOV SUBSTITUTION → 서브타입은 그 기반 타입으로 대체 가능해야 함 (서브클래스가
부모에게 기대되는 행위를 깨뜨리면 안 됨)
I — INTERFACE SEGREGATION → 여러 구체적 인터페이스 > 하나의 비대한 인터페이스 → 클라이언트가
사용하지 않는 메서드에 의존하면 안 됨
D — DEPENDENCY INVERSION → 구체적 구현이 아니라 추상화에 의존 → 고수준
모듈이 저수준 세부사항에 의존하지 않음 (DI와 관련됨)
