
149
5
장
진화하는 아키텍처 토폴로지
[그림
5
-
12
]는 서비스 통신에 작용하는 힘과 방향을 차원의 형태로 나타낸다. 아키텍트가 내
리는 결정은 각 힘의 강도를 이용해 공간 상의 특정 위치로 나타낼 수 있다. 결합된 힘 중 한 가
지를 변경하면 다른 힘도 영향을 받는다. 이러한 영향력을 조사하고 메트릭 형태로 취합한다면
그래프의 실용성이 한층 높아질 것이다.
5.3
계약 계약
계약
contract
은 소프트웨어 아키텍처에 지속적으로 영향을 미치며 아키텍트의 거의 모든 결정에
관여하는 상존 요소다. 여기서 계약이란 아키텍처를 이루는 각 부분이 서로 연결되는 방식을
포괄적으로 의미한다. ‘계약’의 사전적 정의
8
는 다음과 같다.
계약
고용, 매매, 임차 등에 관한 법적 이행을 목적으로 작성된 문서, 또는 구두로 이루어진 합의
소프트웨어에서 계약은 사전적 의미보다 포괄적이며 아키텍처의 통합 지점 등을 묘사하는 용
도로 쓰인다. 소프트웨어 개발 설계 프로세스에 쓰이는 계약의 형식은 매우 다양하다.
SOAP
,
REST
,
gRPC
,
XML
-
RPC
등 각양각색의 약어로 이름 붙여진 계약들이 즐비하다. 그러나 이
책은 계약의 정의를 다음과 같이 확장하고 더욱 일관성 있게 사용할 것이다.
계약
아키텍처의 일부에서 정보 또는 의존성을 전달하는 용도로 쓰이는 일정한 양식
이러한 정의는 ...