# OCP란?확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다. 즉, 책임을 확실히 분리하도록 소스 코드 의존성을 확실히 조직화해야 한다. # 예시## 컴포넌트 관계는 단방향A 클래스 -> B 클래스라면, A 클래스는 B 클래스에 대한 의존성을 가지고 있지만 B 클래스는 A 클래스에 대해 전혀 모르는 상태.(A 클래스가 수정되더라고 B 클래스는 수정되지 않음.) 나아가서 A 컴포넌트 -> B 컴포넌트라면, A 컴포넌트는 B 컴포넌트에 대해 의존하고 있음. 즉, A 컴포넌트에서 발생한 변경으로부터 B 컴포넌트가 보호됨. 위 그림을 예를 들면, Presenter에서 발생한 변경으로부터 Controller는 보호되고, Controller에서 발생한 변경으로부터 Interactor가 보호됨. ## 방향성 ..