Post

정책과 수준

19. 정책과 수준

소프트웨어 시스템이란 정책을 기술한 것

대다수의 주요 시스템에서 하나의 정책은 이 정책을 서술하는 여러 개의 조그만 정책들로 쪼갤 수 있다.

소프트웨어 아키텍처를 개발하는 기술에는 이러한 정책을 신중하게 분리하고, 정책이 변경되는 양상에 따라 정책을 재편성하는 일도 포함된다.

흔히 아키텍처 개발은 재편셩된 컴포넌트 들을 비순환 방향 그래프로 구성하는 기술을 포함한다.

좋은 아키텍처라면 저수준 컴포넌트가 고수준 컴포넌트에 의존하도록 설계되어야 한다.

수준(level)

수준은 엄밀하게 정의하면 ‘입력과 출력까지의 거리’

시스템의 입력과 출력 모두로부터 멀리 위치할수록 정책의 수준은 높아진다.

입력과 출력을 다루는 정책이라면 시스템에서 최하위 수준에 위치

정책을 컴포넌트로 묶는 기준은 정책이 변경되는 방식에 달려있다

SRP와 CCP에 따르면 동일한 이유로 동일한 시점에 변경되는 정책은 함께 묶인다.

모든 소스 코드 의존성의 방향이 고수준 정책을 향할 수 있도록 정책을 분리했다면 변경의 영향도를 줄일 수 있다.

저수준 컴포넌트는 고수준 컴포넌트에 플러그인 되어야 한다.

참조

  1. 클린 아키텍처(Clean Architecture)
This post is licensed under CC BY 4.0 by the author.