본문으로 건너뛰기

SOLID 원칙

· 약 2분

SOLID 원칙 개념​

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

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

단일책임원칙​

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

개방폐쇄원칙​

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

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

리스코프 치환원칙​

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

인터페이스 분리원칙​

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

의존성역전원칙​

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

객체지향 설계시 고려사항​

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