본문 바로가기
프로그래밍 놀이터/디자인 패턴, 리펙토링

[책 정리] 26. 메인(Main) 컴포넌트 - Clean Architecture

by 돼지왕 왕돼지 2022. 11. 7.
반응형

 

궁극적인 세부사항

 

-

메인 컴포넌트는 궁극적인 세부사항으로, 가장 낮은 수준의 정책이다.

메인은 시스템의 초기 진입점이다.

운영체제를 제외하면 어떤 것도 메인에 의존하지 않는다.

메인은 모든 팩토리(Factory)와 전략(Strategy), 그리고 시스템 전반을 담당하는 나머지 기반 설비를 생성한 후, 시스템에서 더 높은 수준을 담당하는 부분으로 제어권을 넘기는 역할을 맡는다.

 

의존성 주입 프레임워크를 이용해 의존성을 주입하는 일은 바로 이 메인 컴포넌트에서 이루어져야 한다.

메인에 의존성이 일단 주입되고 나면, 메인은 의존성 주입 프레임워크를 상용하지 않고도 일반적인 방식으로 의존성을 분배할 수 있어야 한다.

 

 

-

요지는 메인은 클린 아키텍처에서 가장 바깥 원에 위치하는, 지저분한 저수준 모듈이라는 점이다.

메인은 고수준의 시스템을 위한 모든 것을 로드한 후, 제어권을 고수준의 시스템에게 넘긴다.

 

 

 

결론

 

-

메인을 앱의 플로그인이라고 생각하자.

메인은 초기 조건과 설정을 구성하고, 외부 자원을 모두 수집한 후, 제어권을 앱의 고수준 정책으로 넘기는 플러그인이다.

메인은 플러그인이므로 메인 컴포넌트를 앱의 설정별로 하나씩 두도록 하여 둘 이상의 메인 컴포넌트를 만들 수도 있다.

 

메인을 플러그인 컴포넌트로 여기고, 그래서 아키텍처 경계 바깥에 귀치한다고 보면 설정 관련 문제를 훨씬 쉽게 해결할 수 있다.

 

 

반응형

댓글