이전

리뷰 (17)

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

포토/동영상 (2)

리뷰 총점 종이책
번역이 너무 성의 없어요
"번역이 너무 성의 없어요" 내용보기
번역서를 보면서 원서가 궁금해 보기는 모처럼이네요.완벽한 의역은 기대하지 않지만, 그래도 이건 너무 불친절하네요.번역은 우선 원서의 내용을 여러번 읽어서 명확히 파악하고, 의미를 잘 전달하기 위해서 문장을 나누기도 하고, 보통 많이 사용하는 쉬운 단어를 사용하려고 찾아 보고..때로는 주석을 달고, 본인이 문장을 변경할 필요도 있습니다현재 3장을 보고 있는데, 점점더 번역
"번역이 너무 성의 없어요" 내용보기

번역서를 보면서 원서가 궁금해 보기는 모처럼이네요.

완벽한 의역은 기대하지 않지만, 그래도 이건 너무 불친절하네요.


번역은 우선 원서의 내용을 여러번 읽어서 명확히 파악하고, 

의미를 잘 전달하기 위해서 문장을 나누기도 하고, 

보통 많이 사용하는 쉬운 단어를 사용하려고 찾아 보고..

때로는 주석을 달고, 본인이 문장을 변경할 필요도 있습니다


현재 3장을 보고 있는데, 점점더 번역이 성의가 없다고 보이네요.

책을 더 봐야할 지 고민 중이지만,,, 만약 책을 끝까지 보게 되고, 내가 오해를 했다면 

본 상품평을 지우겠습니다.


h****a 2017.07.03. 신고 공감 9 댓글 0
리뷰 총점 종이책
"마이크로서비스 아키텍처 구축" 읽고
""마이크로서비스 아키텍처 구축" 읽고" 내용보기
마이크로서비스 아키텍처는 작년에 처음 접한 것 같다. 요새는 너무 많은 것들이 쏟아져 나오기 때문에 어느 하나 정확하게 개념을 파악하기란 쉽지 않다.그때는 추상적인 관점에서 개념을 익히는 수준의 지식만을 파악했었다. 작은 서비스이며, 기술적인 수평 계층보다는 비즈니스 관점에서의 수직적인 경계로 서비스를 나눈다는 사실과 SOA의 하위 영역이라는 것들이다. 그 외에 간단한
""마이크로서비스 아키텍처 구축" 읽고" 내용보기

마이크로서비스 아키텍처는 작년에 처음 접한 것 같다. 요새는 너무 많은 것들이 쏟아져 나오기 때문에 어느 하나 정확하게 개념을 파악하기란 쉽지 않다.


그때는 추상적인 관점에서 개념을 익히는 수준의 지식만을 파악했었다. 작은 서비스이며, 기술적인 수평 계층보다는 비즈니스 관점에서의 수직적인 경계로 서비스를 나눈다는 사실과 SOA의 하위 영역이라는 것들이다. 그 외에 간단한 패턴 정도만 봤던 기억이 있다.


“마이크로서비스 아키텍처 구축 – Building Microservices”라는 이 책을 선택한 이유는 마이크로서비스에 대해 좀 더 깊이 있는 지식을 얻고 실제적인 구현 방향을 제시 받고 싶어서 였다.


“1장 마이크로서비스” 으로 부터 정리 편인 “12장 종합정리” 이 책은 모두 12장으로 구성되어 있다. 1장과 2장의 경우는 마이크로서비스 정의, 특성, 혜택 및 단점등을 서술하고 있다. 1,2장을 잘 읽어보면, 이 책이 일관성 있으며, 필요한 기술이나 지식을 체계적으로 서술하고 있다는 것을 금방 알 수 있다.


1장의 내용을 간략하게 정리해 보면, 마이크로서비스는 충분히 작아서 더 이상 작아질 수 없는 크기를 가지는 단일책임원칙(SRP)에 입각해야 하며, 시스템 내 다른 서비스와 독립적으로 운영되고 변경할 수 있는 “자율성”이라는 특성을 가져야 한다. 잘 구현한 마이크로서비스 아키텍처는 여러가지 혜택을 얻을 수 있는데, 기술이기종성, 회복성, 확정성, 배포용이성, 조직부합성, 조합성, 대체 가능성을 위한 최적화 등이다. 앞에 이야기한 혜택은 잘 만들어진 구조의 마이크로서비스 시스템일 경우이고 “은총알은 없다”는 유명한 격언을 인용하며 마이크로서비스의 단점에 대해서 이야기하고 있다. 사실 이 단점이란 것이 너무나도 중대해서 마이크로서비스의 다른 혜택을 모두 무효화 할 수 있을 정도이기 때문에 이 책에서는 이 단점들을 극복할 수 있는 아키텍처나 패턴, 방안들을 제시하고 있다고 보는 게 좋다. 

 

2장에서는 진화적인 아키텍트라는 관점에서 아키텍트의 역할과 책임을 기술하고 있는데, 개인적으로 공감가는 내용이다. 마이크로서비스 설계 원칙에는 구역화(ZONE)를 다루는데 이 것은 이후 서비스 경계와 비슷한 개념으로 구역간의 표준화된 통신 프로토콜을 강조한다. 원칙적인 접근법에는 전챡적인 목표와 잘 작동하는 애플리케이션 작동 원칙을 다른다,  또한 좋은 마이크로서비스 필수 기준 등도 제시한다. 추상적인 내용이지만, 많은 것을 생각하게 하는 내용들이다.

 

1-2장을 읽고 이후 내용을 읽어보면 앞 두 장의 내용을 바탕으로 서술되어 있다는 것을 알 수 있다. 

마이크로서비스는 단일책임원칙에 따른 경계가 있는 컨텍스트 위주로 시스템을 구분하기 때문에 하나의 모놀리식 시스템을 분해하면 다수의 마이크로서비스 가 생성되게 되고 이는 지속적인 통합(CI-Continuous Integration), 지속적인 배포(CD-Continuous Deployment), 테스팅, 보안등의 문제를 유발하게 된다. 이 책에서는 이런 문제를 해결할 수 있는 여러 방안들과 패턴, 기술 프레임워크 등을 제시하고 있다. 여기에 기술한 내용들은 마이크로서비스 아키텍처 구현에만 국한되지 않고 다양하게 적용할 수 있는 내용인 것 같다. 마이크로서비스 구축후의 관리비용의 선형 증가를 막기 위한 모니터링에 대한 내용도 기술되어 있다.

이 책은 마이크로서비스 시스템의 코딩을 통한 구현보다는 아키텍처 설계에 대한 이론과 원칙을 주로 다루고 있다. 또한 물리적인 구성이나 마이크로서비스 개발과 운영을 잘 할 수 있는 여러 오프 소스 기반의 기술들을 설명하고 있다.

 

따라서 마이크로서비스를 잘 운영하려면 상당한 환경 구축 지식과 해당 분야 기술 및 프레임워크를 사용할 수 있는 역량이 있어야 할 것으로 생각된다. 마이크로서비스는 소규모 시스템이 대상이라기 보다는 대용량 분산 환경에 맞춰진 아키텍처인 것 같다. 따라서 가상화나 클라우드 시스템에 탑재되어 사용할 때 적합한 기술인 것 같다.

 

아직 가상화나 클라우드, 이 책에서 언급하고 있는 각종 기술들에 대한 지식이 별로 없어 책을 완벽하게 이해할 수 없었고 더욱 열심히 공부해야겠다는 오기가 생기가 한 책이다. 책 내용에 대한 이해는 70~80% 정도 였는데, 여기에는 세부기술에 대한 이해 부족과 내용 중에서 번역이 이해가 되지 않는 경우로 나눌 수 있다. 대부분은 기술 이해 부족이지만, 번역 과정에서 문맥이 이상한 부분도 상당한 것으로 판단된다. 아마 너무 번역을 매끄럽게 하려고 한 것이 독이 되지 않았을까하는 생각이다.

 

글을 잘 적는 것은 아니지만, 예를 들어 157 페이지 마지막 문장, "특정 마이크로서비스에 대한 어떤 테스트가 수행되어야 하는지 언제든지 알 수 있도록 테스트는 마이크로서비스 소스 코드가 있는 소스 컨트롤 시스템에 있어야 한다." 라는 문장이 있는데 너무 길고 금방 이해가 안된다. 개인적으로 이렇게 바꾸면 더 쉽지 않을까 하는 생각해 보는데 "특정한 마이크로서비스에 대한 테스트는 소스컨트롤에 소스 코드와 같이 있어야 한다. 이는 특정한 서비스에 대한 테스트가 실행되는 것을 항상 인지하도록 하기 위해서이다." 처럼 두 문장으로 나눠주었으면 더 이해가 쉽지 않았을까 한다. 

 

전반적으로 마이크로서비스 아키텍처 구축에 대한 전반적인 내용을 익히기에는 좋은 책이나, 마이크로서비스 아키텍처에 관심있는 입문자라면 “대용량 아키텍처와 성능 튜닝, 조대협”을 한 번쯤 읽고 접한다면 도움이 될 듯하다. 아키텍처나 패턴에 어느 정도 익숙한 분이라면 읽어볼 만한 책으로 추천한다.

 

PS - 이 서평은 한빛미디어 "나는 리뷰어다"로 증정받은 책으로 작성한 것입니다.


g*****i 2017.03.30. 신고 공감 1 댓글 0
리뷰 총점 종이책
마이크로서비스 아키텍처 구축(Building Microservices)을 위한 배려깊은 안내서
"마이크로서비스 아키텍처 구축(Building Microservices)을 위한 배려깊은 안내서" 내용보기
키워드: MSA, Microservice, Architecture, 마이크로서비스, 한빛미디어, 아키텍처마이크로서비스 아키텍처(Microservice Architecture)에 대해 처음 들었던 건 2015년 1월로 기억한다. 당시 T아카데미에서 <iPhone Application Programming>을 들었는데 강사님이 이에 대해 언급을 했던 것으로 기억한다.MSA를 이해하고자 O’Reilly에서 출간한 Building Microservices를 읽으려고 했
"마이크로서비스 아키텍처 구축(Building Microservices)을 위한 배려깊은 안내서" 내용보기


키워드: MSA, Microservice, Architecture, 마이크로서비스, 한빛미디어, 아키텍처

마이크로서비스 아키텍처(Microservice Architecture)에 대해 처음 들었던 건 2015년 1월로 기억한다. 당시 T아카데미에서 <iPhone Application Programming>을 들었는데 강사님이 이에 대해 언급을 했던 것으로 기억한다.

MSA를 이해하고자 O’Reilly에서 출간한 Building Microservices를 읽으려고 했지만 당장 필요한 기술이 아니다보니 미루고 미루다 계속 읽지 못했다. 다행이랄까. IT전문서적 출판사인 한빛미디어에서 한빛리더스 과제로 Building Microservices의 번역서인 <마이크로서비스 아키텍처>가 나와 강제로 읽을 수 밖에 없었다.

1. 책의 주제

제목처럼 이 책은 요즘들어 더 주목을 많이 받는 마이크로서비스(Microservice)를 구축하는 방법을 심도있게 다룬다. 단순히 MSA(Microservice Architecture)가 뭔지 설명하는 것에서 멈추는 것이 아니라 아키텍처 정의부터, 아키텍처를 설계하는 아키텍트의 역할 그리고 시스템을 어떻게 통합, 배포, 테스트하는지 등 MSA의 A부터 Z까지 다룬다. 책에서는 뮤직코퍼레이션이라는 가상의 회사를 통해 MSA로 설계하는 방법을 설명한다.

2. 대상독자

이상적으로는 컴퓨터 아키텍처에 관심이 많은 사람이면 실력에 관계없이 도움이 될 것 같다. 다만, 여러 차례 읽어야 저자가 전하고자 하는 MSA 실현을 위한 이론을 본인의 지식으로 내재화 할 수 있다. 현실적으로는 중급 이상의 실력을 갖춘 아키텍트를 꿈꾸는 소프트웨어 엔지니어가 대상 독자라고 생각한다.

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

마이크로서비스(Microservice)는 작고 자율적으로 협업하는 서비스를 말한다. 흔히 소프트웨어를 설계할 때 “응집력(Cohesion)은 높이고 결합력(Coupling)은 낮춰야 한다”고 하는데 이러한 소프트웨어 공학의 원리를 적용한 서비스가 바로 마이크로서비스(Microservice)다. 만약 어떤 시스템이 ‘다른 변경 없이 특정 서비스만 변경하고 배포할 수 있다’면 그 시스템은 커플링이 없는 시스템이라 할 수 있다.

좋은 마이크로서비스의 핵심 원칙 강한 응집력 느슨한 결합력이다. – 4부 통합, 79쪽

이와 반대 되는 개념의 아키텍처는 모놀리식(Monolithic) 시스템이다. 이러한 시스템은 하나의 변경으로 전체 시스템이 재빌드가 되어야 한다. 또한, 하나의 장애로 전체 시스템이 먹통이 될 수 있는 구조를 갖고 있다. 아래 그림은 Martin Fowler의 블로그에서 가져온 그림인데 두 시스템을 잘 비교하고 있어서 인용했다.

Source: https://martinfowler.com/articles/microservices.html

4. 이 책이 좋았던 점

우선 이 책의 평점을 매기자면 5점 만점에 4.5점을 주고 싶다. 이유는 다음과 같다.

첫째, 마이크로서비스의 전체 생명주기를 잘 설명해서 이해에 큰 도움이 되었다. 과거에는 MSA로 서비스를 만들려면 코드와 DB 등을 분리하면 되겠구나라고 막연하게 생각했다면 이 책을 읽고 나서는 코드, DB 뿐만 아니라 CI(Continuous Integration)/CD(Continuous Delivery), 테스트 자동화, 통합된 모니터링, 보안, 복구 등 개발부터 운영까지 전 영역을 고려해야 함을 배울 수 있었다.

둘째, 친절한 각주가 책을 읽는 데 큰 도움이 되었다. 만약 같은 내용을 영어로 읽었다면 이해하지 못할 내용이 많았다. 이는 해석이 되지 않아서가 아니라 여러 가지 기술 및 경제 용어를 저자가 친절하게 각주로 설명을 했기 때문이다. 저자의 설명 덕분에 책을 더 집중해서 읽을 수 있었다.

셋째, 이론으로 끝내지 않고 실전에 사용할 수 있는 도구를 소개해서 앞으로 나아갈 방향을 알 수 있었다. 책을 읽으면 MSA가 결코 은총알(만능도구)이 아니라는 것을 알 수 있다. 오히려 책을 읽으면 읽을수록 ‘이론은 알겠는데 현실에 어떻게 적용하지?’ 라는 고민이 늘어났다. 저자는 이에 대한 해결책으로 구글(Google), 넷플릭스(Netflix), REA(호주 부동산 업체) 등의 사례와 각종 오픈 도구를 소개함으로써 이론을 현실에 적용할 수 있는 방법을 소개한다. 비록 각 도구의 실제 사용법에 대해서는 세세히 다루지 않았지만 각 도구를 어떠한 식으로 활용할 수 있는지 소개한다.

넷째, 참고할 수 있는 문서, 영상, 도서가 많다. 근래 읽었던 기술 서적 중 참고자료가 가장 많은 도서였다. 어떻게 보면 MSA가 간단한 주제가 아니라는 것을 반증하는 것 같다. 이 책을 읽으면서 내가 어떤 도서를 봐야 MSA를 구축하는데 필요한 지식을 얻을 수 있을지 파악할 수 있었다.

다섯째, 인간의 중요성을 강조한다는 점이다. 저자는 책에서 수 차례 인간적인 요소를 강조한다. 기술을 배우면 배울수록 그리고 자신이 좋아하면 좋아할수록 기술 너머에 사람이 있음을 종종 잊는 것 같다. 저자는 사람의 중요성을 계속 강조하는데 이 점이 참 마음에 들었다.

필자는 소프트웨어는 훌륭한 사람에 의해 만들어지는 것이라고 굳게 믿고 있다. 만약 여러분이 이 방정식에서 기술적인 측면만 걱정한다면 전체 그림의 절반 이상을 놓치게 된다. – 2부 진화적 아키텍트, 60쪽

보안을 잘 다룬다는 것은 대개 사람을 잘 이해하고 사람이 시스템과 일하는 방식을 잘 이해하는 것이다. 마이크로서비스에 관해 우리가 아직 논의하지 않은 인간적인 요소와 연관된 측면 중 하나는 조직 구조와 아키텍처 자체 사이의 상호작용이다. 보안과 마찬가지로 인간적인 요소를 무시하는 것은 중대한 실수가 될 수 있음을 알게 될 것이다. – 9장 보안, 260쪽

5. 이 책의 아쉬웠던 점

이 책의 아쉬웠던 점은 MSA의 국내 사례가 소개되지 않는다는 점이다. 번역서라도 국내 사례를 소개했다면 책의 설득력이 더 올라갈 수 있었을 것 같다. 이 리뷰를 작성하는 본인은 금융공기업에 재직중인데 MSA가 아무리 좋아도 이를 성공적으로 활용하는 곳이 없다면 리스크가 크다고 생각하여 도전하지 않는 게 본인이 일하는 곳의 리더십들이기 때문이다.

또한, MSA를 실습할 수 있는 파트가 전혀 없다는 점도 아쉽다. 아주 간단한 서비스라도 함께 실습하며 실제로 만들 수 있는 예제가 있었다면 훨씬 더 좋은 책이 될 수 있지 않았을까? 하나의 책이 이론과 실습 등 모든 것을 망라하는 것은 어렵겠지만 실습이 전혀 없었던 것이 아쉬웠던 것은 사실이다.

6. 총평

이 책은 ICBM(IoT, Cloud Computing, Big Data, Mobile)과 AI(Artificial Intelligence) 시대에 사는 우리에게 과거의 Monolithic 시스템에서 작은 서비스들의 집합인 Microservice 시스템으로 옮겨가야 한다고 주장한다.

변화는 불가피하다. 그냥 받아들여라. – 12장 종합 정리, 329쪽

만약 본인이 시스템 아키텍처에 관심이 많아서 공부를 하고 싶다면 이 책은 매우 적합한 책이라고 생각한다. 비록 실습할 수 있는 코드는 없지만 이 책을 읽으면 MSA를 많이 다뤄본 저자로부터 기술적인 측면, 관리적인 측면 그리고 인간적인 측면까지 아우르는 따뜻한 조언을 얻을 수 있기 때문이다.

훌륭한 소프트웨어 개발자 혹은 아키텍처가 되려면 기술도 잘 알아야 하지만 사람도 잘 알아야 하는 것 같다. 결국 일은 사람이 하기 때문이다. 그래서일까? 경험이 많은 저자는 사람의 중요성을 계속해서 강조함으로써 독자가 기술만능주의에 빠지지 않도록 수 차례 강조한다. 사람의 중요성을 강조하는 저자의 글로 이번 한빛리더스 서평을 마무리하고자 한다.

비록 이 책이 전반적으로 기술을 다루고 있지만 사람도 반드시 고려해야 한다. 왜냐하면 현재를 만들었고 미래를 만드는 주체가 바로 사람이기 때문이다. 현 직원의 비전에 대한 생각을 고려하지 않거나 그들이 지닌 능력에 대한 고려 없이 일을 어떻게 완료하는지에 관한 비전만 생각하면 대개 나쁜 곳으로 빠지기 쉽다. – 10장 콘웨이의 법칙과 시스템 설계, 274쪽

추신. 책에 대한 상세한 설명은 <한빛미디어 공식 홈페이지> 에서 확인하실 수 있습니다.

s********g 2017.04.17. 신고 공감 0 댓글 0
리뷰 총점 종이책
진화하는 소프트웨어 아키텍처, 대규모 분산 시스템 구축을 위한 마이크로서비스 아키텍처 구축 리뷰
"진화하는 소프트웨어 아키텍처, 대규모 분산 시스템 구축을 위한 마이크로서비스 아키텍처 구축 리뷰" 내용보기
내게 꼭 필요한 책이 나왔다고 생각했다. 실무에서 마이크로서비스 아키텍처를 사용하고 있지만 기저에 있는 이론이라던가 모범사례 또는 쉽게 빠지는 함정들에 대해서는 알지 못하고 있었다. 모놀리식 아키텍처는 수백명에 달하는 개발 조직의 커밋을 바로바로 수용하여 실제 제품에 적용하고 테스트 한 뒤 배포하는 데에 적절하지 않다. 그래서 서비스를 각 팀이 나눠서 개발하고 배포
"진화하는 소프트웨어 아키텍처, 대규모 분산 시스템 구축을 위한 마이크로서비스 아키텍처 구축 리뷰" 내용보기

마이크로서비스 아키텍처 구축 책

내게 꼭 필요한 책이 나왔다고 생각했다. 실무에서 마이크로서비스 아키텍처를 사용하고 있지만 기저에 있는 이론이라던가 모범사례 또는 쉽게 빠지는 함정들에 대해서는 알지 못하고 있었다. 모놀리식 아키텍처는 수백명에 달하는 개발 조직의 커밋을 바로바로 수용하여 실제 제품에 적용하고 테스트 한 뒤 배포하는 데에 적절하지 않다. 그래서 서비스를 각 팀이 나눠서 개발하고 배포한다. 여기까지가 내가 아는 전부이다. 책에서는 마이크로서비스 아키텍처의 장점, 단점에서 시작하여 개발 원칙, 팀 구성, 배포, 모니터링, 보안 등 여러 방면에 걸쳐 고려할 사항들을 설명하고 있다.

마이크로서비스 아키텍처 구축 장점1. 레퍼런스가 풍부하다

1장은 도입부라고 할 수 있는데, 각주가 많이 달려 있었다. 간단히 용어에 대해 설명하는 것부터 관련된 링크까지 다양하게 있다. 레퍼런스가 다양하게 있으니 모두 꼼꼼하게 읽는다면 책의 내용을 더 잘 이해할 수 있을 것이다. 그런데 솔직히 너무 많아서 양에 압도당했다. 나중에(개발자가 나중에 한다고 하면 안한다는 말일수도 있지만) 한 권씩 읽어야 겠다.

마이크로서비스가 모든 것을 해결해 주지 않는다! 책에서 가장 중요한 구절 중 하나라고 생각한다. 어떤 기술이든 장단점이 있으니 우리에게 적합한지 살펴본 뒤에 적용해야 할 것이다. 관련하여 재미있는 글이 있으니 관심 있으신 분은 링크 참조.

마이크로서비스 아키텍처 구축 장점2. 많은 깨달음을 얻었다

비록 내공이 부족해서 책의 내용을 100% 흡수하진 못하였지만 많이 배웠다. 콘웨이의 법칙, 기술 프로세스 관점이 아니라 비즈니스 관점에서 팀 나누기, 높은 응집성, 낮은 결합도, Blue/Green, 카나리아 등 너무 많다. 테스트, 모니터링 쪽은 말할 것도 없다. 그렇지만 ‘장애는 어디에서나 발생한다’는 말이 가장 와닿았다. 소프트웨어 장애, 네트워크 장애, 하드웨어 장애 등 마이크로서비스 아키텍처에서 염두에 둬야할 요소들이 많다는 것을 제대로 깨달았다. 넷플릭스나 구글에서 시행하는 장애 복구 테스트나 유인원 부대같은 것을 우리 회사에도 도입할 수 있을지 궁금하다. 또, 깨알같지만 AWS에서 EC2 인스턴스를 생성하고 테스트를 위해 일부 인스턴스를 종료시켰는데 다시 살아나서 테스트를 못한 경험이 있다. 그런데 그 사례가 AWS의 Failover전략 때문에 그런 것이라고 언급해서 깜짝 놀랐다.

웹 개발에 입문한지 거의 1년이 다 되어 가는 내게 이 책은 솔직히 좀 어려웠다. 한빛미디어에서 대상 독자를 중고급으로 매겨놨는데, 고급이어도 상관없을 것 같다. 아키텍처에 관한 책이라 코드는 없다. 대신에 다이어그램이 여러번 등장한다. 대규모 분산시스템을 개발해보신 분들이나 현재 아키텍트로서 마이크로서비스 개발을 이끌고 있을 분들이라면 읽으면서 무릎을 탁 칠 내용들이 정말 많은 듯 하다. 반면에 나 같은 주니어 개발자, 톱니바퀴라고 느끼는 개발자들이 읽으면 상투적이지만 나무를 보다 숲을 보는 느낌을 가질 수 있을 거라고 생각한다. 덧붙여, 오탈자를 거의 찾아볼 수 없을 정도로 편집이 잘 됐고 번역도 매끄럽게 잘 됐으니 원서보다 번역판을 추천한다.

#마이크로서비스 #마이크로서비스 아키텍처 구축 #대용량 시스템 구축 #마이크로서비스 책 추천


p*****h 2017.04.16. 신고 공감 0 댓글 0
리뷰 총점 종이책
마이크로서비스 아키텍처 구축
"마이크로서비스 아키텍처 구축" 내용보기
내가 마이크로 서비스 라는 말을 처음 들었던 것은 재작년이었던 것 같다. 회사에서 업무 때문에 처음 접하게 되었던 이 용어는 좀처럼 이해하기가 쉽지 않았다. 그리고 마이크로 서비스라는것 자체가 아직은 먼 이야기라고 생각이 되었다. 그때만 해도 "말이 쉽지. 이게 되겠어?" 라는 의심이 더 컸던것 같다. 하지만 최근에는 많은 서비스 들이 기존의 물리적 인프라 위에서 서비스를
"마이크로서비스 아키텍처 구축" 내용보기






  내가 마이크로 서비스 라는 말을 처음 들었던 것은 재작년이었던 것 같다. 회사에서 업무 때문에 처음 접하게 되었던 이 용어는 좀처럼 이해하기가 쉽지 않았다. 그리고 마이크로 서비스라는것 자체가 아직은 먼 이야기라고 생각이 되었다. 그때만 해도 "말이 쉽지. 이게 되겠어?" 라는 의심이 더 컸던것 같다. 하지만 최근에는 많은 서비스 들이 기존의 물리적 인프라 위에서 서비스를 제공하는게 아니라 클라우드 상에서 서비스를 제공하는 일이 많아 지면서 마이크로 서비스 아키텍처라는게 더 힘을 받고 있는것 같다.  


마이크로서비스


마이크로서비스란 작고 자율적으로 협업하는 서비스를 의미한다.


  단어의 뜻 자체는 그렇게 어렵지 않다. 말 그대로 "Mirco(작은단위)" + "Service",  작은 단위의 서비스를 말한다. 각각의 서비스들은 하나의 독립된 주체이며 전체는 각각의 서비스들의 집합라고 생각하면 될것 같다. 하지만 이렇게 시스템을 구성하기에는 그렇게 쉬운 일은 아니다. 이 책에서는 이렇게 쉽지 않은 마이크로서비스 아키텍처에 대해서 알아야할 이론적인 내용에 대해서 설명해주고 있다. 마이크로 서비스에 대한 정의부터 시작해서 모델링, 통합, 분해, 배포, 테스팅, 모니터링, 보안에 이르기 까지 전체적인 그림을 그릴 수 있는 내용을 담고 있다. 


  많은 내용을 담고 있지만 그중에서도 몇가지 눈여겨 본 대목을 뽑아봤다. 




  하나의 시스템을 설계 하는데에 아키텍트의 역할은 정말 중요하다. 위에 글처럼 아키텍트가 결정한 방향의 파급력은 프로젝트 내에서 정말 어마어마 하다. 방향 한번 잘못잡았다가 프로젝트가 산으로 가는 경우도 정말 많다. 그만큼 아키텍트는 의사결정에 있어서 신중해야 하고 많은 것들을 고려해야 하는 역할을 가졌다. 그리고 설계와 함께 개발에 대해서도 어느정도 이해를 하고 있어야 한다. 수채화를 그리는데 밑그림만 다 그렸다고 그림이 완성된것은 아니다. 밑그림 위에 알맞은 색깔을 칠한 후에야 그림이 완성되는 것이다. 그렇기 때문에 아키텍트가 그린 그림을 구현하는 개발 담당자들과의 협업이 그만 큼 중요하다. 가끔 이 역할 관계가 갑을관계처럼 엮이는 경우가 있다. 아키텍트가 설계를 하면 마치 그것이 마치 불변의 법인것 처럼 행동하고 잘못된것을 지적하거나 의문점을 제시하면 받아들이지 않는 사람들이 있다.  그리고 프로젝트의 인프라와 기간, 인력등을 고려하지 않고 이상만을 추구해서 설계를 하는 아키텍트들도 있다. 그리고 나서 안되면 개발자를 탓한다. 이런 상황을 겪어보다 보니 위에 나온 내용을 읽으면서 절로 고개가 끄덕여 졌다. 





  마이크로서비스 아키텍처 상에서는 각각의 기능들이 서로 다른 기능들을 이용하기 위해서는 통신을 해야 한다. 그렇다 보니 서비스간 호출에 대한 정의도 해야하고 보안 또한 중요하다. 아무래도 내부 호출보다는 외부 프로토콜을 이용한 호출이다보니 보안에 취약할 수 밖에 없다. 취약하다기 보다는 더 신경을 써야 한다. 서비스에 대한 호출이 정당한지, 아니면 권한과 역할에 대한 정보를 제대로 가지고 있는지 확인해야 할 정보들이 많다. 그래서 게이트웨이를 쓰고 인증토큰을 발행하고 정보를 암호화 하는 절차들이 필요하다. 전체적인 아키텍처 그림이 위하고 항상 같을수는 없지만 기본적인 틀은 아마 비슷할 것이라고 생각이 된다. 

  나도 현재 마이크로서비스로 구성하지는 않았지만 비슷하게 서비스를 구성하면서 보안에 관련된 검증을 받았었다. 생각지도 않은 곳에서 사용자 정보가 노출이 되고 쉽게 다른 사람의 정보를 수정/삭제 할수 있다는 것을 직접 체험을 했고 그것을 보완하면서 많은 것을 배웠다. 아마도 저 그림이 눈에 들어온 것은 그것때문이었던것 같다. 


  마이크로서비스 아키텍처는 실버불릿은 아니다.


  항상 모든것은 지나치면 오히려 독이 된다. 마이크로서비스가 최근들어 주목을 받고 있긴 하지만 모든 곳에 다 적용할 수 있는 만능은 아니다. 오히려 모놀리스 아키텍처의 구조를 가져가는게 더 알맞은 프로젝트들도 있다. 무작정 하게 되면 오히려 독이 될 수 있다. 마이크로서비스 아키텍처를 적용하기 위해서는 이 구조가 가진 장점들을 잘 살리고 단점들을 잘 보완 할 수 있는 설계를 할 수 있어야 하고 많은 것들을 고려해야 한다. 


  책을 읽으면서 대학교 전공 서적같은 느낌이 들었다. 지금은 번역서를 읽어서 그렇지만 영문 원서였으면 아마도 예전에 대학다닐때 운영체제 전공과목을 들었을 때와 더 비슷한 느낌이 들었을것 같다. 그만큼 많은 내용이 담겨 있고 어려운 내용들이다. 단순히 한권의 책을 읽었다고 해서 마스터 될 영역은 분명 아니다. 하지만 각각의 포인트에서 생각해야 할 점들을 잘 설명해주고있다. 좀 아쉬운점은 번역서이다 보니 번역투의 표현들이 눈에 띄었다. 약간은 매끄럽지 않다고나 할가. 그리고 설명에 대한 그림들이 좀 부족한것 같다. 글로 설명하기가 어려운 내용들을 그림으로 표현해서 설명을 했을때 이해가 더 쉽듯이 책에서 설명하고 있는 내용들을 좀더 그림으로 풀어줬으면 더 좋았을 것 같다는 생각이 들었다. 


http://blusky10.tistory.com/260


k***0 2017.04.13. 신고 공감 0 댓글 0
리뷰 총점 종이책
[서평] "마이크로서비스 아키텍처 구축" 을 읽고
"[서평] "마이크로서비스 아키텍처 구축" 을 읽고" 내용보기
제목을 보면 "마이크로서비스"라는 생소한 단어가 포함되어 있는데 이 책의 정의에 따르면 마이크로서비스란 "작고 자율적으로 협업하는 서비스"를 의미합니다. 즉, 이 책은 전체 시스템을 자율적으로 협업하는 조그마한 서비스들로 나누어 구축하는 방법에 대해 설명하고 있습니다. 각 마이크로서비스들은 각각 별도의 독립된 프로세스 상에서 동작하며 서로 간의 모든 통신은 네트워크
"[서평] "마이크로서비스 아키텍처 구축" 을 읽고" 내용보기

제목을 보면 "마이크로서비스"라는 생소한 단어가 포함되어 있는데 이 책의 정의에 따르면 마이크로서비스란 "작고 자율적으로 협업하는 서비스"를 의미합니다. 즉, 이 책은 전체 시스템을 자율적으로 협업하는 조그마한 서비스들로 나누어 구축하는 방법에 대해 설명하고 있습니다. 각 마이크로서비스들은 각각 별도의 독립된 프로세스 상에서 동작하며 서로 간의 모든 통신은 네트워크 호출을 통해 이루어집니다.


마이크로서비스 구조를 적용하게 되면 다음의 혜택을 얻을 수 있습니다.

- 기술 이기종성: 각 마이크로서비스들은 자신 만의 최적의 기술을 선택할 수 있습니다.

- 회복성: 한 서비스에서 장애가 발생하더라도 전체 서비스로 장애가 전파되지 않도록 차단할 수 있습니다.

- 확장성: 필요한 서비스만 확장이 용이합니다.

- 배포 용이성: 작은 서비스로 분리되어 있는 경우 나머지 시스템과 독립적으로 한 서비스만 변경하여 배포가 용이합니다. 배포 시 문제가 발생하더라도 해당 서비스만 복구하면 되기 때문에 해당 문제를 쉽게 격리할 수 있습니다.

- 조직 부합성: 시스템 아키텍처를 조직의 구조에 맞추어 변경하기가 쉽기 때문에 생산성이 증가됩니다.

- 조합성: 서비스가 작게 분리되어 있기 때문에 재사용성이 향상됩니다.

- 대체 가능성을 위한 최적화: 각 서비스들의 크기가 작기 때문에 나중에 서비스를 재작성하거나 제거하기가 쉽습니다.

즉, 마이크로서비스 구조를 적용함으로써 나중에 새로운 기능이 추가되거나 요구 사항이 변경되어도 쉽게 수정 및 배포가 가능한 시스템을 만들 수 있습니다.


저자는 마이크로서비스 구조 시스템을 개발하면서 단계별로 고려해야할 중요 사항들과 빠지기 쉬운 함정들을 실제 예제와 그림 등의 부가 자료를 통해 명료하게 설명합니다.

- 1장 마이크로서비스

- 2장 아키텍트의 역할

- 3장 서비스 모델링하기

- 4장 통합

- 5장 모놀리스 분리하기

- 6장 배포

- 7장 테스팅
- 8장 모니터링
- 9장 보안
- 10장 콘웨이의 법칙과 시스템 설계
- 11장 대규모 마이크로서비스
- 12장 종합 정리

[ 결론 ]
소프트웨어 공학과 관련된 전문 용어도 많고 시스템 아키텍처와 관련된 광범위한 내용들이 포함되어 있다보니 쉽게 이해하고 넘어가기 편한 책은 아니었습니다. 그리고 번역서이다 보니 일부 영어 번역이 어색하거나 이해하기 난해한 부분도 있었고 몇 군데 오타나 단어가 누락된 부분도 확인할 수 있었습니다. 하지만 대부분의 번역은 이해하기에 큰 어려움이 없었으며 역자분이 별도로 추가 설명을 달아주신 덕에 전문 용어와 신기술을 이해하는데 많은 도움을 받을 수 있었습니다.


이 책은 아키텍트라면 지속적으로 진화 가능한 아키텍처 설계를 위해 옆에 두고 꾸준히 참고해야할 도서라고 생각합니다. 그리고 단순 개발자에서 벗어나 아키텍트로 성장하기를 원하시는 분들께도 새로운 안목과 통찰을 얻는데 많은 도움이 될 것으로 확신합니다.

g******m 2017.04.04. 신고 공감 0 댓글 0
리뷰 총점 종이책
[리뷰] 마이크로서비스 아키텍처 구축
"[리뷰] 마이크로서비스 아키텍처 구축" 내용보기
회사에서 신입사원을 모집할때 회사의 장점중 하나로 마이크로서비스아키텍쳐를 구현하고 있다고 말하곤 했다. 고객이 보기엔 하나의 앱이고 웹사이트일 뿐이지만, 사실 수 많은 개별 서비스들이 톱니바퀴처럼 물려서 돌아가고 있다고, 시스템을 배포할때 전체를 배포하는것이 아니라 각 서비스를 이루고 있는 개별시스템들만 배포하면 되고, 그래서 장애가 나도 앱 전체가 다운되는것
"[리뷰] 마이크로서비스 아키텍처 구축" 내용보기



  회사에서 신입사원을 모집할때 회사의 장점중 하나로 마이크로서비스아키텍쳐를 구현하고 있다고 말하곤 했다. 고객이 보기엔 하나의 앱이고 웹사이트일 뿐이지만, 사실 수 많은 개별 서비스들이 톱니바퀴처럼 물려서 돌아가고 있다고, 시스템을 배포할때 전체를 배포하는것이 아니라 각 서비스를 이루고 있는 개별시스템들만 배포하면 되고, 그래서 장애가 나도 앱 전체가 다운되는것이 아니라 일부 기능에만 문제가 생긴다고...


  하지만 정작 일을 하면서 알게 되었다. 처음에는 마이크로서비스를 지향하였지만 결국 개별시스템이 비대해지면서 모놀리식 시스템이 되어가고 있다는 걸 그리고 기술부채를 줄이기 위한 리팩토링이나 개선은 항상 다음에 여유가 생기면이란 핑계로 미루기가 일상이 되어갈 때 쯤 이 책과 조우하게 되었다.


  이 책은 마이크로서비스의 실체에서부터 그 경계를 정하는 방법, 서비스의 모델링, 서비스들의 통합, 모놀리스 시스템의 분해, 배포, 테스트, 보안과 모니터링에 대한 우려에 이르기까지 상당히 넓은 주제를 다루고 있다.


  개인적으로 좋았던 부분은 4장에선 요즘 많은 개발자들이 고민하는 동기/비동기에 대한 주제였던 것 같다. 항상 고민하고 있는 부분인데 책에서 다루어서 좋았다. 11장에선 요즘 면접의 단골주제인 대규모 서비스에 대한 캐쉬, 확장성, 서비스 인지 등에 대해서도 다루고 있는데, 최근 비동기 시스템의 클러스터링에 대한 업무를 하고 있다보니, 흥미롭게 읽혔던 것 같다.


  간단하게라도 코드와 인프라스트럭쳐가 라이브되어 있는 샘플로 설명해주면 실질적으로 더 도움이 될텐데 그점은 조금 아쉬웠던 것 같다. 다음에는 좀 더 풍성한 실사례와 많이 수록된 개정판이 나오길 소망해본다.


  새로운 언어나 라이브러리에 대한 책을 접할 기회는 많지만, 이렇게 아키텍처에 대해 고민하게 해주는 책은 드물었기에

가뭄에 단비를 맞은 것처럼 반가웠다. 이 책이 마이크로서비스의 구현/운영에 있어 모든 어려움과 고민을 해결해 줄 수는 없겠지만 우리가 맞닥뜨릴 함정들을 피해가는데 도움이 될것이다.



b******t 2017.03.18. 신고 공감 0 댓글 0
리뷰 총점 종이책
이번에 추가된 개발자 필독서
"이번에 추가된 개발자 필독서" 내용보기
서론 작년 겨울 이직 하기 전 회사에서 Micro Service Architecture(MSA)는 핫이슈였다. 도메인 로직이 뭉쳐진 신(God)같은 프로젝트가 있었고 그걸 MSA로 쪼개려고 방법을 강구하고 있었다. 나도 쪼갠다는 것에는 당연히 동의를 했지만, 속으로 곰곰히 생각해보니 진짜 너무나도 어려웠다. DB를 중심으로 의존이 거미줄처럼 복잡했기 때문이다. 과연 그걸 쪼개는 것이 가능하긴 한
"이번에 추가된 개발자 필독서" 내용보기

서론

작년 겨울 이직 하기 전 회사에서 Micro Service Architecture(MSA)는 핫이슈였다. 도메인 로직이 뭉쳐진 신(God)같은 프로젝트가 있었고 그걸 MSA로 쪼개려고 방법을 강구하고 있었다. 나도 쪼갠다는 것에는 당연히 동의를 했지만, 속으로 곰곰히 생각해보니 진짜 너무나도 어려웠다. DB를 중심으로 의존이 거미줄처럼 복잡했기 때문이다. 과연 그걸 쪼개는 것이 가능하긴 한건지 의문이었다.

나는 이직을 했고 이제는 새로운 코드에서 이 문제를 고민하고 있다. 어디든 정도의 차이는 (크게) 있지만 서비스가 모노리틱 하게 성장하기 때문이다.
그러던 중에 이 책을 읽게 되었고 MSA의 허와 실을 확인할 수 있었다. 좀 더 나아가서 최근에 관심을 가지고 있는 화두들(DDD, Rx 등) 간의 연결고리를 조금 알게 되었다.

이 책은 나에게 좀 많이 어려웠다. 소프트웨어 아키텍처 관련한 많은 단어들이 나에게는 생소하거나 대충아는 단어였기 때문이다. 그래도 너무 고마운 책이다. 나에게 이쪽 세상을 알게해줬다. 모든 개발자들에게 일독을 권한다.

MicroService에 대한 간단한 짧은 견해

이 책을 읽고 두가지 크게 느낀 점이 있다.

첫번째는 경계가 있는 컨텍스트(Bounded Context)를 뽑아내야한다는 것이다. 그 경계를 기준으로 응집도를 높이고 경계에 명백한 인터페이스를 정의해야 한다. 이렇게 격리된 컨텍스트들이 마이크로 서비스가 될 것이다. 소프트웨어에서 제일 중요한 것은 변화에 대응하는 것이고 그 해결책은 격리이다.

두번째는 영속성 레이어(흔히 DB)에 대한 개념을 바꿔야한다는 것이다. 이직하고 팀의 백앤드 개발자분과 이와 관련하여 이야기를 나눴다. 그분은 나에게 이렇게 말씀해주셨다. "DB는 단순히 데이터를 저장하는 곳이다." 만약 DB가 대부분의 비즈니스 로직을 수행하고 모든 서비스들이 이를 의존한다면 DB의 변경은 그를 의존하고 있는 모든 서비스에 영향을 준다. 정석대로 이야기하면 영향을 받는 모든 부분의 회귀테스트를 해야한다는 뜻이다. 경험상 이는 불가능에 가깝다. 그냥 사고 안나길 바라는 수밖에 없다. MSA로 전환하고 싶어도 의존성을 분석하고 Bounded Context에 맞게 테이블을 재설계하는데 엄청난 비용이 들것이다.

잔소리를 조금만 더하자면 DB SQL 또는 프로시저를 만드는 PL/SQL은 프로그래밍 언어라고 하기에는 표현력이 부족하다. 즉, 조금만 복잡해지면 보기가 너무 어렵다. 우리의 시간을 그 코드를 이해하는데 보내기에는 시간이 너무 아깝다.

몇번 더 읽어보면 더 많은 것을 느낄 수 있을 것 같다.

간단한 4L 회고

Liked

  • 책의 페이지수가 340p로 얇고 읽기 좋다.
  • 저자의 직접 경험을 담고 있다. 실용적인 예제와 설명이 많다.
  • 옮긴이의 주석에 해당 내용이 관련된 블로그 글을 링크하고 있어서 보충설명이 좋다.
  • 예제가 쇼핑몰이라 좀 편하다.
  • 왠지 참고문헌들이 너무 좋은 책들 인것 같아서 꼭 읽어보고 싶다.

Learned

  • 우리 업계에서 아키텍트의 역할에 대해서 조금 알게되었다.
  • 내가 몰랐던 소프트웨어 아키텍처 관련해서 많은 용어들을 배웠다.
  • 앞으로 공부해야할 것들을 제시해 주었다.
  • 외부 서비스(상용 소프트웨어, SaaS)도 마치 외부 라이브러리를 wrapping해서 사용하듯 파사드(Facade)서비스로 추상화 해서 사용할 수 있으며, 이를 통해 의존성 문제를 해결할 수 있다.
  • 코드의 중복 제거를 위해서 공유 라이브러리를 사용하는 것은 심각한 의존성 문제를 초래할 수 있다.
  • 큰 의미의 아키텍처 원칙(principle)을 정하고 각 팀의 상화에 맞게 실천 사항(practice)를 만들어 현실적으로 지킬 수 있게 해야한다.
  • Rx(Reactive Extension)는 마이크로 서비스 같은 분산 서비스와 궁합이 잘 맞다. 그런데 진짜 잘 맞는지는 좀 해봐야 할 것 같다.

Lacked

  • 가끔 이해하기 어려운 문장들이 나오지만 큰 문제는 아니다.

Longed for

  • 실제 모노리틱 서비스 코드와 그를 분해한 모노리틱 서비스의 코드가 있었으면 좋겠다.

더 읽어보고 싶어지는 책

  • Enterprise Integration Pattern
  • Working Effectively with Legacy Code
  • Refactoring Database
  • Domain-Driven Design

본 포스팅은 한빛리더스 14기로서 해당 책을 제공받아 작성한 솔직한 후기입니다.

w*****r 2017.04.16. 신고 공감 0 댓글 0
리뷰 총점 종이책
누구나 쉽게 이해할 수 있는 마이크로서비스 아키텍처 구축
"누구나 쉽게 이해할 수 있는 마이크로서비스 아키텍처 구축" 내용보기
"그거 잘못 만들면 지옥 같아요."라는 말을 1년 전 어느 모임에서 들은 적이 있다. 그 뒤에는 "지난번에 해봤는데~", 국내 실정에는~", "아무래도 우리 같은 회사에서는~" 같은 익숙한 문구들이 이어졌다. 당시에는 마이크로서비스의 개념을 정확히 파악하지 못하고 있기에 대화 내내 묵묵히 고개만 끄덕였다. 그 후로 항상 의문이 있었는데 이번에 이 책을 읽으며 궁금증이 많이 해소되
"누구나 쉽게 이해할 수 있는 마이크로서비스 아키텍처 구축" 내용보기


"그거 잘못 만들면 지옥 같아요."


라는 말을 1년 전 어느 모임에서 들은 적이 있다. 그 뒤에는 "지난번에 해봤는데~", 국내 실정에는~", "아무래도 우리 같은 회사에서는~" 같은 익숙한 문구들이 이어졌다. 당시에는 마이크로서비스의 개념을 정확히 파악하지 못하고 있기에 대화 내내 묵묵히 고개만 끄덕였다. 그 후로 항상 의문이 있었는데 이번에 이 책을 읽으며 궁금증이 많이 해소되었다.


마이크로서비스는 시스템을 디자인하는 여러 방법의 하나로, 모놀리식과 대비되는 개념이다. 전체 시스템 기능을 하나의 프로그램에 담아서 덩치 큰 프로세스를 구축하는 것을 모놀리식 아키텍처라고 한다면, 마이크로서비스 아키텍처는 기능을 작게 쪼개서 독립적으로 만든 서비스들이 상호 연계되는 아키텍처를 의미한다. 마이크로서비스에서 각각의 서비스는 일반적으로 2주 내로 재작성될 수 있을 만큼 규모가 작고, 자동화된 배포과정을 통해 운영환경에 빠르게 반영되는 것을 원칙으로 한다. 장애가 발생해도 해당 마이크로서비스 내에서 격리되도록 처리하는 것도 중요한 요소이다.


마이크로서비스는 기존 시스템의 높은 복잡성과 이에 따르는 개발/운영/유지보수의 문제점을 해결할 대안이라고 흔히 언급된다. 서비스를 컴포넌트 형태로 잘게 쪼개두면 한 번에 관리할 범위가 작아지고 부작용이 최소화되기 때문이다. 하지만 모든 것이 분권화되어있기 때문에, 아키텍처의 완성도가 떨어지거나 합의된 원칙들을 지키지 않으면 오히려 모놀리식보다 문제 해결에 몇 배나 많은 인력과 시간이 들어가게 되는 부정적인 측면 또한 만만치 않다. 그래서 이 책은 마이크로서비스 아키텍처를 구축/관리할 때 고려할 점을 최대한 상세하게 제시한다. 초기 구축 시 범위 설정부터 이후 진행에 따르는 각 단계에서의 문제점과 해결책, 관련된 풍부한 사례 그리고 실용적인 조언을 덧붙임은 물론이다. 특히 저자가 겪었던 경험을 구체적으로 소개하는 부분은 추상적인 개념을 빠르게 이해하는 데 많은 도움을 주었다.


보통 시스템 아키텍처라는 주제는 너무 어렵거나 지루하다. 특히 본인처럼 기술적인 깊이가 얕은 사람은 자료를 열심히 읽고 나서도 무슨 내용인지 알 수 없는 경우가 대부분이었다. 그런데 이 책은 달랐다. 가끔 어려운 부분을 이해하지 못하고 넘어가더라도, 책의 구성과 서술 자체가 워낙 짜임새 있어서 전체 그림을 파악하는 데는 그다지 장애가 되지 않았다. 마치 수염이 덥수록하고 느긋하게 배가 나온 노년의 아키텍트가 젊은 후임을 옆에 앉혀두고 하나하나 차근차근 설명해주는 느낌이라고 해야할까. 저자는 심지어 책 마지막에 "종합 정리"장을 따로 두고 복습을 해 줄 정도로 세심하고 친절하다.


전반적인 책의 번역은 직역에 가깝다. 개념이 중요한 도서이니만큼 보다 정확한 원서의 의미 전달을 위해 역자가 합리적인 선택을 한 것 같다. 다만 부드럽게 읽히도록 의역한 번역서들처럼 문장이 자연스럽게 술술 넘어가지는 않는다. 특히 몇몇 명사(구)가 낯설게 느껴지는 경우는 조금 아쉬웠다.


전설적인 개발자이자 설계자인 마틴 파울러는 마이크로서비스에 대해 "매력적이지만 고통스러운 함정이 도사리고 있다"고 언급한 적이 있다. 실제로 하나의 소스 파일이 몇천에서 몇만 행으로 이뤄진 경우도 적지 않은 국내 레거시 시스템의 눈물겨운 환경과, 시도 때도 없이 요구사항이 바뀌는 현실을 고려하면, 마이크로서비스를 많은 기업에 단기간에 적용하기는 어려워 보인다. 그럼에도 불구하고 이 책은 IT업에 종사하는 사람들의 가장 큰 의문인 '시스템을 어떻게 만들어가야 하는가?'라는 근원적인 질문에 대한 해답을 일정 부분 제시한다. 


개인적으로 마이크로서비스는 클라우드, 사물인터넷, 머신러닝, 3D프린터가 결합하여 4차 산업혁명을 일으키고 있는 현재 시점에 가장 뜨거운 개념 중 하나이며, 향후 거스를 수 없는 대세가 될 것라고 생각한다. 지금 당장 도입하지 않더라도 경영진/아키텍트/개발자/프로젝트매니저까지 모두가 치열하게 고민해볼 필요가 있는 주제이다. 그런 측면에서 이 책은 적어도 향후 5년 이상 꾸준히 추천될만한 도서이며, 재미와 깊이를 다 갖춘 명저임에 틀림없다.



t****e 2017.03.27. 신고 공감 0 댓글 0