최대 1 분 소요

설명

OOP(객체지향언어)를 개발 하면서 지켜야 할 5가지 원칙을 말한다. 많은 Design Pattern이 SOLID 원칙을 토대로 만들어졌기에 이 원칙을 숙지하면 Design Pattern 및 구조 설계를 하기 수월해진다.

모든 코드에 반드시 적용할 필요는 없지만 좋은 설계를 위해선 해당 사항들을 의식하면서 작성하면 좋다.


장점

  • 수정과 유지보수가 수월하다

단일 책임 원칙(SRP)

  • 객체는 하나의 목적만 가지기
  • 모듈이 변경되는 이유는 한가지여야함
  • 모듈 다른 모듈에 대한 책임지면 안됨

개방 폐쇄 원칙(OCP)

  • 모듈은 확장에 열려있고 수정엔 닫혀야함
  • 추상화에 의존해야함
  • 인터페이스를 통해 과정이 어떻든 결과만 받기
  • Inject 같은 느낌
  • 과정이 어떻게 바뀌든 결과만 받으면 되니 확장이 용이하다

리스코프 치환 원칙(LSP)

  • 상위 클래스는 하위 클래스로 대체 될 수 있어야함
  • 직사각형을 부모로 둔 정사각형이 resize로 가로 세로를 다르게 설정 못함
  • 이럴 경우 resize못하게 막거나 Overriding
  • 항상 사용하는 클라이언트 기준으로 생각하기

인터페이스 분리 원칙(ISP)

  • 클라이언트 용도에 맞는 인터페이스만 제공
  • 하나의 Interface보단 구체적인 여러 Interface가 좋다
  • 그러면 불필요한 간섭이 줄어든다
  • 다른 인터페이스에선 필요없는 정보를 안 알아도 되게 된다

의존 역전 원칙(DIP)

  • 상위 모듈이 하위 모듈에 의존하면 안됨
  • 상위가 갑 하위가 을 까라면 까기
  • 상위-입출력과 먼 내부
  • 하위-입풀력과 가까운 겉부분
  • Interface, Virtual를 통해 모듈이 어떻든 값만 받기
  • OCP와 연관깊다
  • 인터페이스는 적당히 만들기



댓글남기기