개발_프로그래밍

Clean Architecture (클린 아키텍처) - 32장. 프레임워크는 세부사항이다 Frameworks Are Details

_랄프_ 2023. 5. 10. 22:04
728x90

■ 32장 프레임워크는 세부사항이다 Frameworks Are Details

프레임워크 역시 세부사항이다. 우리가 잘 아는 Spring 같은 프레임워크가 그렇다. 따라서 프레임워크는 아키텍처가 아니며 업무규칙으로부터 떨어져야 한다. 아키텍처 바깥쪽 원에 속하는 세부사항으로 취급하고 안으로 못 들어오게 해야 한다.

물론 이것은 현실적이지 않을 수 있다. 사실상 규모가 있는 대부분의 프로젝트에서는 당연히 어떤 형태로든지 프레임워크를 쓰고 있으며 아마 저자가 당부하는 아키텍처 원칙을 적용하지 않을 것이기 때문이다.

저자는 이에 대한 해결책으로, 가령 업무 객체를 만들 때 프레임워크가 자신의 기반 클래스로부터 파생하기를 요구하면, Proxy를 만들고 업무규칙에 플러그인할 수 있는 컴포넌트를 Proxy 내에 위치시키라고 말한다.

또 Spring에서 의존성 연결시 @autowired 어노테이션을 업무 객체 이곳저곳에 산재시키지 말고 Main 컴포넌트에서 스프링을 사용하여 의존성을 주입하라고 한다. 메인은 아키텍처 내에서 가장 지저분하고 가장 낮은 수준의 컴포넌트이기 때문에 스프링을 알아도 상관 없다.

다만 강하게 결합해야 하는 프레임워크도 있는데 C++의 STL이나 자바의 표준 라이브러리 등이다.

<33장에서 계속>

 

 

반응형

 

728x90
반응형