ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 아키텍처 퀀텀 (Architecture Quantum)
    Development/Architecture 2026. 2. 17. 18:24
    반응형

    아키텍처 퀀텀 (Architecture Quantum)

    • 아키텍처 퀀텀은 높은 기능 응집도, 높은 정적 커플링, 동기적 동적 커플링의 특성을 띤, 독립적으로 배포 가능한 아티팩트다.
    • 모놀리식 아키텍처는 정의에 따라 단일 아키텍처 퀀텀이다.
    • 마이크로 서비스와 같은 분산 아키텍처는 서비스를 독립적으로 배포가 가능하기 때문에 각각이 아키텍처 퀀텀이 될 수 있다. (서비스가 서로 격리되어 있다고 해서 퀀텀이 생성되는 것은 아니다.)
    • 독립적으로 배포가 가능해도 공유 데이터베이스와 같은 공통 결합점이 생긴다면 아키텍처 퀀텀에 포함된다. 따라서 단순히 배포의 경계만 봐서는 아키텍처 퀀텀을 가늠하기 어렵다.

     

    정적 커플링

    • 데이터베이스는 정적 커플링을 판단하는 기준으로, 단일 데이터베이스에 의존하는 시스템은 1 이상의 퀀텀을 가질 수 없다.
      • 책에서는 데이터베이스가 정적 커플링을 판단하는 기준으로 나와있지만 무조건적이지는 않을 것 같다.
    • 아키텍처 퀀텀을 정적 분석할 때는 아키텍처에 종속된 이것이 서비스 작동에 필요한지를 확인해야 한다.
    • 마이크로 서비스들이 유저 인터페이스와 단단하게 결합돼 있으면 아키텍처 퀀텀이 합쳐질 수 있다. 이는 서비스마다 운영을 위한 특성을 세밀하게 적용하기가 어려워지게 만든다.

    동적 커플링

    • 런타임에 퀀텀들이 서로 어떻게 통신하는지를 나타낸다. 이러한 특성들은 피트니스 함수를 지속적으로 실행시켜 모니터링해야 한다.
    • 서비스가 서로를 호출할 때는 아래 3가지를 고려해야 한다.
      • 통신(Communication) : 동기 통신인지, 비동기 통신인지?
      • 일관성(Consistency) : 워크플로 통신에 원자성이 필수로 적용되어야 하는지, 최종적 일관성만 맞춰도 충분한지?
      • 조정(Coordination) : 워크플로가 오케스트레이터를 활용하는지, 코레오그래피 방식으로 서비스가 서로 통신하는지?
    • 동적 커플링은 서비스들 간의 특성으로 인해서 서로 영향을 주면 아키텍처 퀀텀이 일시적으로 뒤얽힐 수도 있다.
      • ex) 100,000TPS를 처리하는 서비스가 50,000TPS를 처리하는 서비스를 동기적으로 호출하는 경우

    참고 서적

    [소프트웨어 아키텍처 The Hard Parts]

    반응형

    댓글

Designed by Tistory.