183
6
장
진화적 데이터
6.2.1 6.2.1
22
단계 커밋 트랜잭션단계 커밋 트랜잭션
아키텍트가 커플링을 논할 때는 일반적으로 클래스, 라이브러리 등의 아키텍처 기술이 화제로
등장한다. 그러나 대부분의 프로젝트는 아키텍처 기술 외에도 트랜잭션을 비롯해 다양한 커플
링 구조를 포함한다. 이는 모놀리식 아키텍처와 분산 아키텍처에 모두 해당하는 사실이다.
트랜잭션은 특수한 형태의 커플링이며, 전통적인 기술 아키텍처 중심 도구는 트랜잭션의 동작
을 드러내지 못한다. 아키텍트는 다양한 도구를 사용해 클래스 사이의 입출력 커플링을 쉽게
감별할 수 있다. 그러나 트랜잭션 콘텍스트의 범위를 결정하는 것은 훨씬 더 어렵다. 스키마의
커플링이 진화를 방해하듯, 트랜잭션 커플링은 컴포넌트를 구체적인 방식으로 결합시키며 진
화를 방해하는 요인이 된다.
비즈니스 시스템에서 트랜잭션을 사용하는 이유는 다양하다. 첫째, 트랜잭션의 개념은 비즈니
스 분석가들의 사랑을 받는다. 특정한 상황에서 일시적으로
세상을 멈추는 능력
은 기술적인 과
제를 떠나 그 자체로 매력적이기 때문이다. 복잡한 시스템은 전역적으로 제어하기 어렵고, 트
랜잭션은 바로 그 난해한 작업의 일종이다. 둘째, 트랜잭션의 경계를 조사하면 비즈니스적 개
념이 실제 구현과 어떻게 결합되어 있는지 확인할 수 있다. 셋째, 트랜잭션 콘텍스트를 데이터
팀이 관할하고 있다면 아키텍처의 기술적 커플링과 마찬가지로 데이터의 결합 역시 분리하기
쉽지 않다.
5
장에서 아키텍처의 퀀텀 경계 개념을 논의한 바 있다.