SOLID 객체지향 설계 5원칙
I. 개요
SOLID는 Robert C. Martin이 제시한 객체지향 설계 지침으로, 변화에 강하고 확장 가능한 구조를 만드는 데 목적이 있다. 핵심 가치는 응집도 증대·결합도 감소이며, 테스트 용이성·재사용성·유지보수성을 체계적으로 높인다.
II. 핵심 원칙
| 원칙 | 정의(핵심 문장) | 적용 포인트 / 안티패턴 |
|---|---|---|
| SRP (단일 책임) | 하나의 클래스/모듈은 오직 하나의 변경 이유만 가진다. | 관심사 분리, 기능별 모듈화 / God Object 방지 |
| OCP (개방-폐쇄) | 기능은 확장에 열려 있고 수정에 닫혀 있어야 한다. | 전략/템플릿/데코레이터로 다형성 확장 / 조건문 분기 남발 금지 |
| LSP (리스코프 치환) | 하위 타입은 상위 타입을 대체해도 행위적 계약을 깨지 않는다. | 사전/사후조건, 불변식 유지 / 상속으로 계약 위반 금지 |
| ISP (인터페이스 분리) | 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않는다. | 작은 인터페이스 다중화 / Fat Interface 분해 |
| DIP (의존 역전) | 고수준 정책은 저수준 구현이 아닌 추상에 의존한다. | 의존성 주입(DI), IoC 컨테이너 / 구체 클래스 직접 생성 금지 |
III. 결론
SOLID는 변화 발생 시 영향 범위를 최소화하고 테스트 자동화를 용이하게 하여 확장성·안정성·품질을 동시에 확보한다. 기술사 관점에서는 코드 스멜(거대 클래스, 깊은 결합, 과도한 분기)을 SOLID로 교정하고, 아키텍처 레벨에서는 전략·퍼사드·DI 등 패턴과 결합해 하이브리드로 적용하는 것이 모범 답안의 핵심이다.
728x90
반응형
'공부 > 정보관리기술사' 카테고리의 다른 글
| [정보관리기술사] 요구공학: 요구사항 개발과 요구사항 관리 정리 (0) | 2025.09.14 |
|---|---|
| [정보관리기술사] AOP(Aspect Oriented Programming) 개념정리 (0) | 2025.09.14 |
| [정보관리가술사] 객체지향 성질: 추상화·캡슐화·정보은닉·상속·다형성 (0) | 2025.09.14 |
| [정보관리기술사]폭포수 개발방법론과 애자일 개발방법론 비교 (0) | 2025.09.14 |
| [정보관리기술사] SDLC 반복적(Iterative) 개발모델 총정리: 프로토타입·나선형·증분·RAD·애자일·진화적 (0) | 2025.09.13 |