
소프트웨어 개발
SOLID PrinciplesSOLID 원칙
SOLID는 유지보수하기 좋은 객체지향 소프트웨어를 설계하기 위한 5가지 원칙의 약자다. Robert C. Martin(Uncle Bob)이 정리했으며, 변경에 유연하고 테스트하기 쉬운 코드를 만드는 지침이다.
5가지 원칙
S — 단일 책임 원칙 (Single Responsibility Principle)
하나의 클래스는 하나의 변경 이유만 가져야 한다.
O — 개방-폐쇄 원칙 (Open-Closed Principle)
확장에는 열려있고, 수정에는 닫혀있어야 한다. 기존 코드를 변경하지 않고 새 기능을 추가.
L — 리스코프 치환 원칙 (Liskov Substitution Principle)
서브타입은 언제나 기반타입으로 교체할 수 있어야 한다.
I — 인터페이스 분리 원칙 (Interface Segregation Principle)
클라이언트가 사용하지 않는 메서드에 의존하지 않도록 인터페이스를 분리한다.
D — 의존성 역전 원칙 (Dependency Inversion Principle)
고수준 모듈이 저수준 모듈에 의존하면 안 된다. 추상화에 의존해야 한다.
관련 개념
- •의존성 주입 — SOLID D 원칙의 구현
- •디자인 패턴 — SOLID를 적용한 구체 패턴
- •클린 아키텍처 — SOLID를 아키텍처로 확장
- •테스트 주도 개발 — SOLID 설계가 TDD를 용이하게 함
참고문헌
- •Martin, R.C. (2003). Agile Software Development: Principles, Patterns, and Practices
