요즘 어딜 가나 MSA 이야기로 난리다. 오랫동안 스프링을 해왔는데, 스프링 기반으로 MSA를 구축하려면 어떤 것들이 필요한지 궁금해서 이 책을 사보았다.
라제시 RV 저 / 오명운 외 역 / 에이콘출판사 / 2018.02
어떤 책인가
단순히 이론만 설명하는 게 아니라, 스프링 부트와 스프링 클라우드를 활용해 마이크로서비스를 직접 만들어보는 실용적인 구성을 띠고 있다.
책의 전반부는 마이크로서비스의 기본 개념과 기존 모놀리식 아키텍처에서 MSA로 전환하기 위한 설계 패턴을 짚어준다. 이후 본격적으로 스프링 부트를 이용해 RESTful 서비스를 만들고, 유레카(Eureka)를 활용한 서비스 디스커버리, API 게이트웨이, 로드 밸런싱, 서킷 브레이커 같은 MSA의 핵심 요소들을 하나씩 붙여나가는 식으로 진행된다.
후반부에는 스프링 프레임워크 5.0의 주요 특징인 리액티브 프로그래밍 적용 방법과 더불어 도커(Docker) 컨테이너 기반의 배포, 로깅과 모니터링까지 다룬다. 한마디로 개발부터 운영 환경까지 MSA 생태계의 필수 주제들을 처음부터 끝까지 순차적으로 훑어볼 수 있다.
방대한 내용을 책 한 권에 담다 보니 개별 기술의 깊이가 조금 얕게 느껴지는 부분도 있지만, 전체적인 그림과 흐름을 잡기에는 꽤 유용하다.
인상
가장 큰 장점은 익숙한 스프링 생태계 안에서 MSA를 경험해볼 수 있다는 점이다. 새로운 아키텍처를 배우면서 새로운 프레임워크까지 익혀야 했다면 꽤 고역이었을 텐데, 기존 지식을 활용할 수 있어 진입 장벽이 낮았다.
실무에 바로 적용하려면 고민할 거리가 훨씬 많겠지만, MSA가 대체 무엇이고 어떻게 동작하는지 감을 잡기에는 충분한 시간이었다. 한동안 이 책을 레퍼런스 삼아 이것저것 테스트해봐야겠다.