-
아키텍처 퀀텀 (Architecture Quantum)Development/Architecture 2026. 2. 17. 18:24반응형
아키텍처 퀀텀 (Architecture Quantum)
- 아키텍처 퀀텀은 높은 기능 응집도, 높은 정적 커플링, 동기적 동적 커플링의 특성을 띤, 독립적으로 배포 가능한 아티팩트다.
- 모놀리식 아키텍처는 정의에 따라 단일 아키텍처 퀀텀이다.
- 마이크로 서비스와 같은 분산 아키텍처는 서비스를 독립적으로 배포가 가능하기 때문에 각각이 아키텍처 퀀텀이 될 수 있다. (서비스가 서로 격리되어 있다고 해서 퀀텀이 생성되는 것은 아니다.)
- 독립적으로 배포가 가능해도 공유 데이터베이스와 같은 공통 결합점이 생긴다면 아키텍처 퀀텀에 포함된다. 따라서 단순히 배포의 경계만 봐서는 아키텍처 퀀텀을 가늠하기 어렵다.
정적 커플링
- 데이터베이스는 정적 커플링을 판단하는 기준으로, 단일 데이터베이스에 의존하는 시스템은 1 이상의 퀀텀을 가질 수 없다.
- 책에서는 데이터베이스가 정적 커플링을 판단하는 기준으로 나와있지만 무조건적이지는 않을 것 같다.
- 아키텍처 퀀텀을 정적 분석할 때는 아키텍처에 종속된 이것이 서비스 작동에 필요한지를 확인해야 한다.
- 마이크로 서비스들이 유저 인터페이스와 단단하게 결합돼 있으면 아키텍처 퀀텀이 합쳐질 수 있다. 이는 서비스마다 운영을 위한 특성을 세밀하게 적용하기가 어려워지게 만든다.
동적 커플링
- 런타임에 퀀텀들이 서로 어떻게 통신하는지를 나타낸다. 이러한 특성들은 피트니스 함수를 지속적으로 실행시켜 모니터링해야 한다.
- 서비스가 서로를 호출할 때는 아래 3가지를 고려해야 한다.
- 통신(Communication) : 동기 통신인지, 비동기 통신인지?
- 일관성(Consistency) : 워크플로 통신에 원자성이 필수로 적용되어야 하는지, 최종적 일관성만 맞춰도 충분한지?
- 조정(Coordination) : 워크플로가 오케스트레이터를 활용하는지, 코레오그래피 방식으로 서비스가 서로 통신하는지?
- 동적 커플링은 서비스들 간의 특성으로 인해서 서로 영향을 주면 아키텍처 퀀텀이 일시적으로 뒤얽힐 수도 있다.
- ex) 100,000TPS를 처리하는 서비스가 50,000TPS를 처리하는 서비스를 동기적으로 호출하는 경우
참고 서적
[소프트웨어 아키텍처 The Hard Parts]
반응형'Development > Architecture' 카테고리의 다른 글
함수형 프로그래밍, 커링, 모노이드, 펑터.. (0) 2026.02.18 [Domain Driven Design] 도메인 모델 정리 (1) 2021.05.25 [Clean Architecture] 컴포넌트 결합 (0) 2020.06.29 [Clean Architecture] 컴포넌트 응집도 (0) 2020.06.27 [Clean Architecture] 3부. 설계 원칙 (0) 2020.06.11