본문 바로가기
1. SW 개발 & IT 트렌드

MSA(MicroService Architecture) 관련 책들 소개, 그리고 SW개발자

by soosun 2023. 11. 26.

당연하겠지만 'SW개발'이라는 직업은 오랜동안 개발자들을 울고 웃게 해왔습니다.

특히나 취미가 아닌 직업으로서의 SW개발은 사실 그리 만만하게 볼 일이 아닙니다.
최근 다양한 오픈소스, 개발을 직접적으로 도와주는 프레임워크, 성능 좋은 개발 언어와 툴 등이 등장하여
마치, SW개발이란 것이 아주 쉽고 재미있는 것으로만 여겨지는 부작용도 있지만, 실제 직업으로서 회사 개발조직에 소속되어 SW개발을 한다는 것은 여전히 어렵고 힘든 일입니다.

 

이런 SW개발자들에게는 숙명처럼, 새로운 기술 트렌드에 대한 학습이라는 숙제가 따라 다닙니다. 나이, 직급, 도메인, 역할 등과 관계없이 항상 학습해야 하고 이를 개발업무에 적용해야 합니다.  
 
소개된지는 어느정도 시간이 지났지만, 최근에 다시 유행을 타고 있는 것들, 오늘은  그 중 하나인 MSA와 관련된 책들을 소개하려고 합니다.
(SW분야는 특히 새로운 기술이 등장하면 너무 빠르게 일반화가 되어, 그 의미나 내용을 명확하게 모르고 지나갈때가 많습니다. 
 이럴때는 바쁘더라도 잠시 시간을 할애하여 책을 통해 한번쯤 정리를 하는 것도 좋은 방법이며, 그래야 자기 것이됩니다.)

 
대부분 이미 아시는 내용이겠지만, MSA를 정리하려면 다음과 같은 몇가지 토픽 정도는 이해하고 있어야 합니다.

(이 글은 책소개 글이므로 아래의 내용을 정리해주는 것은 범위를 벗어나는 일이니 skip 합니다....)

  • MSA ?
  • Cloud Native ?
  • Monolithic Architecture & Micro Service Architecture ?
  • MSA & SOA ? 

집 책장을 뒤져보니, 위 토픽과 관련해서 아직 버리지 않고 소장하고 있는 책들이 몇권 있었습니다.
 

  • 'SOA, WHAT & HOW',  2008년, 전병선 지음
    - SOA와 CBD는 뭐가 다르지?, 비지니스 민첩성을 위해 SOA 개념과 아키텍처 설계 방법에 대해 설명
  • 'SOA 서비스 지향 아키텍처', 2006년, 토마스 얼 지음
    - SOA 패턴, 설계방법, 구축방법 등 전반에 걸친 내용을 사례와 함게 설명하는 내용
  • '클라우드 컴퓨팅 애플리케이션 아키텍처', 2010년, 조지 리스 지음
    - Salesforce.com과 같은 서비스를 AWS에서 제공하기 위한 준비, 개발, 인프라, 보안, 장애 등 전체적인 내용 소개

 
이 책들의 서문과 목차를 읽어보면, 우리가 지금 고민하고 있는 것과 크게 다르지 않은 이야기들로 가득합니다.

(역시 유행은 되풀이 되는 것인가...결국 분산과 통합인가?)
물론 그에 대한 해법도 머 크게 다르지 않은 것 같기도 하고...


이제 최근에 읽었던 MSA 관련책들을 소개합니다.

어느날 갑자기 MSA를 제대로 정리해보자는 생각에, 온라인 강의도 듣고 글로벌 유명 IT기업들의 자료들도 읽어보고,
정부에서 발표한 NIA의 전자정부 'MSA 기반의 표준프레임워크' 자료들도 학습해보았으나,
무엇이가 2% 부족함을 느껴 관련 책들을 구입해보았습니다. (그만큼 체계적인 정리나, 다양한 의견들이 있다는 반증인가?)

  • '마이크로서비스 아키텍처', 2019년, 우메쉬 램 샤르마 지음
  • '그림으로 공부하는 마이크로서비스 구조', 2022년, 다루사와 히로유키 외
  • '클라우드 네이티브 애플리케이션 디자인 패턴', 2022년, 카순 외
  • '마이크로서비스 아키텍처 구축(전면 개정판)', 2023년, 샘 뉴먼


「 '마이크로서비스 아키텍처', 2019년, 우메쉬 램 샤르마 지음 」

ㅇ 책의 주요 내용
- 이 책은 MSA 이전 프로젝트를 하고 있는 저자가,

MSA개념에서 다른 아키텍처와의 비교, 장단점, 기본 구조, 통신, 보안,데이터 모델, 테스트와 베포, 모니터링과 문제해결 방안 등 MSA 프로젝트를 진행하기 위해 필요한 부분들을 설명해주고 있습니다.

 
- 책 전반에 걸쳐 '신용 리스크 엔진'이라는 Java기반의 샘플 프로젝트를 이용하여 MSA 적용 과정을 설명합니다.

- 각 챕터는 "개념설명 -> 필요항목들 정의 -> 샘플 소스 설명 -> 내용 요약" 등의 절차로 구성되어 있습니다.
- 기존 시스템의 MSA 전환, 장애와 모티터링, 문제해결 등의 실무적인 내용이 잘 정리되어 있으나, 디테일한 부분은 약간 부족합니다.
=> 페이지는(약 290 페이지) 조금 많으나 샘플코드와 간략한 단락들로 구성되어 상대적으로 부담이 많지는 않은 편으로,
      난이도 있는 내용보다는 MSA 프로젝트 진행을 간략하게 경험해보기에 좋은 책인 것 같습니다.

 
ㅇ 목차
1장. 마이크로서비스 아키텍처 소개
2장. 마이크로서비스 컴포넌트 정의
3장. 마이크로서비스와 엔드포인트 간의 통신
4장. 마이크로서비스 엔드포인트 보안
5장. 효과적인 데이터 모델 만들기
6장. 마이크로서비스 테스트
7장. 마이크로서비스 배포
8장. 기존 시스템을 마이크로서비스로 진화시키기
9장. 모니터링과 확장
10장. 장애 해결


'그림으로 공부하는 마이크로서비스 구조', 2022년, 다루사와 히로유키 외

ㅇ 책의 주요 내용

- 이 책을 보고 사실 조금 놀랐습니다. 일본 IBM 이야기가 잠깐 나오지만, 현업 경험을 바탕으로 한 저자의 다양한 생각과 지식들에, 그리고 MSA의 큰 틀과 다른 IT 트랜들 들과의 관계를 논리적으로 설명하려고 하는 노력 등
제목보다 가치있는, 어쩌면 제목 때문에 손해보는 책 이기 때문인 것 같습니다.('그림~' 이런 제목의 책들은  보통 그냥지나치는 경우가..)
MSA를 DX, DevOps와 연계해서 전체적인 이해를 하고자 하는 분들에게 많은 도움이 될 책이며,
쉽게 정리하는데 많은 도움이 되었고, 오랜만에 재미있게 읽었던 것 같습니다.
 
- 특히, 각 챕터에 개념을 쉽게 설명하려는 용도의 구성도와 요약 메세지를 박스로 정리를 해두었는데. 이게 생각보다 이해에 도움이 됩니다.
- 약 230페이지 정도로 많지 않은 분량에 디지털 전환, 아키텍처 설명, 패턴, 클라우드 네이티브 등 내용들을 짧지만 알차게 구성한 점이 장점이다. 물론 이런 특성으로 디테일은 약간 부족하지만 전체적인 현업의 분위기를 익히는데 도움이 주고 있습니다. 
=> 어떻게 보면 첫번째 책을 요약한 듯한 느낌을 주지만, 약간 IT 테크니컬 컨설팅인 듯한 설명인 듯 합니다.
      첫장에 DX(디지털트렌스포메이션) 내용이 나오는 것도 다른 책에 없는 특이한 점이다. 다이제스트북으로 추천할만 합니다. 

 
ㅇ 목차
제1부 마이크로서비스의 아키텍처
         CHAPTER 1 디지털 전환: 마이크로서비스가 중요해진 배경 3
         CHAPTER 2 클라우드 네이티브 컴퓨팅과 마이크로서비스 15
         CHAPTER 3 마이크로서비스 아키텍처의 기본 43
        CHAPTER 4 마이크로서비스 패턴 65
제2부 마이크로서비스를 지탱하는 클라우드 네이티브 기술
        CHAPTER 5 컨테이너, 쿠버네티스, 서버리스 121
        CHAPTER 6 서비스 메시 161
        CHAPTER 7 마이크로서비스의 개발과 운영 185
        CHAPTER 8 클라우드 배포 모델 동향 213


'클라우드 네이티브 애플리케이션 디자인 패턴', 2022년, 카순 외

ㅇ 책의 주요 내용
- 서두에서 이야기한 것처럼 클라우드 네이티브 환경에서는 MSA가 필수이기 때문에, 이책의 제목에 MSA가 들어 있지 않아도 내용의 대부분은 MSA 아키텍처의 디자인 패턴에 대해 다루고 있습니다.

 
- 첫 챕터에 SOA와 MSA의 구조적 차이점에 대해 언급되고 있으며, 이후는 아래의 목차처럼 다양한 디자인 패턴들로 이루어져 있습니다.
- 특히, "정의 - 어떻게 동작할까요 - 어떻게 사용할수 있나요 - 고려해야할 사항들 - 관련 패턴들"의 포맷으로 각 패턴들을 설명하고 있는 점이 특징
- 디자인 패턴에 대한 개념적 설명이 주된 내용이고 샘플코드 등은 제공하지 않습니다.
=> 전체적으로 클라우드 네이티브 환경에서 MSA 기반의 어플리케이션 설계 패턴들에 대한 개념 설명에 집중합니다. 
      디자인 패턴 정리가 필요한 개발자들, 특히 아키텍트들에게 참고가 될만한 구성입니다. 

 
ㅇ 목차
CHAPTER 1 클라우드 네이티브 애플리케이션이란?
CHAPTER 2 통신 패턴
CHAPTER 3 연결성 및 조합 패턴
CHAPTER 4 데이터 관리 패턴
CHAPTER 5 이벤트 주도 아키텍처 패턴
CHAPTER 6 스트림 프로세싱 패턴
CHAPTER 7 API 관리 및 사용 패턴
CHAPTER 8 클라우드 네이티브 패턴 적용하기


'마이크로서비스 아키텍처 구축(전면 개정판)', 2023년, 샘 뉴먼

ㅇ 책의 주요 내용
- 이 책은 MSA관련하여 가장 유명한 책들 중에 하나로 아래는 출판사 책소개 문구입니다.

   "마틴 파울러가 극찬한 『마이크로서비스 아키텍처 구축』이 전면 개정되어 돌아왔다. 마이크로서비스와 관련된 모든 측면에 대해 광범위한 개요를 제공하고자 했다. ~ 1부에서는 마이크로서비스의 핵심 아이디어를 설명하고, 2부에서는 개념에서 구현 상세로 넘어가 마이크로서비스를 활용하는 데 도움이 되는 기법과 기술을 살펴본다. 마지막으로 3부에서는 1부, 2부에서 배운 내용을 토대로 사람과 조직의 입장에서 기술을 구현해내는 과정을 설명한다.(출처: 한빛미디어 출판사 소개문)"
 
- 최근에 읽었던 MSA 관련 책들중에 가장 추천할 만한 책입니다.
개정판 이전에 이미 읽은 사람도 많겠지만, 저자의 다양한 경험과 지식을 바탕으로 패턴, 인프라, 조직, 문화 등 MSA와 관련된 거의 모든 분야에 대한 저자의 생각과 고민이 정리되어 있습니다. 특히 각 패턴들에 대해서 가상의 회사를 예를 들어 설명해주는 친절함까지 제공해줍니다.
- 매 주제마다 저자는 본인의 생각을 의견으로 정리하여 제시한다. 정답을 제시하는 방식이 아닌 의견을 제시하는 방식이 마음에 든다. 여기에 더하여 저자가 경험했던 프로젝트 사례를 예로 들어 줍니다.
- 챕터들 중에 패턴을 설명해주는 곳에는 '패턴' 참조 표시를 제공하며, 주요 외부 사례나 전문가들이 제시한 논문이나 주요 자료에 대해서도 코멘트를 제공하고 있습니다.
- MSA 관련하여 이보다 더 다양한 주제를 다룰수 있을까? 하는 생각이 들 정도, 무슨 설명이 더 필요할까, 일단 아래 목차를 보시라...
=> 유일한 단점은 분량(약 690 페이지)과 너무 많은 분야를 다루는 것이라고나 할까? 
      중간에 지칠수 있으니, 관심분야 위주로 필요할때마다 찾아 보는 방식으로 활용하는 것을 추천합니다.

 
ㅇ 목차
PART 1 기초
CHAPTER 1 마이크로서비스란?
CHAPTER 2 마이크로서비스 모델링 방법
CHAPTER 3 모놀리스 분해
CHAPTER 4 마이크로서비스 통신 방식

PART 2 구현
CHAPTER 5 마이크로서비스 통신 구현
CHAPTER 6 워크플로
CHAPTER 7 빌드
CHAPTER 8 배포
CHAPTER 9 테스트
CHAPTER 10 모니터링에서 관찰가능성으로
CHAPTER 11 보안
CHAPTER 12 회복 탄력성
CHAPTER 13 확장

PART 3 사람
CHAPTER 14 사용자 인터페이스
CHAPTER 15 조직 구조
CHAPTER 16 진화하는 아키텍트


 
매번 그렇지만 부족한 부분들은 이곳의 여러 전문가 분들이 채워주리라 기대해봅니다.

부족한 글 읽어 주셔서 감사합니다.

 

 

 


< 참조 >

 

ㅇ 모놀리식에서 마이크로서비스까지 - 정말 힘들죠?

https://medium.com/@swedbank.tech/from-monolithic-to-microservices-one-hell-of-a-hustle-da1eb4cd1098

 

From monolithic to microservices — one hell of a hustle?

I can still remember one Friday in April 2018, when we had just released a new version of our Internet Bank web application to production…

medium.com

 

ㅇ 프론트엔드에서 MV* 아키텍쳐란 무엇인가요?

https://velog.io/@teo/프론트엔드에서-MV-아키텍쳐란-무엇인가요

 

프론트엔드에서 MV* 아키텍쳐란 무엇인가요?

MVC, MVVM, MVI 아키텍쳐가 어쩌고 저쩌고... 소프트웨어를 공부하다 보면 한번쯤은 MV__로 시작되는 아키텍쳐라는 용어를 들어본적이 있을 겁니다. 실제로 프로그래밍을 할 때에는 중요하지 않아보

velog.io

 

댓글