메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

처음 시작하는 마이크로서비스

AWS, 도커, 테라폼 등으로 구축하는 마이크로서비스 아키텍처

한빛미디어

번역서

판매중

  • 저자 : 로니 미트라 , 이라클리 나다레이슈빌리
  • 출간 : 2021-08-01
  • 페이지 : 344 쪽
  • ISBN : 9791162244579
  • 물류코드 :10457
  • 초급 초중급 중급 중고급 고급
4.8점 (22명)
좋아요 : 2

더 나은, 더 빠른, 더 넓은 데이터 관리의 시작

 

빠르게 변화하는 대규모 데이터를 기존의 낡은 아키텍처로 관리하기란 쉽지 않다. 변경 가능성과 확장성을 가진 마이크로서비스 아키텍처는 이 어려움을 극복할 새로운 대안이다. 이 책은 단순히 마이크로서비스 아키텍처의 시스템적인 구축만을 다루지 않는다. 팀 설계, 도메인 설계, 인프라, 엔지니어링 및 릴리스를 포괄하는 실용적이고 규범적인 모델로 통합적인 마이크로서비스 아키텍처 구축에 대한 지식을 전한다.

 

 

대상 독자

 

이 책의 대상은 마이크로서비스로 시스템을 구현하는 사람들이다. 마이크로서비스 시스템의 원리와 패턴을 몇 가지 언급하지만, 초점은 실용적인 설계와 엔지니어링에 있다. 마이크로서비스 아키텍처를 구축하는 아키텍트나 엔지니어에게 이 책을 권하고 싶다.

그러나 이 책은 마이크로서비스 구현을 간단히 알아보고 싶은 독자에게도 유용하다. 여러분의 역할이 무엇이든 간에 마이크로서비스 시스템을 구축하는 작업을 이해하고 싶다면 이 책이 도움이 될 것이다.

 

 

주요 내용

  • 효과적이고 명확한 엔드 투 엔드 마이크로서비스 시스템 설계 연습 
  • 팀 정의 및 팀 책임 및 공동 작업을 위한 가이드라인 
  • 대용량 애플리케이션을 마이크로서비스로 분할하는 방법 
  • 인프라 변경을 위한 간단하면서도 강력한 CI/CD 파이프라인 구축
  • AWS에서 작동하는 마이크로서비스 애플리케이션 구축

 

추천사

 

이 책은 마이크로서비스 원칙과 관행을 실제 작업 코드로 구현하는 명확하고 실질적인 방법을 제공합니다. 마이크로서비스 구축을 빠르게 시작하고 시도하려는 모든 분에게 추천합니다.

 

700_처음 시작하는 마이크로서비스.png

로니 미트라 저자

로니 미트라

25년 이상의 웹 및 연결 기술을 사용한 경험을 가진 전략가이자 컨설턴트. 사람들에게 더 나은 분산 시스템을 설계하도록 지원하고, 전 세계를 돌아다니면서 조직의 인터페이스 설계를 위한 설계 중심 접근법과 애플리케이션 아키텍처에 대한 시스템 중심 접근 방식을 채택하도록 돕고 있다. 

『Microservice Architecture』(O’Reilly, 2016) 및 『Continuous API Management, 2nd ed.』(O’Reilly, 2021)를 공저했다.

이라클리 나다레이슈빌리 저자

이라클리 나다레이슈빌리

Capital One에서 Tech Fellows Group의 선임 이사. 마이크로서비스 혁신을 주도하고 있다. 『Microservice Architecture』(O’Reilly, 2016)의 공동 저자이며, 이전에는 NY 기반 의료 기술 스타트업인 ReferWell의 공동 창립자이자 CTO였다. CA 테크놀로지스와 내셔널 퍼블릭 라디오(NPR)에서 기술 리더십 역할을 수행하기도 했다.

CHAPTER 1 마이크로서비스 아키텍처로의 여정

1.1 마이크로서비스란 무엇인가?  

1.2 조정 비용 절감  

1.3 실행을 통한 학습  

1.4 결정과 결정

1.5 마치며  

 

CHAPTER 2 마이크로서비스 운영 모델 설계

2.1 팀과 사람이 중요한 이유  

2.2 팀 토폴리지 소개  

2.3 마이크로서비스 팀 토폴로지 설계  

2.4 마치며  

 

CHAPTER 3 마이크로 서비스 설계: SEED(S) 프로세스

3.1 서비스 설계의 7가지 본질적 진화: SEED(S) 소개  

3.2 액터 식별  

3.3 액터가 수행하는 작업 식별  

3.4 시퀀스 다이어그램을 사용하여 상호 작용 패턴 발견  

3.5 JTBD에서 액션 및 쿼리 도출  

3.6 개방형 표준을 사용하여 각 액션 및 쿼리를 스펙으로 설명  

3.7 API 사양에 대한 피드백  

3.8 마이크로서비스 구현  

3.9 마이크로서비스 vs API  

3.10 마치며  

 

CHAPTER 4 마이크로서비스의 크기 조정: 서비스 경계

4.1 경계가 중요한 이유와 중요한 시기, 경계를 찾는 방법  

4.2 도메인 주도 설계 및 마이크로서비스 경계  

4.3 이벤트 스토밍 소개  

4.4 범용 크기 조정 공식 소개  

4.5 마치며  

 

CHAPTER 5 데이터 처리

5.1 독립적인 배포와 데이터 공유  

5.2 데이터를 포함하는 마이크로서비스  

5.3 이벤트 소싱과 CQRS  

5.4 마이크로서비스 외의 이벤트 소싱과 CQRS 활용  

5.5 마치며  


CHAPTER 6 인프라 파이프라인 구축

6.1 데브옵스 원칙과 관행  

6.2 IaC 환경 설정  

6.3 AWS 웹서비스 구성  

6.4 IaC 파이프라인 구축  

6.5 마치며  

 

CHAPTER 7 마이크로서비스 인프라 구축

7.1 인프라 구성요소  

7.2 인프라 구현  

7.3 마치며  

 

CHAPTER 8 개발자 워크스페이스

8.1 코딩 표준과 개발자 설정  

8.2 로컬 컨테이너 환경 구성  

8.3 도커 설치  

8.4 도커 사용 고급 예제: 카산드라 설치  

8.5 쿠버네티스 설치  

8.6 마치며  

 

CHAPTER 9 마이크로서비스 개발

9.1 마이크로서비스 엔드포인트 설계  

9.2 마이크로서비스 데이터 구현  

9.3 마이크로서비스 코드 구현  

9.4 두 번째 마이크로서비스 코드 구현  

9.5 엄브렐라 프로젝트로 서비스 연결  

9.6 마치며  

 

CHAPTER 10 마이크로서비스 릴리스

10.1 스테이징 환경 설정  

10.2 항공편 정보 컨테이너 게시  

10.3 항공편 서비스 컨테이너 배포  

10.4 리소스 정리  

10.5 마치며  

 

CHAPTER 11 변경 관리

11.1 마이크로시스템에서의 변경  

11.2 아키텍처에 대한 검토  

11.3 마치며  

 

CHAPTER 12 여정의 끝(그리고 새로운 시작)

12.1 마이크로서비스를 사용한 복잡성 및 단순화  

12.2 마이크로서비스 전환 진행률 측정  

12.3 마치며

처음부터 단계별로 살펴보는 마이크로서비스 구축 통합 가이드 

 

마이크로서비스는 최근 대세가 된 클라우드, 데브옵스와 함께 모두가 인정하는 모던 애플리케이션의 필수 요소이다. 하지만 마이크로서비스에 대한 전반적인 지식과 이해 없이 도입부터 시도한 많은 기업과 아키텍트들은 실패를 맛봤다. 저자는 그동안 현업에서 마이크로서비스를 구현하며 얻은 지식과 경험을 이 책에 담았다. 이 책은 팀 설계부터 인프라, 개발, 운영까지 차근차근 단계별로 마이크로서비스의 통합적인 지식을 예제와 그림으로 독자들에게 전한다.

 

마이크로서비스 아키텍처 구축은 하나의 결과나 목적이 아닌 기나긴 여정이다. 이 책으로  마이크로서비스 구현에 대한 통합적인 관점을 배우고 저자가 강조하는 유연한 사고와 방법을 통해 기나긴 마이크로서비스 구축 여정의 첫 단추를 잘 끼울 수 있길 바란다.

길다면 긴 시간 관심을 가져온 마이크로 서비스에 대한 책이다.

 

여러 컨퍼런스나 온라인 글들은 많이 봤지만, 정리된 책으로 본 것은 처음이었는데, 확실히 정리된 책이 좋다고 느낀 부분은 마이크로 서비스에 대한 정의부터 설계, 이슈, 인프라, 개발, 릴리즈, 변경관리 순으로 서사가 이어져 흐름을 이해하기 좋았다.

 

내게 특히 궁금했던 MSA에서의 서비스 경계, 쿠버네티스 배포와 업데이트 관련 내용들이 특히 좋았다. 책 자체에 AWS, Docker, Terraform, k8s등에 대한 내용이 나오다보니 사전 지식이 조금은 필요하긴 하지만, 충분히 읽어볼만한 책이었다고 생각한다.  

단점으로는 꽤나 중요하다고 생각하는 로그, 리소스 모니터링에 대한 부분이 빠져있어서 이 부분은 아쉬웠다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

클라우드 컴퓨팅은 하나의 시대적 흐름으로 확실하게 뿌리를 내렸다고 생각한다.

국내 IT환경 특히나 기업시장에서는 여전히 온프레미스 방식이 상당수이고 클라우드를 도입하더라도 Private Cloud로 구축하는 경우가 종종있다.

물론 IT기반의 대외서비스가 중심인 기업의 경우는 제외하고 내부시스템의 경우 확실하게 클라우드 도입이 더딘것은 사실이다. 이는 필자가 속한 기업이 국내 대기업을 중심으로 인프라성 솔루션 공급을 주 사업으로 하고 있기 때문에 경험적으로 그렇게 알고 있다.


클라우드 컴퓨팅에서 마이크로서비스를 빼놓을 수는 없다, 마이크로서비스 아키텍쳐는 클라우드 컴퓨팅을 지탱하는 중요한 개념이나 사상중 하나이다.


문제는 마이크로서비스라는 것이 사실은 실체가 참 모호하다.


필자는 2000년대 중후반부터 EAI나 SOA 같이 인터페이스나 서비스 기반의 아키텍팅 관련된 일을 해오다보니 엔터프라이즈 환경에서 인터페이스나 서비스 아키텍쳐의 설계/구성에 관한 다양한 경험을 가지고 있다.


마이크로서비스? 도대체 마이크로서비스는 어떻게 정의를 할 수 있을 것인가? 마이크로라는 것이 서비스의 크기를 나타내는 것이라면 어디까지가 마이크로인가? 코딩 30줄내외의 최소단위 모듈을 마이크로라 할 것인가?


또한 개념과 사상이 현실과 매우 동떨어진 경우도 많이 봤다... SOA도 그랬고...


그런 의미에서 '처음 시작하는 마이크로서비스'란 책은 MSA를 구축하는 아키텍트나 엔지니어가 읽어보기에 참 좋은 입문서라 할 수 있을 것 같다.


보통은 마이크로서비스라하면 최소화된 기능으로 구현된 API 서비스라 생각하기 쉬운데 그것을 포함한 그 서비스 서비스 단위와 아키텍팅 그리고 조직의 문화와 방법론 등을 총칭하는 개념으로 생각하면 좋을 것 같다.


이 책은 그런 의미에서의 접근을 하게끔 해주는 좋은 길잡이가 된다.


상황이 그렇다보니 이 책을 보기 위해서 알아야 하는 것도 상당수 된다.


단순히 개발자가 보기에는 어려울 수도 있다. 하지만 이 책만큼  마이크로서비스란 무엇인가로 시작해서 배포와 변경관리까지 단계적으로 접근하는 입문서/실용서도 없으리라...


※ 본 리뷰는 IT 현업개발자가, 한빛미디어 책을 제공받아 작성한 서평입니다.

20210924_123350.png

 

 

한빛미디어 처음 시작하는 마이크로서비스 책은 완전 마이크로서비스에 대한 지식이 없던 제 기준으로는 좀 어렵게 느껴졌어요. 그래서 1회독과 1회 실습으로는 아직 음...? 상태..? ㅎㅎ 실제로도 어려운 개발방식이라 한번 읽고 따라하는걸로는 초보자가 쉽게 습득할 순 없는게 맞긴한듯.

관련된 지식이 있는 분들이라면 이론과 실습이 적절하게 구성되어 있어 한 번 읽고 실습해보면서 마이크로서비스에 대해 더 자세히 알고 사용할 수 있을거 같네요.

마이크로서비스라는 개발 기법이 무엇이며, 왜 사용하는지, 어떻게 그 아키텍쳐 서비스를 사용할 수 있는지를 충실하게 잘 정리해놓은 책 같습니다. 마이크로서비스에 대한 이해가 필요하다면 꼭 한번 읽고 따라해보세요!

 

 

 

 


이번년도에도 한빛 미디어의 나는 리뷰어다에 선정되어 매달 책 한 권씩을 읽을 수 있게 됐다. 9월달 미션으로 나온 책 중에 하나인 처음 시작하는 마이크로서비스를 받게 됐고, 이번 달에 읽어보게 됐다. 이 글은 이 책에 대한 간단한 리뷰이다.기술적인 내용을 기대한다면, 사실 이 책은 추천도서로 오를 수 없다. 이 책은 마이크로서비스를 도입하고자 하는 팀에게 기술 외적인 부분에서부터 팀 구성과 팀의 규칙, 그리고 경계를 설정하는 등 비 개발적인 영역에서 고민해야 하는 점들부터 시작한다. 그러나 간단하게나마 기술에 대한 구체적인 이야기도 나오기 때문에, Up & Running이라는 말이 정말 딱 어울린다. 어떻게 팀을 구성할 수 있는지, 어떤 팀이 있고 어떤 역할을 하는지에 대한 일반적인 이야기가 궁금한 사람들에게 정말 필요한 도서이다. 필자도 마이크로서비스에 대해 아는 바가 없었기 때문에 이런 이야기들이 반가웠다.이 책이 마이크로서비스를 접해본 적 없는 초보자에게 만큼은 아주 좋은 책이라고 생각했는데, 책 전반적인 내용에서 CI/CD를 다루는 내용과, IaC에 대한 내용, 그리고 결과적으로 핸즈온 성격으로 항공편 관련 애플리케이션을 마이크로서비스로 구성해볼 수 있도록 책을 구성했다. 마이크로서비스는 꽤 거대한 영역이라는 생각이 많이 드는데, 그 영역을 공부하는 물꼬를 틀 수 있는 좋은 책이라고 생각했다.

 
 

 

마이크로 서비스를 시작하기 위한 첫번째 이정표 같은 책

 

한빛미디어로부터 서펑 리뷰를 수락하였을 때 마이크로 서비스에 대한 관심이 높아져 이 책을 신청하게 되었다.

아시다시피 요즘 추세는 모놀리식으로 하나의 큰 프로젝트를 유지보수하는 것이 아닌 모듈로써 구성된 어떠한 집합체로 큰 프로젝트를 구성하는 것이 트렌드화 되어있다.

본인도 사실은 "마이크로 서비스에 정확히 알지 못하고 그렇게 구현하는 것이 좋을 것이다" 라고만 인지하고, 시간에 쫒겨 실행에 옮기지 않았다. (사실 모놀리식에서 마이크로서비스로 이전하는 과정이 매우 힘들기 때문에 안하는 것이 더 크다.)

그래서 이번에 마이크로 서비스가 원하는 것이 무엇이고 이러한 과정이 왜 나오게 되었는지에 대한 간략한 이론을 살펴보기 위하여 이 책을 선정하여 서평 리뷰를 진행하게 되었다.

 

 

처음 책을 받았을 때 얇아서 생각보다 읽기 수월하였다. 약간 마이크로 서비스에 관심이 있는 사람이라면 잘 읽힐 것이다.

마이크로 서비스는 기존의 모놀리식 서비스와는 다르게 각각의 도메인들이 하나의 프로젝트에 있지 않고 별개의 프로젝트로 쪼개어져 서로간의 통신하여 이루어지는 프로젝트 구조를 의미한다. 이 책은 마이크로 서비스에 하나부터 열까지 다 알려주지 않는다. 또한 예제 또한 이 얇은 책에 많이 넣기에는 매우 한정적이다. 따라서 책 구조 전체가 마이크로 서비스가 무엇인지, 마이크로 서비스를 운영하기 위해서 어떠한 점을 유의해야 하는지 같은 정보들이 주를 이룬다.

물론 예제코드가 완전히 없는 것은 아니고 아주 간단하게 AWS에 마이크로 서비스를 구축하기 위한 코드 블럭이 존재한다.

 

 

마이크로 서비스라는 개념을 알지 못하는 사람도 기존의 마이크로 서비스로 구현된 프로젝트를 맡아서 수행하지 않은 사람이라면 모놀리식과 비교하여 마이크로 서비스가 어떠한 구조인지 알아갈 수 있게 해준다.

 

 

기본적으로 마이크로 서비스는 도메인(모듈)간의 통신을 이루어내어 큰 프로젝트를 구성하게 된다. 이러한 것들을 도표로  잘 설명해주고 있어 이해하기 좋다.

 

 

마이크로 서비스는 어떻게 구현이 되어야 하는지, 그리고 어떠한 예제에서 활용될 수 있는지에 대해서 코드는 아니지만 구어체로 설명하여 마이크로 서비스가 이루고자 하는 바가 무엇인지 깨달을 수 있을 것이다.

 

 

이러한 UML은 남에게 프로젝트 구조를 설명할 때 매우 유용하다. 마이크로 서비스는 통신에러, 모듈에러와 같은 상황에 대해서 항상 철저하게 대비를 하여야만 마이크로 서비스의 진가를 누릴 수 있다. 따라서 마이크로 서비스를 운영하게 된다면 위와 같은 UML은 항상 가지고 있어야 할 것이다.

 

 

굉장히 얇은 책이였다. 또한 마이크로 서비스를 잘 알지 못하는 나에게도 마이크로 서비스가 이루고자 하는 바가 무엇인지는 대충 알 수 있게 되었다. 이 책을 읽다보니 모든 서비스가 사실 마이크로 서비스로 운영되는 것은 지나친 리소스 낭비일 것이라 생각한다. 기존의 모놀리식과는 다르게 에러와 같은 상황에 대해서는 에러처리가 카오스 상태가 되버릴 수 있기 때문에 이러한 작업이 매우 큰 비용으로 작용할 것이다. 

마이크로 서비스에 대해서 관심이 있거나 마이크로 서비스로 전환하려고 관심이 있는 사람은 한번쯤 읽어 볼만 할 것이다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

소개

 

마이크로서비스 아키텍처의 개념, 장점, 철학과 구현 방법을 소개하는 책이다.

먼저, 대규모 서비스에서 마이크로서비스를 구현하기 위해서는 어떤 것들이 필요하고,

어떤 철학을 가지며 마이크로서비스 아키텍처를 구상해야하는지 소개한다. (1,2,3,4) 챕터

그리고 책에서 준비한 실습을 통해서 실제 마이크로서비스를 구축해본다.





목차

 

--- 개념 ---

1. 마이크로서비스 아키텍처로의 여정: 간단한 개념, 이 책에서 어떤 내용을 다룰 것인지 소개

2. 마이크로서비스 운영 모델 설계: 팀 구성 방법 및 각 팀의 역할

3. 마이크로 서비스 설계: SEED(S) 프로세스

4. 마이크로서비스의 크기 조정: 서비스 경계( DDD 어떻게 마이크로 서비스의 경계를 나눌 것인가 )

5. 데이터 처리: 데이터 개념, 어떤 데이터를 고려해야하나

 

--- 실습 ---

6. 인프라 파이프라인 구축 : AWS, CI/CD 파이프라인(github action)

7. 마이크로서비스 인프라 구축: 테라폼, AWS, 쿠버네티스

8. 개발자 워크스페이스: 개발 표준과 표준의 이유 설명, 워크스페이스 세팅

9. 마이크로서비스 개발: 프로젝트 구현

10. 마이크로서비스 릴리스: 실제 배포 (마무리)

11. 변경 관리: 변경에 용이한 모델 소개

12. 여정의 끝



 

감상

이 책은 개발자 마인드 셋, 좋은 아키텍처의 개념, 원칙을 먼저 제시하고

그것을 직접 구현하며 경험할 수 있도록 안내하는 책이다.

(난이도는 3/5)

 

감상을 쓰고 있는 필자는

사실 좋은 아키텍처에 대한 개념도 없고, 어떤 신념이나 생각도 딱히 없다.그래서 현재 공부를 하고 있다.

나와 같은 상태일 때 이 책을 접하게 된다면,

 

좋은 아키텍처는 무엇일까 고민해볼 수 있고,

실습을 하면서 아 이렇게 DDD를 실천하고 변화에 대비하는구나 를

조금은 느낄 수 있을것 같다.

 

또 인프라에 대한 경험을 데이터 부터, 호스팅, 자동화, 배포까지 모든 것을 경험할 수 있다는 것도

이 책의 장점이라고 생각한다.

 

인프라 구축을 위한 기술 한가지 한가지를 깊게 배우는 것도 좋지만

이렇게 한 서비스 전체를 구현해 보는것이 현장에 대한 이해도를 훨씬 높일 수 있다고 생각한다.

 

 

 

추천 독자

- 신입 개발자

- 전체 서비스를 가볍게 구축해보고 싶은 개발자

- 마이크로아키텍처(MSA)가 궁금한 사람들



글 작성자: 사용자 DesiProm
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

최신 트렌드 MSA

최근 여러 플렛폼 기업들이 예전 방식 모놀리틱 서비스에서 마이크로 서비스 아키텍쳐 즉, 여러가지 도메인을 분리해서 관리하는 방식의 MSA를 도입하는 추세이다. 그렇다면 모놀리틱에서 왜 마이크로 서비스로 전환해야하는지..? 그리고 뭐 트랜드인건 알겠으나 도대체 왜 이런 아키텍쳐까지 도달했는지에 대해서 궁금하지 않는가?

 

아무래도 주니어 입장에서는 모놀리틱한 서비스를 구성할 일이 꽤 많은 편인데, 마이크로 서비스는 너무 막연하고... 특히 생각해보지도 못한 부분에서 여러가지 이슈를 가지고 있는 서비스 구성이기도하다.

이 책에서는 5개 챕터를 통해서 MSA로의 변환 과정 그리고 고려해야하는 점등을 자세히 작성한다. 

5장까지는 마이크로서비스가 무엇이고, 고려해야할점은 무엇인지에 대해서 설명한다

유용한 마이크로서비스에 대한 소개 그리고 실전 테라폼

이 책에서는 두가지 파트로 나눠볼 수 있을것 같은데, 하나는 마이크로서비스에 대한 소개, 그리고 테라폼과 기타 여러가지 툴을 활용하여 인프라를 개발하는 과정을 예시를 들어서 개발하는 과정을 자세히 작성하고 있다.

어떤식으로 마이크로 서비스를 접근할지에 대해서 방법론 자체도 설명하고 있다.

 

나는 입문자이기도하며, 테라폼에 대해서는 처음 접하는 입장에서 실제로 샘플을 모두 따라해보는 것은 어려웠으나, 그외에의 입문시에 생각해봐야할 점들에 대해서 이야기 들었던 부분은 좋게 느껴졌다.

개인적으로 가장 마음에 드는 부분은 여러 부분중에서도 개인적으로 마음에 들었던 부분은 아래 사진과 같은 데이터 처리에 관련한 파트 5장인데, 이부분이 가장 마음에 들었던 이유는 마이크로 서비스에서 막연하게 들었던 생각중에 가장 막연했던 부분이 데이터 정합성에 관련한 부분들이었다.

모놀리틱이야 데이터를 정합성을 관리하겠으나, 여러가지 도메인을 분리해서 구현했을때 트랜젝션, 정합성과 같은 오류들은 어떤식으로 처리되는 가에 대해서 궁금했었다.

그런 부분들에 대해서 이 책에서는 여러가지 솔루션들을 예시를 들면서 설명하는데, 보는데 꽤 재밌었고 막연하게 정합성과 같은 오류들을 어떤식으로 해결하는지에 대해서 알려줘 확실히 좋았다.

 

 

하지만 실습은 어려웠다.

물론 테라폼을 배웠거나 이미 IaaS나 인프라를 관리하는 사람입장에서 TerraForm과 같은 툴을 이해하거나 쿠버네티스와 같은 여러가지 툴을 다루는 것이 어렵지 않게 느껴질수 있지만, 아직 백엔드 개발을 하고 있는 주니어(응애) 개발자로써는 테라폼까지 실습을 하고, 이해하는 것은 조금 어려운 일이 아니었나 싶다. ㅠㅠ

물론, 테라폼과 쿠버네티스의 기본 선수 지식이 있으면 따라하기만 해도 괜찮을 정도로 여러가지 지식들이 있으므로 크게 문제가 없어보였지만... 적어도 진짜 초심자의 입장에서는 실습마저도 어려워보이는 그리고 선수과정이 꽤 필요한 책이었기도 했다.

 

결론

선수 지식으로 쿠버네티스, 테라폼, 도커와 같은 지식들을 잘 알고 있는 마이크로 서비스에 대해서 관심 있는 사람들 그리고 마이크로 서비스에 대해서 도입을 고민하고 있는 사람들에게 유용한 책이다. 일단 기본적으로 마이크로 서비스로 구현하기 위해서 팀 자체를 꾸리는 법, 어떤식으로 서비스를 설계할 것인지에 대해서 알아보는 책이라 여러 사람들에게 큰 도움을 줄 수 있는 책으로 느껴진다. 



[책 리뷰] 처음 시작하는 마이크로서비스

image-20210922153220638

현재 여러 기업에서는 MSA를 차츰차츰 적용하려는 모양새를 보이고 있다. 당연스럽게도 DevOps나 인프라관련 규모도 커지고 있다. 이제는 백엔드, 프론트 개발자도 결국 인프라를 알아나가야 하는것이 자연스러워졌다.

개인적으로 MSA를 들어보기만 했지 실제로 개발에 활용해 보지 못했던 나는 해당 책을 통해 기본부터 차근차근 알아갈 수 있을까 싶어 신청하게되었다.

개인적으로 백엔드지만 DevOps에도 굉장히 관심이 많았던 터라 개인적으로 즐겁게 읽었던 책 중 하나였다.

해당 책은 DockerRedisGithub ActionsTerraformAWS쿠버네티스 등을 사용하여 진행해나간다.

크게 설계, 구현, 운영, 관리로 나누어 진행이 된다.

설계 챕터에서는 기존 모놀리식 서비스와 마이크로 서비스에 대한 개념과 장단점으로 서문을 연다. 이후 MSA를 어떻게 설계하는지에 대한 내용이 주를 이룬다.

구현 챕터에서는 설계단계에서 알려준 내용을 바탕으로 인프라를 구축하는 방식을 알려준다. 위에 열거한 여러가지 기술들을 통해 간단한 항공편 예약 서비스를 MSA를 통해 구축할 수 있도록 한다.

운영 챕터에서는 쿠버네티스를 이용하여 구현챕터에서 구축한 항공편 예약 서비스를 배포하는 과정이 이루어진다.

관리 챕터에서는 운영 챕터에서 배포한 해당 서비스를 배포하는 패턴과 어떤 식으로 운영해야 할 것인지에 대한 내용이 주이다.

역시나 아무래도 MSA와 인프라를 다루는 책이다 보니 입문자에게는 조금 어렵지 않을까 싶다.

아무래도 AWS나 도커등의 기술들은 해당 책으로는 이해가 어려워 추가적인 공부가 필요할 것이다.

해당 서비스에 대해 기초 지식이 있는 사람에게 추천해 줄 수 있을 것 같다. 개인적으로는 재밌게 읽은 책이었다.

별점 : ⭐️⭐️⭐️⭐️

한줄평 : 어느정도 인프라에 대한 기초지식을 가진 개발자에게 MSA 개념을 한스푼 먹여줄 수 있는 책.

이런분께 추천 :

  1. 인프라에 대한 기초 지식이 있는 분.
  2. 기존 모놀로식의 인프라 관리 방식을 벗어나 MSA로 한발짝 딛어보고 싶으신 분

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

처음 시작하는 마이크로서비스를 읽고

 

 

 



마이크로서비스... 
여러 곳에서 주워들은 기억이 드는 단어이다. 
쿠버네티스 책이나 클라우드 책에서 간혹 나오는 단어였고, 최근 인터넷에서도 심심치않게 나오는 단어

마이크로 서비스란? 간단한게 말하자면 기존에 하나로 뭉쳐져 있던 서비스들을 각 역할마다 분리하여 작게 나누어 서비스하는 것을 말한다 . 이렇게 나눔으로서 더 높은 확장성을 가질 수 있고 하나가 고장나더라도 전체가 아닌 그 부분만 수정하면 되기에 보다 높은 가용성을 보장하는 서비스이다. 

'처음 시작하는 마이크로서비스' 책은 이렇게 듣기만한 마이크로 서비스를 책에 나온 예제를 중심으로 실습을 해보며 어떤 개념인가 익힐 수 있도록 구성되어 있다. 본 책에서는 항공 예약 시스템 구축을 통해 마이크로 서비스의 개념을 설명해 주고 있는데 단지 책을 따라하는 것 만으로 클라우드,K8S,Github 등등 관심있는 기술들을 사용할 수 있는 것에서 흥미가 간다.

이 책의  자세함에 있다.
기본적인 환경 설정이나 지금 만들고 있는 서비스의 구조 등을 책에 있는 그림을 통해서 확인 할 수 있고, 풍부한 소스코드를 통해 하나하나 실습하다보면 차근차근 완성되어 있는 결과물들을 보면 뿌듯함을 느낄 수 있을 것이다. 

 

 

 

 

 



다만... 아쉬운 점은 용어의 생소함이다. 아직 배경지식이 모자라서 그런지 모르겠지만 모르는 단어가 나오면 검색해보고 다시 보고 검색해보고 책보고 이런 루틴이 반복되기에 초보자 보다는 어느 정도 업무 지식이 있는 분들이 보는게 좋을 거 같다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.




이 책은 마이크로서비스에 대해 궁금한 사람이라면 한번쯤은 읽어볼만 한 책이다. 

개발자라면 누구나 마이크로서비스에 대해 들어봤을법한데, 이 책은 그 용어가 어떠한 의미를 담고 있는지 시작부터 끝까지 잘 설명해준다.

팀 설계, DDD 설계, 다양한 기술등을 통한 자세한 예시등을 통해 우리 도메인에는 어떠한 기술을 써볼 수 있을지를 생각해볼 수 있다. 다만, 데브옵스를 경험해보지 않은 개발자에게는 예제가 어렵게 느껴질 수 있기에 예제를 따라가기에는 높은 난이도가 요구되는 것 같다.

그래도 마이크로 서비스에 대한 감을 찾거나 용어가 주는 의미를 찾아보기에는 더없이 설명이 잘되어 있는 책인 것 같다.

만약 마이크로서비스에 대해 궁금해서 이 책을 보게 되었다면 한 번 읽어보는 것을 추천한다!

이 책은 마이크로서비스에 대한 이론적 지식과 실습 프로젝트를 통해서 실제 마이크로서비스를 구현해볼수 있는 내용을 담고 있다. 두가지의 서비스를 각각의 다른 언어로 설계부터 개발, 릴리즈, 배포까지 프로젝트의 한 사이클을 담아놨다. 저자가 말했듯이 실제 production 에 반영을 하기에는 부족하긴 하지만 마이크로서비스를 경험해 보기에는 충분한 예제이다. 

마이크로 서비스는 굉장히 주목받고 있는 아키텍쳐이긴 하지만 실제 구현하기는 쉽지 않다. 우선 무엇보다도 뭐부터 시작해야할지가 가늠이 안간다. 모놀리스 아키텍쳐에 익숙한 개발자에게는 어느정도를 기능단위로 나눠야 되는지 구분하는게 가장 어렵게 느껴진다. 

이 책에서도 서비스 경계 설정에 대해서 다음과 같은 고려사항들을 언급해 놓았다. 

- 느슨한 결합
  - 서비스를 변경해도 다른 서비스에 영향을 주지 않는다.
  - 독립적인 배포가 가능해진다.
- 높은 응집력
  - 하나의 기능만 담당하기 때문에 응집력이 높아진다. 
- 비즈니스 기능과 연결
- 도메인 주도 설계
  - 테이블 기준이 아닌 업무 도메인 기준으로 설계가 되어야 한다.

또 한가지 중요한 요소중 하나는 데이터 이다. 

마이크로서비스의 데이터 공유
- 물리적인 데이터베이스 클러스터 공유는 가능하다
- 여러개의 마이크로서비스가 동일한 논리적인 테이블 공간과 데이터를 수정하지 않아야 한다.


여기에서 물리적인 데이터베이스 클러스터 공유가 가능하다는 말은 예를들어 같은 데이터베이스를 사용하되 스키마는 달라야 한다정도로 이해를 했다. 

위에 말한 2가지는 내가 이 책을 읽으면서 마이크로서비스에 관련된 개념중 중요하다고 생각했던 것들이다. 이 외에도 다른 의미적으로 중요한 개념들이 많이 나오니 그 부분들은 정독을 하는게 좋다. 

그리고 이 책에서는 프로젝트코드들이 있다. 환경설정부터 시작해서 필요한 리소스나 툴들의 사용법들이 차례차레 나온다. 사용되는 툴의 종류도 다양하다. 우선 클라우드는 AWS 를 사용하고 Docker, Terraform, Github, kubernetes, Node.js, Argo CD 등이 있다. 

책에 그림이나 코드들이 다 나와있긴 하지만 처음부터 끝까지 따라하기는 쉽지는 않을것 같다. 그래서 책에 나온 툴들에 대해서 자세히 알 필요는 없지만 기본적인 기능을 조금이라도 알고 있다면 프로젝트를 진행하는데 더 수월할 것이다. 

여러번 말했지만 마이크로서비스로 가는 길은 쉽지 않은 길이다. 하지만 이론부터 차근차근, 작은것부터 점진적으로 변화를 시켜나간다면 실패를 줄여 나갈수 있을 것이다. 그리고 이책을 통해서 전체적인 시스템이 어떻게 구성되는지, 그리고 무엇이 필요한지 기본적인 지식을 습득한다면 큰도움이 될것이다.

 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

이 도서는 마이크로서비스에 대한 지식이 아예 없거나, 얕은 사람에게 전체적인 그림을 제시하고 밑그림을 그리기에 도움을 주는 도서이다. 이 도서에 등장하는 단어, 용어들이 개발 입문자분들께 쉽다고 말하기에는 어렵겠지만... 자신만의 작은 인프라 구성을 해나가며, 실무에서 어떻게 이를 설계해나가는지에 대해 엿보고 싶은 사람들에게 적극 추천한다. 'ㅅ')/

 

마이크로서비스에 대한 정의, 이를 구축/사용하는 이유, 도입시 직면하는 장애물. 마이크로서비스 운영을 위한 팀 구축시, 그 규모와 역량에 대한 설명과 팀 간 협업을 지원하기 위한 팀 정의와 설계 시스템, 마이크로서비스와 API의 공통점과 차이점에 대한 기본 지식 등... 소규모 회사의 인프라 구성을 위해 충분히 도움이 될만한 자료라 확신한다.

 

'마이크로서비스 설계 시스템(Seven Essential Evolutions of Design for Services)'을 통해 마이크로서비스 구현에 필요한 프로세스를 밟아나가는데, 디테일하지는 않더라도 이러한 설계 프로세스 소개는 서비스 아키텍트와 관련자에게 한번쯤 생각해볼만한 건더기를 던져주고 있다.

 

개인적으로는, 생소했던 JTBD(잡 스토리) 작성 방법에 대한 예시, 이를 통한 액션 및 쿼리 도출 방법. 서비스 생산자와 소비자(API 클라이언트 개발자) 간의 이해를 돕기 위한, 그리고 액션에 대한 RESTful 엔드포인트 설계를 위한 OAS(Open API Specification) 작성 방법 예시가 기억에 남았다.

 

도서의 후반부에서는 항공 관리 소프트웨어 제품 제작에 대한 샘플 마이크로서비스 코드 작성을 진행하는데, 도서의 중반부 6, 7장에 등장하는 테라폼을 이용한 인프라 파이프라인 구축, 마이크로서비스 인프라 구축과 더불어 개인적으로 시간을 내어 반드시 실습해봐야 할 것 같다. 현재의 내게는 두고두고 참고해야 할만한 가치 있는 도서로 생각된다.

 

.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

처음 시작하는 마이크로서비스라는 책 하나로 MSA에 대하여 폭넓게 생각하게 됩니다.

구성 된 목차를 따라가다 보면 MSA에 대하여 단순히 기술적인 측면만이 아닌 실제 비용 조직 데이터 인프라까지 실제적인 문제들이 다루어지고 있습니다.

 

-목차-

마이크로서비스란 무엇인가?

조정 비용 절감

팀과 사람이 중요한 이유, 팀 규모 역량

마이크로 서비스 설계 SEED(S) 프로세스

마이크로서비스의 크기 조정 : 서비스 경계

데이터 처리

인파라

개발자 워크스페이스

마이크로서비스 개발과 릴리스 변경 관리

2021-09-22-15-49-23-044.jpg

책 소개내용으로 이책이 어떤 책인지 명확히 확인이 됩니다설명입니다.

20210922_162642.gif

더 나은 더 빠른 더 넓은

-효과적이고 명확한 엔드 투 엔드 마이크로서비스 시스템 설계 연습

-팀 정의 ,팀, 책임, 공동 작업을 위한 가이드라인

-대용량 애플리케이션을 마이크로서비스로 분할하는 방법

-인프라 변경을 위한 간단하면서도 강력한 CI/CD 파이프라인 구축
-AWS에서 작동하는 마이크로서비스 애플리케이션 구축

2021-09-22-15-49-58-000.jpg

 

2021-09-22-15-50-22-075.jpg

마이크로서비스가 보유한 9가지 특성

-서비스를 통한 컴포넌트화
-비즈니스 기능 중심의 조직 구성
-거버넌스 분산
-인프라 자동화
-프로젝트가 아닌 제품 중심
-스마트 엔드포인트

-덤 파이프
-장애 대응 설계
-진화하는 설계

2021-09-22-15-56-01-406.jpg

 

2021-09-22-15-50-58-677.jpg

스테이징 배포

2021-09-22-15-52-18-713.jpg

목차Screenshot_20210922-141007_24 .png

 

Screenshot_20210922-141012_24 .png

Screenshot_20210922-141018_24 .png

 

Screenshot_20210922-141024_24 .png

 

Screenshot_20210922-141028_24 .png

 

Screenshot_20210922-141032_24 .png

마이크로 서비스

-새로운 스타일의 소프트웨어 아키텍처

-마이크로서비스로 구축 된 애플리케이션
-작고 독립적인 구성용가, 여러개의 독립적인 구성요소가 함께 작동
이점 : 소프트웨어 변경 작업을 빠르고 안전하게 수행
비즈니스 민첩성 : 비즈니스 조직에 더 나은 성과
지속적인 반속 프로세스로 최적화

 

단일 애플리케이션은 작은 규모의 서비스 조합으로 나눠 개발
-비즈니스 기능 중심으로 구축
-완전 자동화 된 배포기계를 통해 독립적으로 배포

조정비용 절감
-소프트웨어 제공 속도 햐상
-기술부채=신속하게 구축, 제품을 빠르게

-안정성과 속도
-의존성, 주기적 작업
조정보다는 서비스 개발에 집중, 조정의 최소화
도입된 변경사항의 영향도 예측
마이크로서비스팀 템플릿

서비스 설계를 위한 7가지 본질적 진화 ( Seven Essential Evolutions of Design for Services ) 또는 SEED라는 마이크로 서비스 아키텍트 구축 방식을 기준으로 어떻게 마이크로 서비스 아키텍트를 구축해야 하는지 설명하는 책입니다.

상당히 짜임새 있는 책이더군요. 마이크로서비스에 대한 이론적인 토대부터, 실제 어떤 툴을 사용해서 구축해나가야 하는지 설명하고 있네요. 만약 마이크로서비스 아키텍트를 구축해야 하는 사람이라면, 이 책이 초반에 큰 도움이 될 듯합니다.

마이크로 서비스라는 용어가 세상에 나온건 벌써 10년이 지나고 있습니다. 이 책을 읽으면서 새삼 그렇게 오랜 시간이 지났나 하는 생각을 했을 정도로... 아직까지 생소한 개념이기도 하네요.

마이크로 서비스에 대해 마틴 파울러는 "단일 애플리케이션을 작은 규모의 서비스 조합으로 나눠 개발하는 방식"이라고 설명하고 있습니다. 각 서비스는 가벼운 매커니즘으로 통신하고, 비즈니스 기능을 중심으로 구축하는 게 특징인데요. 우리는 "비즈니스 기능 중심"이라는 부분에 주목해야 합니다. "콘웨이의 법칙"에서 나온 이야기 이거든요.

프레더릭 브룩스는 <맨먼스 미신>에서 "조직은 그 조직의 커뮤니케이션 구조를 닮은 시스템 구조를 설계한다"는 콘웨이의 논문 내용을 인용했습니다. 다시 말해서 비즈니스에 유리하게 조직구조가 변화되고 그 조직의 요구를 따르는 소프트웨어로 진화하다 보면, 자연스럽게 소프트웨어 아키텍트는 조직의 구조와 비슷해 지는 겁니다. 놀라운 통찰력을 가진 "콘웨이의 법칙"은 현재 마이크로서비스 아키텍트가 왜 중요한지를 이해할 수 있게 해줍니다.

현재 비즈니스 환경이 인터넷이라는 정보 매개체 때문에 엄청난 속도로 변화하고 있거든요. 따라서, 생존력있는 회사라면, 지속적인 변화가 가능한 비즈니스 조직구조를 선호하게 될 겁니다. 그러면 소프트웨어 아키텍처도 이를 따르게 됩니다. 지속적인 변화를 수용하는 소프트웨어 아키텍트 말이죠. 예나 지금이나, 변화를 수용하기 쉽게 만드는 방법은 단 한가지 입니다. 나누는 거죠. 좀 유식한 말로 "관심 분리 (seperation of concerns )"입니다. 특히 "콘웨이의 법칙"을 염두에 둔다면 나누는 기준은 비즈니스 요구가 되겠죠.

이 아이디어는 상당히 중요한 의미를 갖습니다. 우리 속담에 "모로 가도 서울만 가면 된다"라는 말이 있는데요. 사실 비즈니스 환경에서 생존하려면, 가장 빠르게 안정적인 방법으로 "서울에 가야"합니다. 다시말해서, 방법과 방향도 중요하다는 거죠. 만약 잘못된 방향과 방법으로 서울에 가게 되면, 다른 경쟁자가 먼저 서울에 도착해서 시장을 선점할 테니까요.

서비스 아키텍트를 구축하는데 비즈니스 요구를 기준을 한다는 개념은 그 때문에 회사의 사활과도 관련 있을 수 있습니다.

하지만 문제가 있습니다. 전체 그림을 보기 보다 기술적 측면만 염두에 두고 마이크로 서비스 아키텍트를 바라보는 시각이 있다는 거죠. 그런 사람들 중 일부는 열심히 마이크로 서비스 아키텍트를 도입하고 운영해본 경험이 있는 사람도 있을 것이고, 또 다른 부류는 단기간에 빠르게 구축하려고 시도하다가 실패한 경우도 있을 것입니다.

이 책의 저자는 마이크로 서비스 아키텍트를 실패하는 원인은 "올바르지 못한 실천"이라고 조언하고 있습니다. 또한 "하룻밤 사이에 마법" 같이 만들 수 있는 그런 아키텍트도 아니라고 이야기 하죠. 저도 이러한 견해에 상당히 공감합니다. 마이크로 서비스 아키텍트를 구축하는 작업이 아니더라도, 소프트웨어 분야에서 제기되는 다양한 문제들은 결국 "왜" 그걸 해야 하는지 이해하지 못한 상황에서 표면적인 기술만을 빠르게 습득하고 사용해보는 결과가 아닐까 싶습니다.

그러한 면에서 이 책은 "왜" 마이크로 서비스 아키텍트가 필요하고 "무엇을", "어떻게" 사용해서 구축해야 하는지 설명하는 충실한 책이 아닌가 싶습니다.

PS. 재미있는 오타가 하나 눈에 띄이더군요. 브룩스가 "은빛 총알은 없다"라는 논문을 발표한 것이 1886년이라고 씌어 있는데요. 물론 1986년이 맞습니다. 브룩스는 "은 총알은 없다"라는 논문을 발표하고 "맨먼스 미신" 출간 20주년 기념판에 포함시켰습니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

처음 시작하는 마이크로서비스

책을 읽기 전에

스타트업, 대기업을 가리지 않고 다양한 조직에서 마이크로서비스 아키텍처를 적용하고 있습니다. 자연히 관련 생태계도 커지고, 개발 쪽을 공부한다면 당연히 알고 있어야 하게 되었습니다.

DevOps 엔지니어라는 말이 생소하지 않은 지금입니다. 본인이 다루지 않더라도 개발업계 전반에서 널리 사용하는 기술인 만큼, 깊게 알아보고 싶어서 이 책을 골랐습니다.

그럼 모놀리식 아키텍처와 비교되곤 하는 마이크로서비스 아키텍처란 무엇일까요? 책을 읽기 전에 먼저 찾아보았습니다.

모놀리식 vs 마이크로서비스

모놀리식

  • 장점

    • 단일 코드 베이스로 서비스의 환경이 복잡하지 않다.

    • end-to-end 테스트가 용이하다

      • end-to-end(E2E) 테스트: 개발물을 사용자 관점에서 테스트 하는 방법. 텍스트가 제대로 출력되는지, 버튼을 클릭하면 올바르게 동작을 수행하는지 등을 테스트한다.

  • 단점

    • 한 프로젝트의 덩치가 너무 커져서 어플리케이션 구동, 빌드, 배포 시간이 길어진다.

    • 작은 수정사항을 반영하더라도 전체를 다시 빌드하고 배포해야 한다.

    • 유지보수가 힘들다.

    • 전체적으로 이어져 있기 때문에 기능별로 알맞는 기술, 언어, 프레임워크를 선택하기가 까다롭다.

    • 일부의 오류가 전체에 영향을 미친다.

마이크로서비스

  • 장점

    • 작업을 서비스 단위로 나누어 할 수 있어 개발자가 해당 부분을 온전히 이해할 수 있다.

    • 수정사항에 연관된 서비스만 빠르게 빌드, 배포가 가능하다.

    • 해당 기능에 적절한 기술, 언어, 프레임워크를 선택할 수 있다.

    • 일부의 오류가 전체에 영향을 미치지 않는다.

  • 단점

    • 관리가 힘들다. 작은 서비스 여러개로 분산되어 있기에 모니터링이 힘들다.

    • 서로를 호출하여 전체 서비스가 이루어지는 방식이기 대문에 모놀리식 아키텍처보다 개발이 까다롭다.

    • 마이크로서비스들끼리 계속 통신하다 보니 통신관련 오류가 잦을 수 있다.

    • 테스트가 불편하다. 간단한 E2E 테스트를 위해 여러 개의 마이크로서비스를 구동시켜야 한다.

마이크로서비스란 무엇인가?

마이크로서비스의 공식적인 정의는 없지만, 한 세미나에서는 아래와 같이 설명했습니다.

 

마이크로서비스는 단일 애플리케이션을 작은 규모의 서비스 조합으로 나눠 개발하는 방식이다. 각 서비스는 자체 프로세스로 실행되며 가벼운 메커니즘으로 통신한다. 비즈니스 기능을 중심으로 구축되며 완전 자동화된 배포 기계를 통해 독립적으로 배포할 수 있다.

 

반면 Microservice Architecture(O'Reilly, 2016)에서는 다음과 같이 정의합니다.

 

마이크로서비스는 제한된 범위의 독립적으로 배포 가능한 구성 요소이며 메시지 기반 통신으로 상호 운용성을 지원한다. 마이크로서비스 아키텍처는 높은 수준으로 자동화된 엔지니어링 스타일이며 기능별 마이크로서비스로 구성된 진화할 수 있는 소프트웨어 시스템이다.

 

그 외에도 다양한 정의가 있습니다. 대체로 유사하지만 각 정의마다 강조하는 부분이 조금씩 다르며, 따라서 교과서적인 마이크로서비스 시스템을 잘 구축했는지에 대한 판단은 어렵습니다.

이 책에서 소개하는 마이크로서비스라는 기술의 이름은 다음과 같은 세 가지 일반적인 설계 특성이 있는 소프트웨어 아키텍처 스타일을 의미합니다.

  1. 애플리케이션 아키텍처는 주로 네트워크에서 호출할 수 있는 서비스로 구성된다.

  2. 서비스의 크기(또는 경계)는 중요한 설계 요소다. 설계 요소는 런타임, 설계 시간, 사람을 포함한다.

  3. 목표를 달성하기 위해 소프트웨어 시스템, 조직, 일하는 방식을 전체적으로 최적화한다.

실습으로 MSA 입문하기

비대면으로 협업하는 경우도 많고, git과 같은 형상관리 도구가 일반화됨에 따라 개발자들은 각자가 담당하는 서비스를 온전히 파악하고 다른 서비스와 소통하는 역량이 중요해지고 있습니다.

개인적으로도 AWS와 Docker를 프로젝트에 적용해 보며 MSA의 장점을 느꼈습니다. 다만 MSA가 제공하는 이점을 얻으려면 많은 선행 작업이 필요합니다. Docker를 사용한다면 배포 모델은 무엇으로 하고, 개발과 릴리즈의 주기는 어떻게 할 것인지 등, 다양한 복잡성 때문에 MSA의 설계는 어렵습니다. 기능을 컴포넌트화해서 구현하다 보면 '이게 후에 기술 부채가 되지 않을까?' '이렇게 구조를 짜면 나중에 더 불편해져서 갈아엎게 되지는 않으려나' 걱정하는 것처럼, 광범위하게 퍼져 있는 기술에 대한 지식과 적용을 직접 하나하나 실습하면서 정리하는 것은 쉽지 않은 일입니다. 이 문제를 어떻게 해결할 수 있을까요?

그런 면에서 어디서 들어본 것들을 종합선물 실습세트의 교보재로 사용하는 이 책은 좋은 가이드입니다. 예제의 난이도도 높지 않고, 어렵게만 느껴지는 다양한 기술들을 차근차근 따라하며 입문할 수 있습니다. 새로운 기술을 적용할 때마다 겪게 되는 수많은 시행착오와 예외처리, 오류의 수를 줄이는 방법이 될 것입니다.

볼륨이 제법 크기 때문에 이 글에는 실습 내용이 포함되어 있지 않습니다. 대신 깃허브 Action으로 배포했던 저의 간단한 Vue 프로젝트와, 해당 책의 예제에서 적용해 볼 수 있는 기술에 대해 정리해 두겠습니다.

MSA의 구현이 막막하거나, 아래 기술들을 실제로 사용해 보고 싶으셨던 분께 이 책이 좋은 입문서가 될 것이라고 생각합니다.

 

예제를 실습하기 위해 필요한 기술

  • 도커

  • 레디스

  • MySQL

  • 깃허브

  • 깃허브 액션

  • 테라폼

  • AWS

  • kubectl

  • 헬름

  • Argo CD

깃허브 액션 실습 repository

[Github Action - Vue](https://github.com/Gomyo/vue-devops)

 

본 글에 대한 오류 지적은 언제나 환영입니다. 읽어주셔서 감사합니다.

 

 

이번 읽은 책은 "처음 시작하는 마이크로서비스"입니다.

 

 

대상독자

이 책을 다 읽고 나서 생각 해봤을 때 작은 조직에서 마이크로서비스를 처음 개발해보고 싶은 사람들 중 개발자 직군에 있는분이 가장 적당해보였습니다.

 

난이도

책 자체의 난이도는 어렵지 않습니다.

중소기업에서 일 하고 있는 저의 입장에서 생각 해보면,

공부 해야 하는 분야가 너무 많습니다.

책 자체에서 요구 하는 기술은 도커, 레디스, MySQL, Git, 깃허브액션, 테라폼, AWS, 쿠버네티스, 헬름, Argo CD가 있고

위 기술들을 이해 하고 사용 하려면 컴퓨터공학에서 배우는 기술들까지 추가로 공부 해야 하기 때문에 짧은 시간에 능숙하게 다룬다는 것은 불가능에 가깝습니다.

기술 난위도와 더불어 많은 경험이 필요합니다.

 

내용

크게 설계, 구현, 릴리즈, 관리로 구분 하고 있습니다.

 

설계 챕터에서 마이크로서비스를 선택 하여 구축 하였을 때 발생 할 수 있는 문제점과 성공적으로 구현 할 수 있는 방법, 팀구성 방법, MSA 설계 방법, MSA서비스의 사이즈를 조정 하는 방법과 데이터 처리방법 등을 배울 수 있습니다.

 

구현 챕터에서 설계 단계에서 배운것을 바탕으로 인프라 구축 방법을 배울 수 있는데 AWS, 테라폼, 쿠버네티스, Argo CD, 헬름 등과 간단한 항공편 예약 서비스를 MSA로 구현해볼 수 있습니다.

 

릴리즈 챕터에서 쿠버네티스를 이용하여 구현 챕터에서 만들었던 항공편 예약 서비스를 배포해볼 수 있습니다.

 

관리챕터에서 MSA 배포 패턴과 인프라 변경에 대하여 언급하고 있습니다.

 

그 외...

4년전부터 시작해서 1년전 마감을 한 프로젝트에서 처음 마이크로서비스를 흉내를 내봤습니다.

역시 그 여정은 쉽지가 않았습니다.

MSA 관련 기술서적도 그다지 많지도 않아서 해외 도서를 보거나 해외 블로그를 찾아가며 몇번이나 다시 만들기를 반복 해서 성공적으로 마감을 했습니다.

그 당시 프로젝트를 시작 할 때 이 책을 먼저 접했다면 많은 시행착오는 겪지 않았을것 같은 좋은 책입니다.

그리고 다음번 프로젝트에서도 발생 할 수 있는 예외상황을 많이 줄일 수 있을것 같아요.

 

이 책으로 시작 하여 작은 성공부터 계속 하여 큰 프로젝트도 성공 하도록 해봐요.

 

이 책과 더불어 이벤트기반 마이크로 서비스 구축도 함께 보면 더 많은영감을 받을 수 있을거라 생각합니다.

 

 

 

* 이 책은 한빛미디어의 나는 리뷰어다 이벤트를 통해 제공받았습니다

 

 


개인적으로는 입문자에게는 조금 어려운 서적이 아닐까 생각합니다.

어느 정도 관련 서비스에 대한 이해가 있는 사람들이 읽으면 좋을 것 같습니다.

[장점]

- MSA에 대한 개념 설명

- MSA에 필수 지식에 대한 설명

- 실제 적용 가능한 내용 포함

- 다양한 예제

- 다양한 팁을 제공

 



[주요 내용]

- 효과적이고 명확한 엔드 투 엔드 마이크로서비스 시스템 설계 연습

- 팀 정의 및 팀 책임 및 공동 작업을 위한 가이드라인

- 대용량 애플리케이션을 마이크로서비스로 분할하는 방법

- 인프라 변경을 위한 간단하면서도 강력한 CI/CD 파이프라인 구축

- AWS에서 작동하는 마이크로서비스 애플리케이션 구축



[대상독자]

- 마이크로서비스로 시스템을 구현을 간단히 알고 싶은 개발자

- 마이크로서비스 아키텍처를 구축하는 아키텍트나 엔지니어


[서평]

마이크로서비스는 거대한 애플리케이션을 느슨하게 결합된 마이크로한 서비스로 구조화하는 서비스 지향 아키텍처 스타일의 소프트웨어 개발 기법입니다.

마이크로 서비스의 장점으로는 민첩하고 쉬운 배포 및 업데이트, 높은 확장성, 뛰어난 복구 능력, 편리한 액세스, 향상된 개방성을 들수 있습니다. 

이 책에서는 성공적인 마이크로서비스를 구축하기 위해 필요한 기술인 아마존 AWS, kubernetes, Terraform, github등의 기술을 배울수 있습니다.


먼저 이책을 읽으신 분들의 추천사를 보면 “마이크로서비스 구축에 대한 실용적인 가이드를 제공합니다.”, “쿠버네티스를 이용해 마이크로서비스를 구축할 수 있게 해주는 데브옵스 가이드입니다.”, “마이크로서비스의 기술적인 구축만이 아닌, 그것을 활용하는 조직 속의 사람의 관점에서 필요한 것이 무엇인지를 가르쳐줍니다.”


그림을 통한 이해하기 쉬운 설명


실제 서비스 이용 사례를 담은 구성

지금 마이크로서비스를 구축하는 방법을 원하시면 처음 시작하는 마이크로서비스를 추천 합니다.



 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

<이 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원 받아 작성되었습니다>

 

책소개


더 나은, 더 빠른, 더 넓은 데이터 관리의 시작

 

빠르게 변화하는 대규모 데이터를 기존의 낡은 아키텍처로 관리하기란 쉽지 않다. 변경 가능성과 확장성을 가진 마이크로서비스 아키텍처는 이 어려움을 극복할 새로운 대안이다. 이 책은 단순히 마이크로서비스 아키텍처의 시스템적인 구축만을 다루지 않는다. 팀 설계, 도메인 설계, 인프라, 엔지니어링 및 릴리스를 포괄하는 실용적이고 규범적인 모델로 통합적인 마이크로서비스 아키텍처 구축에 대한 지식을 전한다.

 

 

대상 독자

 

이 책의 대상은 마이크로서비스로 시스템을 구현하는 사람들이다. 마이크로서비스 시스템의 원리와 패턴을 몇 가지 언급하지만, 초점은 실용적인 설계와 엔지니어링에 있다. 마이크로서비스 아키텍처를 구축하는 아키텍트나 엔지니어에게 이 책을 권하고 싶다.

그러나 이 책은 마이크로서비스 구현을 간단히 알아보고 싶은 독자에게도 유용하다. 여러분의 역할이 무엇이든 간에 마이크로서비스 시스템을 구축하는 작업을 이해하고 싶다면 이 책이 도움이 될 것이다.

 

 

주요 내용

  • 효과적이고 명확한 엔드 투 엔드 마이크로서비스 시스템 설계 연습 
  • 팀 정의 및 팀 책임 및 공동 작업을 위한 가이드라인 
  • 대용량 애플리케이션을 마이크로서비스로 분할하는 방법 
  • 인프라 변경을 위한 간단하면서도 강력한 CI/CD 파이프라인 구축
  • AWS에서 작동하는 마이크로서비스 애플리케이션 구축

 

리뷰


이번에 리뷰하게 된 책은 '처음 시작하는 마이크로서비스'다. 이 책에서는 마이크로서비스에 대한 실용적인 설계와 엔지니어링을 다루고 있고 아키텍처를 구축하는 엔지니어에게 추천하는 책이다. O'REILLY 책으로 이번 표지는 푸른귀 벌새라는 학명을 가진 동물을 그림으로 하고 있다. 업무를 진행할 때 마이크로서비스로 아키텍쳐를 구성하고 있기 때문에 책을 읽으면서 많은 부분에 공감도 했고 궁금했던 책 중에 하나였다. 

 

목차는 크게는 

- 마이크로서비스 아키텍처와 설계를 다룬 1장, 2장, 3장, 4장

- 데이터를 다루는 5장

- 파이프라인과 인프라를 구축하는 6장, 7장

- 실제 개발과 릴리즈를 관리하는 8장, 9장, 10장, 11장

- 마무리하는 12장

으로 구성되어있다. 

 

책을 읽다보니 아키텍처와 설계를 다루는 부분에서 마이크로서비스를 도입할 때 중요한 팀에 관한 이야기를 다루는 부분이 조금 신기하게 느껴졌다. 팀을 몇명으로 구성해야하는 지에 대한 내용도 눈이 띄었지만 팀과 사람이 가장 중요한 이유에 대해서 설명하는 부분에서 어떠한 기술보다 사람이 중요한 부분을 짚어주는 것 같아서 새로웠다.

 

좋았던 부분


책을 읽다보면 마이크로서비스를 도입하거나 설계할 때 누구나 한번 쯤 고민해봤을 만한 내용들을 책에 담고 있다는 점이다. 마이크로의 적절한 크기가 어느 정도 일까? 이런 고민들은 MSA를 사용하는 팀이라면 한번 쯤 고민해봤을 고민이라고 생각한다. 나 또한 과연 적절한 크기가 어느정도 일지를 항상 고민한다. 처음 너무 세분화해서 쪼개게 되면 나중에 되돌릴 수 없게 되고 그렇다고 뭉치자니 MSA가 아닌 것 같은 느낌을 받을 때가 많다. 책에서는 이런 고민들에 대해서 생각해보고 답을 찾을 수 있도록 도와준다. 궁금하다면 책을 읽어보면 좋을 것 같다. 

 

또한 마이크로서비스에 관련된 다양한 내용들을 접할 수 있다. MSA에 관련 된 내용 중 DDD(Domain Driven Design) 등에 대한 내용을 접하게 되는 책에서는 이런 부분들도 설명해주고 있다. 자세하게 설명해주는 부분은 아니지만 간단한 개념은 설명해주고 있다. 관련해서는 더 자세하게 공부하기 위해서는 이 책을 읽은 후에 따로 공부해야겠다라는 생각이 들었다.

총평


괜찮은 점

> MSA 도입 시 누구나 고민할 수 있을 법한 내용을 다룸

한번 쯤 고민해볼 수 있는 내용들과 그런 부분에 대한 여러가지 이야기를 담고 있어 책을 통해 다양한 관점에 대해서 배울 수 있었다. 

 

> MSA 구성에 필요한 다양한 프레임워크을 다룸

인프라 도입 부분에 있어서는 MSA를 구성할 때 사용되는 다양한 프레임워크나 인프라 구성요소를 설명하면서 '이렇게도 구성할 수 있고 저렇게도 구성할 수 있고, 다양하게 구성이 가능하구나'라는 생각이 들었고 팀에 맞게 상황에 맞게 구성하는 판단하는 것에 도움을 준다.

 

아쉬운 점

> 예제 코드만 보고는 내용을 이해하기가 쉽지 않음.

예제코드를 모두 설명하는게 아니라 구축을 위한 코드를 담고 있다보니 예제코드만 보고 내용을 세세하게 파악하는 부분은 조금 어렵다는 생각이 들었습니다.

 

평점

> 가격 : 8 / 10

> 디자인 : 8 / 10

> 내용 : 9 / 10

이번에 읽어본 책은 처음 배우는 마이크로서비스 책이다. 기존에는 모놀리식 아키텍쳐라고 해서 속도가 안나오면 단순히 장비를 추가해서 메꾸는 수평적인 확장만 되는 방식을 많이 사용했다. 물론 이 방식을 쓰면 안된다. 이것도 아니다. 이미 수많은 회사들은 모놀리식 아키텍쳐를 수용해서 쓰고있다. 하지만 사용자가 늘어나고 늘어날수록 모놀리식 아키텍쳐의 한계가 나타난다. 사람이 많아서 장비를 늘리고 늘리고 또늘리다간 결국 언젠가 한계가 나타나게 되고, 예를 들어서 로그인쪽 기능이 망가지면 전체가 다운이 되버려 로그인만 안되는게 아니라 모든 기능이 안되게 되버린다. 하지만 마이크로 서비스 아키텍쳐(MSA)는 이 단점들을 모두 커버를 칠 수있다. 우리가 흔히 아는 배달의 민족 앱을 만든 우아한형제들도 모놀리식에서 MSA로 넘어갔다. 이 책에는 마이크로서비스 아키텍쳐의 정의, 모델 설계, SEED 프로세스, 서비스 경계, 데이터 처리, 파이프라인, 인프라 구축, 실제 항공편이나 예약을 예시로 한 설계를 가르쳐준다. MSA를 처음 들어본 사람들이 보기 좋을것같다. 왜냐하면 요즘은 MSA 시장 규모가 점점 커지고 있기 때문에 언젠가는 다 MSA로 바뀔지도 모르기때문이다

한빛미디어에서 아주 재밌는 책이 발간되었다. Microservices Up & Runing 처음 시작하는 마이크로서비스인데 마이크로서비스 초심자를 위해 정말 많은 것을 가득 차린 준비된 밥상 느낌이다. 마이크로서비스 개론부터 쿠버네티스, 헬름, 깃옵스 배포 도구로 Argo CD, 그리고 Infrastructure as Code(IaC) 도구인 테라폼까지. 단숨에 훌훌 넘어간다. 

 

처음 시작하는 마이크로서비스

 

소프트웨어 구축의 결정을 기록하는 아키텍처 결정 기록(Architecture Decision Record:ADR) 작성을 시작으로 마이크로서비스 팀 설계, 팀 토폴로지를 만들기까지 아주 자세하게 다룬다. 또한 마이크로서비스를 구축, 운영하는 데 있어서 아주 중요한 핵심 요소가 책 구석구석에 드러나 있다.

마이크로서비스 소유권 - 각 마이크로서비스는 단일 팀이 소유하며 해당 팀은 마이크로서비스를 설계, 구축, 실행한다. 이 팀은 서비스 수명 동안 마이크로서비스를 담당한다

혹시 여러분의 조직이 마이크로서비스를 진행하고 있다면 생각해보시라. 혹시 팀 외부에서 마이크로서비스를 같이 소유하고 있지는 않은가? 이커머스를 예로 든다면, 결제 파트에서 배송 서비스를 넘나들고 있지는 않은지 생각해보면 좋다. 

책에서 마이크로서비스를 설계하는 방법으로 서비스 설계를 위한 7가지 본질적 진화( Sevent Essential Evolutions of Design for Services:SEED(S) )를 소개한다.

  • 액터 식별
  • 액터가 수행하는 작업 식별
  • 시퀀스 다이어그램을 사용하여 상호작용 패턴 발견
  • JTBD(Jobs To Be Done)와 상호작용 패턴을 기반으로 높은 수준의 작업 및 쿼리 도축
  • 개방형 표준(OpenAPI 규격 또는 GraphQL 스키마)을 사용하여 각 액션 및 쿼리를 스펙으로 설명
  • API 사양에 대한 피드백 받기
  • 마이크로서비스 구현

마이크로서비스는 간 통신에 사용 가능한 방법은 RESTful API, GraphQL, gRPC, 비동기 이벤트 통신이 있는데 이 책은 많은 개발자에게 친근한 RESTful API로 구현된다. 부수적인 설명이 필요 없을 정도로 간단하니까. 비동기 이벤트 통신을 설명하고자 하면 이벤트 큐(짧지만 책에서 다뤄진다)에 대한 설명이 필연적으로 따라오고 gRPC는 Protocol Buffers에 대한 이야기가 풀려야 한다. 이런 관점에서 봤을 때 독자층을 넓게 가져가기 위한 선택으로 볼 수도 있고 책이 더 두꺼워지지 않기를 바랐을지도 모르겠다. 

이 책은 이론만 구구절절 있는 다른 책과는 조금 다르다. 항공편 예약 플랫폼이라는 예제를 마이크로서비스로 구축하는 모든 단계를 다루고 있다. 심지어 테라폼으로 인프라를 구축하는 과정까지 지면을 할애한다. 이는 모놀리스를 마이크로서비스로 마이그레이션 하는 과정과는 또 다른 재미가 있다. 마이그레이션의 경우 기존 시스템에 대한 지원, 데이터베이스 분리 기법, 배포 방식이 주를 이루는 반면, '업 앤 러닝'은 첫 단추부터 마이크로서비스로 가는 방향을 안내한다. 그 과정은 꽤나 흥미진진하다.

마이크로서비스를 구축하면서 가장 가려웠던 부분이 책을 통해 시원하게 긁혔다. 바로 업스트림 마이크로 서비스와 다운스트림 간에 콘텍스트가 변경되는 것을 어떻게 처리하는 것이 이상적인가"였는데, 이 책은 두 가지 방법을 제시해주고 있다. 부패 방지 계층(anti-corruption layer)과 오픈 호스트 서비스(open host service)였다. 결국 하위 호환성 문제를 어떻게 다룰 것인지에 대한 이야기다.

마이크로서비스의 적절한 크기를 정하는데 DDD만큼 강력한 기준은 없다. 하지만 DDD의 방대한 내용을 완전히 수행하려면 많은 지식과 경험이 필요하다 또한 DDD는 팀 활동이기 때문에 DDD에 정통한 소수 개발자를 보유하는 것만으로는 충분하지 않다고 책은 이야기한다(이 책은 DDD에 대한 내용은 다루지 않는다). 이렇게 DDD를 사용할 수 없는 경우에 대안으로 이벤트스토밍을 사용한다. 아래와 같은 단계로 이벤트 스토밍은 진행되는데 아주 흥미진진하다. 

  • 1단계 (~30분) : 도메인 이벤트 검색
  • 2단계 (~45분) : 타임라인 적용
  • 3단계 (~60분) : 역방향 서술 및 명령 식별
  • 4단계 (~30분) : 집합체 / 제한된 콘텍스트 식별
  • 5단계 (~15분) : 경쟁 분석

이 과정을 통해 마이크로서비스의 적절한 크기를 도출해보길 바란다. 많은 개발팀이 처음부터 완벽한 마이크로서비스 구축하려고 하지만 현실적으로 가능하지 않다. 그 경계를 정하는데 어려움이 있기도 하지만 아키텍처는 진화가 필요한 부분이기 때문이다. 성공적인 마이크로서비스 도입 사례의 경우도 마찬가지다. 유명세를 타서 아키텍처가 공개된 시점에는 수백 개의 마이크로서비스가 아주 매끄럽게 굴러가는 것으로 보이지만 처음부터 그런 아키텍처는 아니었다는 걸 명심해야 한다. 

마이크로서비스를 구축할 때 데이터를 저장해야 한다면 필연적으로 트랜잭션을 신경써야 한다. 여기서는 분산 아키텍처에 적합한 사가(saga pattern)를 사용한 분산 트랜잭션을 소개한다. 이어 소개되는 프로젝션(projection)은 이벤트 소싱에서 현재와 같은 특정 시점의 상태를 계싼하는 작업을 나타내는데 이렇게 데이터를 다루는 내용이 아주 흥미롭기 때문에 자연스럽게 몰입된다. 책의 후반부에는 마이크로서비스를 배포하는 방식으로 블루-그린, 카나리, 다중 버전 방식이 소개된다. 셋 다 아주 유명한 패턴이기 때문에 혹시 잘 모르고 있다면 이 책을 통해 익혀보시길 바란다.

 소프트웨어 개발의 고전적인 문제는 오버엔지니어링과 조기 최적화다

마이크로서비스에 변경을 가해야 하는 시점이 온다면 이 문구를 기억하시라. 책에서 충분히 설명되고 있지만 사실 이건 마이크로서비스만 해당하는 이야기는 아니다. 

 

# 마무리

책의 제목은 "처음 시작하는..."이지만 일부 독자에게는 결코 쉬운 책은 아닐 거다. 마이크로서비스의 개념만 설명한다면 그럭저럭 입문하려는 독자에게 충분한 도움이 됐겠지만 앞서 말했듯이 테라폼, 쿠버네티스, 헬름, Argo CD 등 아주 다양한 개념들이 속출한다. MSA를 하겠다면 한번쯤은 튀어나오는게 정상적인 개념이지만 입문서적이라 글쎄... 그럼에도 불구하고 마이크로서비스를 지탱하는 다양한 기술을 맛볼 수 있다는 점에서 나는 합격 점수를 주고 싶다. 특히 다른 책들과 다르고 풍부한 예제를 다루고 있으니까. 이 책을 빠르게 훑어보고 여러 마이크로서비스 아키텍처 책을 만나시길 바란다.

 


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
처음 시작하는 마이크로서비스
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
처음 시작하는 마이크로서비스
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
처음 시작하는 마이크로서비스
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실