본문 바로가기

etc./개발자 리뷰

[개발자 리뷰] 마이크로 서비스 패턴

오늘 소개해드릴 책은 '마이크로 서비스 패턴' 입니다

 

마이크로 서비스 패턴

 

기존의 어플리케이션의 구조는 아키텍처의 관점에서 모놀로식(monolith) 패턴을 가지고 있는 경우가 많았는데요, 한마디로 말해 되는대로 서비스 아키텍처를 구성했다는 말입니다.

 

물론, 예전처럼 서비스가 복잡하지 않았을 때에는 개발이 간단하고 테스트, 배포가 간단하다는 장점을 가지고 있었지만 시간이 지남에 따라 어플리케이션의 크기가 커지고 서비스가 복잡해지면서 그간 가지고 있던 장점들이 사라지고 개발과 테스트, 배포가 오히려 힘들어진 단점들만이 남게 되었습니다.

 

따라서 이에 대한 해결책으로 마이크로 서비스 아키텍처가 등장하게 됩니다.

 

마이크로서비스 아키텍처가 답이다

책에서 설명하는 마이크로서비스 아키텍처의 장점들은 다음과 같습니다.

 

1. 어플리케이션을 모듈별로 나누어 관리할 수 있다.

2. 서비스마다 DB가 따로 있다.

3. 서비스가 작아 관리하기 용이하다.

4. 서비스를 독립적으로 배포/확장 할 수 있다.

5. 신기술 시험/도입에 용이하다.

 

단, 여러 시스템에 걸친 공통 기능 배포시에 주의를 많이 기울여야 한다는 점, 딱 맞는 서비스를 찾기 쉽지 않다는 단점 또한 존재합니다.

 

하지만 단점보다도 장점이 많은 아키텍처 구조인 만큼 이 책에서는 마이크로서비스 아키텍처를 통한 서비스 구조, 트랜잭션 관리, 개발 및 배포의 과정을 자세하게 설명해주고 있습니다.

 

트랜잭션 관리

특히나 제대로된 분산 트랜잭션 관리 구조를 만들기 위한 서비스 패턴의 구조를 상세하고 이해하기 쉽게 다루고 있었는데요

 

특히나 데이터 일관성 유지를 위한 사가 패턴들의 상세한 설명이 인상 깊었습니다.

 

*사가 패턴 종류

크레오그래피(choreography) : 사가 참여자가 결정 권한을 가지며, 사가 참여자간 이벤트 교환 방식으로 통신

오케스트레이션(orchestration) : 사가 오케스트레이터가 사가 참여자들에게 커맨드 메시지를 보내 수행할 작업 지시

 

그 외에도 앞서 말한 마이크로서비스 아키텍처를 통한 서비스 개발 및 배포를 위한 과정과 리팩토링 과정까지도 상세히 설명해주고 있습니다.