이전

리뷰 (10)

한줄평
평점 분포
  • 리뷰 총점10 70%
  • 리뷰 총점8 30%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 0.0
  • 30대 9.0
  • 40대 9.0
  • 50대 9.0

포토/동영상 (1)

리뷰 총점 종이책
처음 시작하는 마이크로서비스
"처음 시작하는 마이크로서비스" 내용보기
이 책은 마이크로서비스에 대해 궁금한 사람이라면 한번쯤은 읽어볼만 한 책이다.  개발자라면 누구나 마이크로서비스에 대해 들어봤을법한데, 이 책은 그 용어가 어떠한 의미를 담고 있는지 시작부터 끝까지 잘 설명해준다. 팀 설계, DDD 설계, 다양한 기술등을 통한 자세한 예시등을 통해 우리 도메인에는 어떠한 기술을 써볼 수 있을지를 생각해볼 수 있다. 다만, 데브옵스를 경험해
"처음 시작하는 마이크로서비스" 내용보기

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

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

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

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

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

d**********k 2021.09.22. 신고 공감 0 댓글 0
리뷰 총점 종이책
현재의 내게 두고두고 참고해야 할만한 가치 있는 도서
"현재의 내게 두고두고 참고해야 할만한 가치 있는 도서" 내용보기
이 도서는 마이크로서비스에 대한 지식이 아예 없거나, 얕은 사람에게 전체적인 그림을 제시하고 밑그림을 그리기에 도움을 주는 도서이다. 이 도서에 등장하는 단어, 용어들이 개발 입문자분들께 쉽다고 말하기에는 어렵겠지만... 자신만의 작은 인프라 구성을 해나가며, 실무에서 어떻게 이를 설계해나가는지에 대해 엿보고 싶은 사람들에게 적극 추천한다. 'ㅅ')/ 마이크로서비스에
"현재의 내게 두고두고 참고해야 할만한 가치 있는 도서" 내용보기

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

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

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

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

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

.

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

 

s********f 2021.09.22. 신고 공감 0 댓글 0
리뷰 총점 종이책
MSA 처음 시작하는 사람들에게
"MSA 처음 시작하는 사람들에게" 내용보기
MSA에 대하여 처음 접할 때 기술적으로 접할 수도 있지만, 전반적인 측면으로 한번 접근하는 것도 필요합니다. 그래서 이번에 나온 처음 시작하는 마이크로 서비스는 어려모로 도움이 됩니다. 마이크로서비스는 분명 새로운 스타일의 소프트웨어 아키텍처로 작고 독립적인 구성요소가 필요한 현재 시점에 유용한 아키텍처이기도 합니다.   책은 AWS, 도커, 테라폼 등으로 구축하는
"MSA 처음 시작하는 사람들에게" 내용보기

MSA에 대하여 처음 접할 때 기술적으로 접할 수도 있지만, 전반적인 측면으로 한번 접근하는 것도 필요합니다. 그래서 이번에 나온 처음 시작하는 마이크로 서비스는 어려모로 도움이 됩니다.

마이크로서비스는 분명 새로운 스타일의 소프트웨어 아키텍처로 작고 독립적인 구성요소가 필요한 현재 시점에 유용한 아키텍처이기도 합니다.

 

책은 AWS, 도커, 테라폼 등으로 구축하는 내용까지 포함되어 있습니다.

더 나은, 더 빠른, 더 넓은 데이터 관리의 시작이라는 소제목이 있지만 변경 가능성과 확장성을 가진 마이크로서비스 아키텍처는 애플리케이션 관점, 인프라 관점에 유용합니다.


마이크로서비스에 대한 정의는 꼭 확인해 봐야 합니다.

새로운 서비스에 대한 대응에 가장 큰 영향도는 분명 개발자 간의 조정의 문제일 겁니다.
그것을 마이크로서비스가 해결해줍니다. 




  출판사 책소개가 이 책을 잘 요약해 줍니다.


 

마이크로서비스의 장점은 소프트웨어 변경 작업을 빠르고 안전하게 수행하는 것입니다.
그것은 바로 비즈니스의 민첩성과 관계있는 사항입니다.

그래서 지속적인 반복 프로세스로 최적화하게 만들어갑니다.

책은 그렇게 최적화할 수 있게 템플릿도 제공합니다.


해당 책은 한빛미딩어에서 나는 리뷰어다 활동으로 책을 받고 작성한 내용입니다.

 

 

k****k 2021.09.22. 신고 공감 0 댓글 0
리뷰 총점 종이책
처음 시작하는 마이크로서비스
"처음 시작하는 마이크로서비스" 내용보기
서비스 설계를 위한 7가지 본질적 진화 ( Seven Essential Evolutions of Design for Services ) 또는 SEED라는 마이크로 서비스 아키텍트 구축 방식을 기준으로 어떻게 마이크로 서비스 아키텍트를 구축해야 하는지 설명하는 책입니다. 상당히 짜임새 있는 책이더군요. 마이크로서비스에 대한 이론적인 토대부터, 실제 어떤 툴을 사용해서 구축해나가야 하는지 설명하고 있네요. 만약
"처음 시작하는 마이크로서비스" 내용보기

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

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

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

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

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

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

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

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

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

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

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

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

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

h*****0 2021.09.22. 신고 공감 0 댓글 0
리뷰 총점 종이책
처음 시작하는 마이크로서비스
"처음 시작하는 마이크로서비스" 내용보기
대상독자 이 책을 다 읽고 나서 생각 해봤을 때 작은 조직에서 마이크로서비스를 처음 개발해보고 싶은 사람들 중 개발자 직군에 있는분이 가장 적당해보였습니다.   난이도 책 자체의 난이도는 어렵지 않습니다. 중소기업에서 일 하고 있는 저의 입장에서 생각 해보면, 공부 해야 하는 분야가 너무 많습니다. 책 자체에서 요구 하는 기술은 도커, 레디스, MySQL, Git, 깃
"처음 시작하는 마이크로서비스" 내용보기

 

 

대상독자

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

 

난이도

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

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

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

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

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

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

 

내용

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

 

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

 

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

 

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

 

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

 

그 외...

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

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

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

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

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

 

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

 

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

 

d****x 2021.09.20. 신고 공감 0 댓글 0
리뷰 총점 종이책
처음 시작하는 마이크로서비스 리뷰
"처음 시작하는 마이크로서비스 리뷰" 내용보기
개인적으로는 입문자에게는 조금 어려운 서적이 아닐까 생각합니다.어느 정도 관련 서비스에 대한 이해가 있는 사람들이 읽으면 좋을 것 같습니다. 특히, AWS, 도커 같은 경우에는 책만으로는 이해가 어려우니 추가적인 공부를 하는 것이 좋습니다. [장점] - MSA에 대한 개념 설명 - MSA에 필수 지식에 대한 설명 - 실제 적용 가능한 내용 포함 - 다양한 예제 - 다양한 팁을 제공
"처음 시작하는 마이크로서비스 리뷰" 내용보기

개인적으로는 입문자에게는 조금 어려운 서적이 아닐까 생각합니다.어느 정도 관련 서비스에 대한 이해가 있는 사람들이 읽으면 좋을 것 같습니다. 특히, AWS, 도커 같은 경우에는 책만으로는 이해가 어려우니 추가적인 공부를 하는 것이 좋습니다.

[장점]

- MSA에 대한 개념 설명

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

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

- 다양한 예제

- 다양한 팁을 제공

h*****m 2021.09.20. 신고 공감 0 댓글 0
리뷰 총점 종이책
처음 시작하는 마이크로서비스 리뷰
"처음 시작하는 마이크로서비스 리뷰" 내용보기
책을 읽기 전에 ?? 스타트업, 대기업을 가리지 않고 다양한 조직에서 마이크로서비스 아키텍처를 적용하고 있습니다. 자연히 관련 생태계도 커지고, 개발 쪽을 공부한다면 당연히 알고 있어야 하게 되었습니다. DevOps 엔지니어라는 말이 생소하지 않은 지금입니다. 본인이 다루지 않더라도 개발업계 전반에서 널리 사용하는 기술인 만큼, 깊게 알아보고 싶어서 이 책을 골랐습니다.
"처음 시작하는 마이크로서비스 리뷰" 내용보기

책을 읽기 전에 ??

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

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)

 

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

c*****2 2021.09.21. 신고 공감 0 댓글 0
리뷰 총점 종이책
처음 시작하는 마이크로서비스
"처음 시작하는 마이크로서비스" 내용보기
클라우드 컴퓨팅은 하나의 시대적 흐름으로 확실하게 뿌리를 내렸다고 생각한다. 국내 IT환경 특히나 기업시장에서는 여전히 온프레미스 방식이 상당수이고 클라우드를 도입하더라도 Private Cloud로 구축하는 경우가 종종있다. 물론 IT기반의 대외서비스가 중심인 기업의 경우는 제외하고 내부시스템의 경우 확실하게 클라우드 도입이 더딘것은 사실이다. 이는 필자가 속한 기업이 국
"처음 시작하는 마이크로서비스" 내용보기

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

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

y*****e 2021.09.24. 신고 공감 0 댓글 0
리뷰 총점 종이책
처음 시작하는 마이크로서비스 - 한빛미디어
"처음 시작하는 마이크로서비스 - 한빛미디어" 내용보기
<이 리뷰는 한빛미디어 '나는 리뷰어다'로 부터 책을 지원 받아 작성되었습니다>   책소개 더 나은, 더 빠른, 더 넓은 데이터 관리의 시작   빠르게 변화하는 대규모 데이터를 기존의 낡은 아키텍처로 관리하기란 쉽지 않다. 변경 가능성과 확장성을 가진 마이크로서비스 아키텍처는 이 어려움을 극복할 새로운 대안이다. 이 책은 단순히 마이크로서비스 아키텍처의 시스템적인
"처음 시작하는 마이크로서비스 - 한빛미디어" 내용보기

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

 

책소개


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

 

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

 

 

대상 독자

 

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

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

 

 

주요 내용

  • 효과적이고 명확한 엔드 투 엔드 마이크로서비스 시스템 설계 연습 
  • 팀 정의 및 팀 책임 및 공동 작업을 위한 가이드라인 
  • 대용량 애플리케이션을 마이크로서비스로 분할하는 방법 
  • 인프라 변경을 위한 간단하면서도 강력한 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

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

한빛미디어에서 아주 재밌는 책이 발간되었다. 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를 하겠다면 한번쯤은 튀어나오는게 정상적인 개념이지만 입문서적이라 글쎄... 그럼에도 불구하고 마이크로서비스를 지탱하는 다양한 기술을 맛볼 수 있다는 점에서 나는 합격 점수를 주고 싶다. 특히 다른 책들과 다르고 풍부한 예제를 다루고 있으니까. 이 책을 빠르게 훑어보고 여러 마이크로서비스 아키텍처 책을 만나시길 바란다.

 


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

w******4 2021.09.05. 신고 공감 0 댓글 0