더북(TheBook)

4.1 마이크로서비스 아키텍처에서의 트랜잭션 관리

엔터프라이즈 애플리케이션은 거의 모든 요청을 하나의 DB 트랜잭션으로 처리합니다. 개발자는 보통 트랜잭션 관리를 간소화한 프레임워크/라이브러리를 사용하고, 그중에는 트랜잭션을 명시적으로 시작, 커밋, 롤백할 수 있는 프로그램형(programmatic, 프로그램으로 직접 코딩하는) API를 제공하는 제품도 있습니다. 스프링 프레임워크는 선언형(declarative)3 메커니즘을 제공합니다. 즉, 메서드 선언부에 @Transactional만 붙이면 해당 메서드를 한 트랜잭션으로 자동 실행하므로 개발자가 간편하게 트랜잭셔널 비즈니스 로직을 작성할 수 있습니다.

단일 DB에 접근하는 모놀리식 애플리케이션의 트랜잭션 관리는 어렵지 않습니다. 하지만 다중 DB, 다중 메시지 브로커를 사용하는 모놀리식 애플리케이션이나, 자체 DB를 가진 여러 서비스로 구성된 마이크로서비스 아키텍처는 트랜잭션 관리가 어렵기 때문에 좀 더 정교한 메커니즘이 필요합니다.

사가를 설명하기 전에 먼저 마이크로서비스 아키텍처에서 트랜잭션 관리가 어려운 이유를 알아봅시다.

 

 


3 역주 : 프로그램이 어떤 방법으로 해야 하는지를 나타내기보다 무엇과 같은지를 설명하는 경우에 ‘선언형’이라고 합니다. 예를 들어 웹 페이지는 선언형인데, 웹 페이지는 제목, 글꼴, 본문, 그림처럼 ‘무엇’이 나타나야 하는지를 묘사하는 것이지 ‘어떤 방법으로’ 컴퓨터 화면에 웹 페이지를 나타내야 하는지를 묘사하는 것이 아니기 때문입니다. (출처: 위키백과)

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