본문 바로가기
공부/정보관리기술사

[정보관리기술사]객체지향 설계 원칙 SOLID 5가지

by Strong_옹이 2025. 9. 14.

SOLID 객체지향 설계 5원칙

I. 개요

SOLID는 Robert C. Martin이 제시한 객체지향 설계 지침으로, 변화에 강하고 확장 가능한 구조를 만드는 데 목적이 있다. 핵심 가치는 응집도 증대·결합도 감소이며, 테스트 용이성·재사용성·유지보수성을 체계적으로 높인다.

II. 핵심 원칙

원칙 정의(핵심 문장) 적용 포인트 / 안티패턴
SRP (단일 책임) 하나의 클래스/모듈은 오직 하나의 변경 이유만 가진다. 관심사 분리, 기능별 모듈화 / God Object 방지
OCP (개방-폐쇄) 기능은 확장에 열려 있고 수정에 닫혀 있어야 한다. 전략/템플릿/데코레이터로 다형성 확장 / 조건문 분기 남발 금지
LSP (리스코프 치환) 하위 타입은 상위 타입을 대체해도 행위적 계약을 깨지 않는다. 사전/사후조건, 불변식 유지 / 상속으로 계약 위반 금지
ISP (인터페이스 분리) 클라이언트는 자신이 사용하지 않는 메서드에 의존하지 않는다. 작은 인터페이스 다중화 / Fat Interface 분해
DIP (의존 역전) 고수준 정책은 저수준 구현이 아닌 추상에 의존한다. 의존성 주입(DI), IoC 컨테이너 / 구체 클래스 직접 생성 금지

III. 결론

SOLID는 변화 발생 시 영향 범위를 최소화하고 테스트 자동화를 용이하게 하여 확장성·안정성·품질을 동시에 확보한다. 기술사 관점에서는 코드 스멜(거대 클래스, 깊은 결합, 과도한 분기)을 SOLID로 교정하고, 아키텍처 레벨에서는 전략·퍼사드·DI 등 패턴과 결합해 하이브리드로 적용하는 것이 모범 답안의 핵심이다.

#SOLID #객체지향설계원칙 #SRP #OCP #LSP #ISP #DIP #소프트웨어아키텍처 #리팩터링 #기술사답안
728x90
반응형