이 책에서 다루는 대부분 패턴은 추상화를 선택하는 방법과 관련이 있다. 따라서 각 장에서 추
상화 예제를 많이 보게 된다. 추가로
3
장에서는 구체적으로 추상화를 선택하는 일반적인 휴리
스틱
heuristic
(경험적인 지식을 통해 문제를 해결하는 방법)에 대해 논의한다.
0.3
계층화
캡슐화와 추상화를 하면 세부 사항을 감추고 데이터의 일관성을 보호할 수 있다. 하지만 객체
와 함수들의 상호작용에도 주의를 기울여야 한다. 어떤 함수나 모듈, 객체인
A
가 다른 함수나
모듈, 객체인
B
를 사용할 때 이를 ‘
A
가
B
에 의존한다
A
depends
on
B
’라고 한다. 이런 의존성은 네트
워크나 그래프를 이룬다.
큰 진흙 공에서는 의존성이 제어할 수 없을 정도로 복잡하다(그림
P
-
1
). 시스템의 여러 부분
에 영향을 줄 가능성이 있기 때문에 그래프에서 어느 한 노드를 변경하기가 어렵다. 계층화한
아키텍처는 이 문제를 해결하는 방법 중 하나다. 계층화한 아키텍처에서는 코드를 서로 구분하
는 범주
category
나 역할로 분할하고, 어떤 코드 범주가 어떤 코드 범주를 호출할 수 있는지에 대
한 규칙을 도입한다.
가장 일반적인 예는 [그림
P
-
2
]에 있는
3
계층 아키텍처
3
-
layer
architecture
다.
그림P - 2 계층화한 아키텍처
비즈니스 소프트웨어를 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month, and much more.