* OCP (Open-Closed Principle; 개방 폐쇄 원칙)

> Software entities should be open for extension, but closed for modification

   (클래스는 확장에 열려 있고 변경에는 닫혀 있어야 한다. 기존 클래스의 변경을 최소화 해야 한다)

 

------------------클린 아키텍처 ------------------

> 1980년대에 Bertrand Meyer (버트란드 마이어) 에 의해 유명해진 원칙이다.

> 기존 코드를 수정하기보다는 반드시 새로운 코드를 추가하는 방식으로 시스템의 행위를 변경할 수 있도록 설계해야만 소프트웨어 시스템을 쉽게 변경할 수 있다는 것이 이 원칙의 요지다.

> Artifcat (소프트웨어 개체) 는 확장에는 열려 있어야 하고, 변경에는 닫혀 있어야 한다.

- 즉, 행위는 확장할 수 있어야 하지만, 이때 개체를 변경해서는 안 된다. 

- 요구사항을 살짝 확장하는 데 소프트웨어를 많이 수정해야 한다면, 아키텍트는 엄청난 실패에 맞닥뜨린 것이다

> 시스템을 컴포넌트 단위로 분리하고, 저수준 컴포넌트에서 발생한 변경으로부터 고수준 컴포넌트를 보호할 수 있는 형태의 의존성 계층구조가 만들어지도록 해야 한다.

 

+ Recent posts