토픽 52 / 192·소프트웨어 설계와 아키텍처
SOLID 원칙
SOLID 원칙
객체지향 설계의 5가지 기본 원칙, Robert C. Martin 제안, 유지보수성/확장성 향상 가이드라인
5가지 원칙
- •SRP(단일 책임): 클래스는 변경 이유가 하나, 액터별 분리. 위반: 비즈니스+DB+UI 혼재
- •OCP(개방-폐쇄): 확장에 열림/수정에 닫힘, 추상화+다형성. 위반: if/switch 타입 분기
- •LSP(리스코프 치환): 자식이 부모 대체 시 정확성 유지. 위반: Square가 Rectangle 계약 위반
- •ISP(인터페이스 분리): 사용하지 않는 메서드 의존 금지, 특화 인터페이스 분리
- •DIP(의존성 역전): 고수준/저수준 모두 추상화에 의존, DI/IoC로 구현
원칙 간 관계: OCP ← DIP(추상화), LSP 위반 → OCP 붕괴, ISP → SRP 도움
효과: 유지보수성↑, 확장성↑, 테스트 용이성↑
비교: SOLID(OOP 설계원칙) vs GRASP(책임할당) vs DRY/KISS/YAGNI(일반 원칙)
연관: 객체지향, 디자인패턴, 클린코드