본문 바로가기

SearchDeveloper/클린 아키텍처

[3] 8~11장 SOLID

SRP(Single Response Principle)

어떻게 하라고?

변경을 요청하는 주체(액터)가 다르면, 코드를 분리해라

왜?

  • 액터가 다른데 같은 코드를 썼다간 다른 팀 모르게 수정될 가능성이 있음
  • 코드 병합할 때 어려움
 

OCP(Open Closed Principle)

어떻게 하라고?

기능을 확장할 때는 코드 수정이 아니라 코드를 추가하는 방향으로 간다.

왜?

변경을 쉽게 처리하되 시스템이 너무 많은 영향 받게 하지 않기 위해
 

LSP(Liskov Substitute Principle)

어떻게 하라고?

다형성 개발할 때 부모 기능 잘 지켜라

왜?

변화에 쉽게 하기 위해
 

ISP(Interface Segregation Principle)

어떻게 하라고?

인터페이스를 기능에 맞게 잘 분리해라

왜?

의존성을 분리해서 담당하지 않는 기능 배포하더라도 영향없게 하기 위해
 

DIP(Dependency Injection Principle)

어떻게 하라고?

구체 클래스가 아닌 추상 클래스, 인터페이스에 의존하라

왜?

구체 클래스는 변하기 쉬우니깐. 변화에 영향을 적게 받기 위해 

 

 

 

레퍼런스

 

클린 아키텍처