본문 바로가기
SW

클린 아키텍처:소프트웨어 구조와 설계의 원칙(Clean Architecture) - 6부 : 세부사항 (32장)

by 라꾸스떼(YR) 2020. 3. 26.
반응형

[32장] 프레임워크는 세부사항이다

프레임워크는 아키텍처가 될 수 없다.

 

[프레임워크 제작자]

프레임워크 제작자는 자신이 해결해야 할 고유한 문제나 자신의 동료와 친구들의 문제를 알고 있다. 그리고 그러한 문제들을 해결하기 위해 프레임워크를 만든다. 당신의 문제를 해결하기 위해서가 아니다.

 

[혼인 관계의 비대칭성]

당신과 프레임워크 제작자 사이의 관계는 놀라울 정도로 비대칭적이다. 당신은 프레임워크를 위해 대단히 큰 헌신을 해야 하지만, 프레임워크 제작자는 당신을 위해 아무런 헌신도 하지 않는다. 문서에서 프레임워크 제작자와 그 프레임워크의 다른 사용자는 우리가 만들 소프트웨어와 프레임워크를 어떻게 통합할 수 있을지 조언한다. 대개의 경우 이들ㅇ느 프레임워크를 중심에 두고 우리의 아키텍처는 그 바깥을 감싸야 한다고 말한다. 프레임워크 제작자 입장에서는 프레임워크와의 이러한 결합이 위험 요소가 되지 않는다. 오히려 프레임워크와 결합되기를 바란다. 사실상 프레임워크 제작자는 당신에게 프레임워크와 혼인하기를 요구하는 것이다.

 

[위험 요인]

-프레임워크는 의존성 규칙을 위반하는 경향이 있다.

-프레임워크는 애플리케이션의 초기 기능을 만드는 데는 도움이 될 것이다. 하지만 제품이 성숙해지면서 프레임워크가 제공하는 기능과 틀을 벗어나게 될 것이다.

-프레임워크는 당신에게 도움되지 않는 방향으로 진화할 수도 있다.

-새롭고 더 나은 프레임워크가 등장해서 갈아타고 싶을 수도 있다.

 

[해결책]

“프레임워크와 결혼하지 말라!”

프레임워크를 사용할 수는 있다. 다만 프레임워크와 결합해서는 안 된다. 적당히 거리를 두자. 프레임워크는 아키텍처의 바깥쪽 원에 속하는 세부사항으로 취급하라. 프레임워크가 아키텍처의 안쪽 원으로 들어오지 못하게 하라.

 

[이제 선언합니다]

정말로 결혼해야만 하는 프레임워크도 존재한다. 예를 들어 C++를 사용하고 있다면 STL과 결혼해야 할 가능성이 높다. 이 관계는 피하기 힘들다. 이러한 관계는 정상이다. 하지만 선택적이어야 한다. 애플리케이션이 프레임워크와 결혼하고자 한다면 애플리케이션의 남은 생애 동안 그 프레임워크와 항상 함께 해야 한다는 사실을 반드시 명심해야 한다.

 

[결론]

프레임워크와의 첫만남부터 바로 결혼하려 들지 말라. 가급적이면 프레임워크를 가능한 한 오랫동안 아키텍처 경계 너머에 두자.

반응형

댓글