MSA와 분산 트랜잭션 — Saga 패턴하나의 서비스를 여러 마이크로서비스로 분리하면, 각 서비스가 자신만의 독립적인 데이터베이스를 갖게 된다. 이때 여러 서비스에 걸친 하나의 비즈니스 흐름(예: 주문 → 결제 → 재고 차감)을 처리하다 중간에 실패하면, 이미 처리된 앞 단계를 어떻게 되돌릴 것인가 하는 문제가 생긴다. 이것이 분산 트랜잭션(Distributed Transaction)의 딜레마이다.@Transactional이 통하지 않는 이유단일 DB 환경이라면 가장 바깥 메서드의 @Transactional 하나로 모든 작업을 묶어, 중간에 예외가 나면 전부 깔끔하게 롤백할 수 있다. 하지만 MSA에서는 각 서비스가 독립적인 데이터베이스를 가지고 있어 이 방식이 통하지 않는다.스프링의 @Transacti..