75
1
장
마이크로서비스란?
양한 데이터베이스에서 상태가 관리되는 훨씬 더 분산된 시스템으로 전환되면, 데이터 일관성
과 관련된 잠재적인 문제가 발생한다. 과거에는 상태 변경을 관리하기 위해 데이터베이스 트랜
잭션에 의존할 수 있었지만, 분산 시스템에서는 유사한 안전성을 쉽게 제공할 수 없다는 점을
이해해야 한다. 대부분의 경우 분산 트랜잭션을 사용하면 상태 변경을 조정하는 데 매우 큰 문
제가 있는 것으로 나타났다.
대신
6
장에서 자세히 설명할 사가
saga
와 궁극적 일관성
eventual
consistency
같은 개념을 사용해야 할
수도 있다. 이러한 개념은 시스템의 데이터에 대한 사고방식을 근본적으로 바꾸도록 요구하기
도 하며, 기존 시스템을 마이그레이션할 때는 매우 힘겨운 일이 되기도 한다. 하지만 애플리
케이션을 얼마나 빠르게 분해할 것인지에 유의해야 하는 또 다른 좋은 이유이기도 하다. 운영
환경의 아키텍처 변경에 따른 영향도를 평가할 점진적 접근 방식을 채택하는 것은 매우 중요
하다.
1.71.7
마이크로서비스를 사용해야 하는가? 마이크로서비스를 사용해야 하는가?
마이크로서비스 아키텍처를 소프트웨어에 대한 기본 접근 방식으로 만들려는 일부 움직임도
있지만, 앞서 설명한 많은 문제를 고려해 도입 여부를 신중히 결정해야 한다. 마이크로서비스
가 자신에게 적합한지 판단하기 전에 문제 영역, 기량, 기술 상황을 평가하고 달성하려는 목표
가 무엇인지 이해해야 한다. 마이크로서비스 아키텍처는 일반적인 아키텍처 접근 방식이 아니
라 특정