본문 바로가기
책/클린 아키텍처

19장 정책과 수준

by 오오오니 2025. 3. 18.

19장 정책과 수준

비어 있음
2024년 8월 18일
소프트웨어 시스템이란 정책을 기술한 것이다. 소프트웨어 아키텍처에는 이러한 정책을 분리하고 재편성하는 일도 포함된다.
아키텍처 개발은 컴포넌트들을 재편성할 때 비순환 방향 그래프로 구성하는 기술을 포함한다.
정점 : 동일한 수전의 정책을 포함하는 컴포넌트
간선 : 컴포넌트 사이의 의존성
⇒ 좋은 아키텍처는 저수준의 컴포넌트가 고수준 컴포넌트에 의존하도록 설계해야 한다.

수준

수준 : 입력과 출력까지의 거리
입력과 출력에 가까울 수록 저수준, 멀수록 고수준
번역 컴포넌트는 입력과 출력에서 가장 멀리 있어서 최고 수준의 컴포넌트이다.
데이터 흐름 : 문자읽기 → 번약 → 문자 쓰기
소스 코드 의존성 : 경계 안쪽으로 향한다.
데이터 흐름과 소스 코드 의존성이 항상 같은 방향을 가리키지 않는다.
💡
소스 코드 의존성은 그 수준에 따라 결합되어야 하며, 데이터 흐름을 기준으로 결합되어서는 안 된다.
ConsoleReader, ConsoleWriter 입력과 출력에 가깝기 때문에 저수준이다.
암호화 / 입력, 출력 분리 → 암호화 정책을 더 넓은 맥락에서 사용할 수 있다.
정책이 변경되는 방식에 따라 컴포넌트로 묶는다.
(고수준 정책은 더 중요한 이유로 덜 빈번하게 변경된다.)
모든 소스 코드 의존성의 방향이 고수준 정책을 향할 수 있도록 정책을 분리했다면 변경의 영향도를 줄일 수 있다.
⇒ 저수준의 컴포넌트가 고수준 컴포넌트에 플러그인 되어야 한다는 관점으로 볼 수 있음

' > 클린 아키텍처' 카테고리의 다른 글

21장 소리치는 아키텍처  (0) 2025.03.18
20장 업무 규칙  (0) 2025.03.18
18장 경계 해부학  (0) 2025.03.18
17장 경계: 선 긋기  (0) 2025.03.18
16장 독립성  (0) 2025.03.18