개발_프로그래밍

클린 아키텍처 - 8장. OCP: 개방-폐쇄 원칙 Open-Closed Principle

_랄프_ 2022. 8. 30. 23:01
728x90

8장 OCP: 개방-폐쇄 원칙 Open-Closed Principle

객체는 확장에는 열려 있어야 하고(개방), 변경에는 닫혀 있어야 한다.(폐쇄)

변경되는 코드의 양을 최소화 하기 위해서는, 서로 다른 목적으로 변경되는 요소를 적절하게 분리하고(단일책임원칙 SRP), 이들 요소 사이의 의존성을 체계화(의존성역전원칙 DIP)해야 한다.

위 그림에서 화살표 A -> B는 소스코드 의존성의 방향으로 A에서 B를 호출한다는 뜻이다. 컴포넌트 관계는 단방향으로만 이루어져야 하는데, 화살표의 방향은 변경으로부터 보호하려는 컴포넌트를 향하고 있다. A에서 발생한 변경으로부터 B를 보호하려면 A가 B에 의존해야 한다. (즉, A -> B)

 

728x90

 

 

위에서 우측 상단의 Interactor는 업무규칙을 포함하므로 가장 고수준이며 다른 컴포넌트들의 변경이 Interactor에 영향을 주어서는 안 된다.

OCP의 목표는 시스템을 확장하기 쉬운 동시에 변경으로 인해 시스템이 너무 많은 영향을 받지 않도록 하는 데에 있다. 이러한 목표를 달성하려면 시스템을 컴포넌트 단위로 분리하고, 저수준 컴포넌트에서 발생한 변경으로부터 고수준을 보호할 수 있는 형태로 의존성 계층구조를 만들어야 한다.

<9장에서 계속>

 

 

 

728x90
반응형