더북(TheBook)

2.2.4 데이터 변환과 일관성

마이크로서비스를 검토할 때 여러분은 서비스의 데이터 사용 패턴과 서비스 소비자가 어떻게 서비스를 사용하는지 고민해야 한다. 마이크로서비스는 적은 수의 테이블을 둘러싸고 추상화하며, 저장소에 단순한(복합적이지 않은) 질의 생성, 추가, 실행 등 ‘운영상의’ 작업을 수행하는 메커니즘으로도 잘 동작한다.

애플리케이션이 여러 데이터 소스에서 복잡한 데이터를 취합하고 변환해야 할 경우 마이크로서비스의 분산된 특성 때문에 작업이 어려워진다. 마이크로서비스는 변함없이 과도한 책임을 떠안고 성능 문제에도 취약해질 것이다.

마이크로서비스 사이에 트랜잭션을 처리하는 표준이 없다는 사실도 잊지 말자. 트랜잭션 관리가 필요하다면 직접 만들어야 한다. 7장에서 살펴보겠지만 마이크로서비스는 메시지를 사용해 서로 통신할 수 있다. 메시징에서는 데이터를 업데이트할 때 지연 시간(latency)이 발생한다. 따라서 업데이트한 데이터가 즉시 나타나지 않을 수도 있어 애플리케이션은 최종 일관성(eventual consistency)을 유지해야 한다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.