-
마이크로서비스 패턴후기/Book Review 2020. 4. 5. 21:21728x90반응형
길벗 북리뷰로 신청하여 받은 책. MSA에 대한 정의도 조금씩 다르고, 회사에서 MSA로 일은 하고 있는데 조금 더 정확한 내용과 기법 & 패턴들이 궁금해서 신청했다.
목차
- 1장 모놀리식 지옥에서 벗어나라
- 2장 분해 전략
- 3장 프로세스 간 통신
- 4장 트랜잭션 관리: 사가
- 5장 비즈니스 로직 설계
- 6장 비즈니스 로직 개발: 이벤트 소싱
- 7장 마이크로서비스 쿼리 구현
- 8장 외부 API 패턴
- 9장 마이크로서비스 테스트 1부
- 10장 마이크로서비스 테스트 2부
- 11장 프로덕션 레디 서비스 개발
- 12장 마이크로서비스 배포
- 13장 마이크로서비스로 리팩터링
- 한국어판 부록 a 실습 환경 구성
모놀리식 구조로 되어있는 시스템을 개발하는 가상의 팀의 이야기로 구성되어 있다. 서비스가 잘되서 사용자도 많아지고 팀은 점점 커지는데 모놀리식 구조로는 도저히 답이 안나와서 (유지보수, 배포, 테스트 등) MSA로 점차 개선해 가는 과정을 단계별로 설명한다.
예제는 자바 코드로 되어 있고, 저자가 만든 MSA 프레임워크인 이벤추에이트 트램(Eventuate tram) 코드로 설명한다. 그리고 스프링와 스프링클라우드를 이용하여 환경을 구성하는 예제까지 다룬다. 중간에 DDD(Domain Driven Design)에 대한 설명도 살짝 다룬다. DDD와 MSA는 잘 어울린다고 한다.
MSA를 제대로 구현하기 위해서 이렇게 많은 패턴들이 있는지 몰랐다. 회사 서비스 구조와 비교해 가며 읽으니 이해와 공감이 조금 더 되는 것 같았다.
이벤트 소싱(Event Sourcing)과 CQRS(Command and Query Responsibility Segregation)는 들어는 보았는데 이제 어떤 것인지 감을 잡았다. 기존 일반적인 데이터 저장 방식과 비교를 하는데 각각 장단점이 있다. 아직 잘 몰라서 그런지 몰라도 생각보다 복잡하고 부수적으로 처리해야 할 일들이 많은 것 같다. MSA를 더 명확히 구현하려면 써야 하나 싶기도 하고... 아직 회사 서비스는 그냥 전통적인 데이터 저장방식 그대로 가도 될거 같다.
이건 호불호가 조금 갈리는 주제일 거 같은데, 번역이 살짝 아쉬운 부분이 있었다. 엔드포인트(end point)를 끝점, 플레이스홀더(place holder)를 자리끼우개로 번역한 것은 음... 틀린 말도 아니고 모두를 만족시킬 수는 없으니 그러려니 해야겠다.
은탄환마냥 최근 몇년 전부터 MSA가 남발되고, 채용 공고에도 MSA 경험 등이 수식어로 따라 붙는다. 그렇지만 깔끔하게 분리된 MSA를 하기란 쉽지 않아 보인다. 인생지사 트레이드 오프가 있으니 너무 빡빡하게 MSA에 끼워 맞출 필요도 없고, 그렇다고 비대하게 큰 모놀리틱 구조를 억지로 유지할 필요도 없어보인다. 프로젝트 상황에 알맞게 MSA를 구축해 나가면 좋겠다.
마이크로서비스 패턴, 길벗 (크리스 리처드슨)
반응형'후기 > Book Review' 카테고리의 다른 글
DDD START! (0) 2020.04.28 자바 퍼즐러 (0) 2020.04.23 클린 코더 (The Clean Coder) (0) 2020.03.08 맨먼스 미신 (0) 2020.01.27 나는 LINE 개발자입니다 (0) 2020.01.12