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

17장 경계: 선 긋기

by 오오오니 2025. 3. 18.

17장 경계: 선 긋기

비어 있음
2024년 7월 25일
너무 일찍 결정한 결합에 때문에 인적 자원의 효율을 떨어트린다.
시스템의 업무 요구사항, 유스 케이스와 관련없는 결정, 프레임워크, 데이터 베이스 등

두 가지 슬픈 이야기

너무 이른 결정 : 모든 도메인은 GUI, 미들웨어, 뎅터베이스를 를 위한 3가지 인스턴스를 가져야 한다.
⇒ 개발 비용을 증가시킴
SOA를 약속하는 일련의ㅡ 도구들을 너무 일찍 채택하여 적용했다.

FitNesse

개발하고자 했던 시스템을 UI, 업무 규칙, 데이터베이스 계층으로 적절하게 나누었다.
데이터베이스에 대한 선택을 마지막까지 미뤘다.
영속성을 구현해야 시점에 flat 파일에 저장하게 구현함(쉬움)
업무 규칙과 데이터베이스 사이의 선 긋기를 통해 데이터베이스 구현을 1년 동안 연기할 수 있었고 더 나은 해결책이 보이면 방향을 바꿀 수 있었다.

어떻게 선을 그을까? 그리고 언제 그을까?

관련이 있는 것과 없는 것 아이에 선을 긋는다.
GUI, 업무 규칙, 데이터베이스
업무 규칙은 스키마, 쿼리 언어, 데이터베이스 세부사항에 대해 어떤 것도 알아서는 안된다.
데이터베이스는 업무규칙에 대해 알고 있다. 반대는 x
선의 방향은 중요하다.

입력과 출력은?

입력과 출력은 중요하지 않다.
GUI는 다론 종류의 인터페이스로 얼마든 교체할 수 있다.

플러그인 아키텍처

살펴본 결정들은 시스템에서 서드파티 플러그인을 사용할 수 있게 한 패턴과 동일하다.
컴포넌트로부터 핵심적인 업무 규칙은 분리되어 있고 독립적이다.
수많은 다양한 형태로 확장할 수 있다.
사용자 인터페이스는 플러그인 형태이기 때문에 웹, 클라이언트/서버, soa, 콘솔 등 가능하다.

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

19장 정책과 수준  (0) 2025.03.18
18장 경계 해부학  (0) 2025.03.18
16장 독립성  (0) 2025.03.18
15장 아키텍처란?  (0) 2025.03.18
13장 컴포넌트 응집도  (0) 2025.03.18