본문으로 건너뛰기

SOLID 원칙

· 약 4분

SOLID 원칙 개념

  • 객체지향 설계시 SOLID 5가지 원칙을 준수하여 유지보수성과 확장성을 가진 유연한 소프트웨어 구현 가능

단일책임원칙과 개방폐쇄원칙

단일책임원칙

구분설명
개념도srp
개념객체는 단 하나의 책임만 가져야한다는 원칙
특징변경에 대한 의존성 극복, 응집도 향상
예시파일 읽기, 쓰기 클래스 분리

개방폐쇄원칙

구분설명
개념도ocp
개념클래스는 확장에는 열리고 수정에는 닫혀있어야한다는 원칙
특징추상화로인한 다형성, 확장성, 객체지향 장점 극대화
예시새로운 기능 추가시 추상클래스 활용

리스코프 치환원칙과 인터페이스 분리원칙

리스코프 치환원칙

구분설명
개념도lsp
개념상위 클래스는 하위 클래스로 대체할 수 있어야한다는 원칙
특징상속을 통한 재사용성 확보, 부모-자식 클래스 간 IS-A 관계 보장
예시HashSet은 Set의 add 메소드 사용 가능

인터페이스 분리원칙

구분설명
개념도isp
개념클라이언트는 자신이 사용하는 인터페이스만 의존해야하는 원칙
특징클라이언트에 목적과 용도에 적합한 인터페이스 제공, 확장성 증가
예시Pet 인터페이스 분리로 짖는 기능 구현

의존성역전원칙

구분설명
개념도dip
개념고수준 클라이언트는 저수준 모듈의 구현에 의존하지 않고, 추상화된 인터페이스에 의존해야한다는 원칙
특징변화하기 어려운 인터페이스에 의존, 결합도 완화
예시특정 DB클래스가 아닌 Database 인터페이스 사용 연동

객체지향 설계시 고려사항

  • SonarLint 등 정적분석도구 활용 SOLID 원칙 준수 감사
  • 예방비용을 높여 SW품질 향상 필요