마이크로서비스 아키텍처 구축 가이드
김용욱 지음
마이크로서비스란 ?
마이크로서비스는 무엇인가 ?
* 위키백과
애플리케이션을 느슨하게 결합된 모임으로 구조화하는 서비스 지향 아키텍처 (SOA) 스타일의 일종인 소프트웨어 개발기법이다. 마이크로서비스 아키텍처에서 서비스들은 섬세하고 프로토콜은 가벼운 편이다.
애플리케이션을 더 조그마한 여러 서비스로 분해할 때의 장점은 모듈성을 개선하고 애플리케이션의 이해, 개발, 테스트를 더 쉽게 해주고 애플리케이션 침식에 더 탄력적으로 만들어 준다. 규모가 작은 자율적인 팀들이 팀별 서비스를 독립적으로 개발, 전개, 규모 확장을 할 수 있게 함으로써 병렬로 개발할 수 있게 한다. 또 지속적인 리펙터링을 통해 개개의 서비스 아키텍처가 하나로 병합될 수 있게 허용한다. 마이크로서비스 기반 아키텍처는 지속적 배포와 전개를 가능케 한다.
* AWS
소프트웨어가 잘 정의된 API를 통해 통신하는 소규모의 독립적인 서비스로 구성되어 있는 경우의 소프트웨어 개발을 위한 아키텍처 및 조직적 접근 방식입니다. 이러한 서비스는 독립적인 소규모 팀에서 보유 합니다.
마이크로서비스 아키텍처는 애플리케이션의 확장을 용이하게 하고 개발 속도를 앞당겨 혁신을 실현하고 새로운 기능의 출시 시간을 단축 할 수 있게 해 줍니다.
애플리케이션 개발을 위한 아키텍처 스타일을 의미합니다. 마이크로서비스를 사용하면 대규모 애플리케이션을 각각 담당 영역을 가진 소규모의 독립적인 구성요소로 구분할 수 있습니다. 마이크로서비스 기반 애플리케이션은 단일 사용자 요청을 처리하기 위해 여러 내부 마이크로서비스를 호출하여 응답을 작성할 수 있습니다.
* Redhat
소프트웨어를 구축하기 위한 아키텍처이자 하나의 접근 방식으로, 애플리케이션을 상호 독립적인 최소 구성 요소로 분할합니다. 모든 요소를 하나의 애플리케이션에 구축하는 전통적인 모놀리식 접근 방식 대신 마이크로서비스에서는 모든 요소가 독립적이며 연동되어 동일한 태스크를 완수합니다. 이러한 각각의 구성 요소 또는 프로세스가 마이크로서비스입니다.
* 책에서는 ...
일반적 정의,
마이크로서비스 아키텍처는 시스템을 독립적으로 배포할 수 있는 서비스들로 구성하고 각 서비스는 잘 정의된 API로 통신한다. 서비스는 비즈니스 기능 단위로 나뉘어 작고 독립적인 팀들이 담당한다. 또한 마이크로서비스 아키텍처를 적용하면 애플리케이션의 확장이 쉽고 개발 속도도 향상되기 때문에 새로운 기능을 출시하기까지의 시간을 단축시켜 준다.
마이크로서비스에 대해서 검색 했을 해보면,
여러 사전 및 문헌 그리고 여러 업체에서 마이크로서비스에 대해서 정의 및 장*단점에 대해서 잘 정리해주고 있습니다.
그만큼 핫하며 클라우드가 보편화 되면서 마이크로서비스에 대해서 많은 서비스에 도입되고 있습니다.
이 책은, 이러한 마이크로서비스에 대해서 이러한 여러 정의들을 알기 쉽게 잘 전달 하고자 노력하고 있으며, 여러 장*단점에 대해서 마이크로서비스에 대해 제시하는 기본적인 정의와 장*단점 기준으로 저자의 판단과 이해한 내용에 대해 독자들도 쉽게 받아 들일 수 있도록 서술하고 있습니다.
# 이 책에서 제시하는 대상 독자는 ...
중급자를 대상으로 한다고 되어 있으나, 초중급 대상으로도 나쁘지 않은 책입니다.
이 책은, 크게 아래와 같이 2가지의 주제로 나뉘어 다루고 있습니다.
1부, 마이크로서비스 아키텍처 이해하기
2부, 마이크로서비스 아키텍처 적용하기
1부, "마이크로서비스 아키텍처 이해하기"는 마이크로서비스 아키텍처에 대한 역사적 배경과 용어 설명 그리고 장*단점에 대해서 설명하고 독자가 이해하기 쉽도록 구성되어 있습니다.
1장 ~ 3장까지 총 3개의 장으로 구성되어 있습니다.
1장은 마이크로서비스 아키텍처에 대해 처음 접하는 독자들을 위해 마이크로서비스 아키텍처가 무엇인지에 대해서 설명하고 있습니다.
1장에서 마이크로서비스 아키텍처가 이해하기 어려운 이유를 저자 관점에서 서술하고 있는데, 공감이 가는 내용 입니다.
그리고, 직접적인 관련 없는 것들에 대해서 서술하고 있는 부분도 실제 마이크로서비스 아키텍처에 대해서 학습하면서 관점을 어디에 둘지 방향을 잡을때 도움이 됩니다. 다만, 마이크로서비스 아키텍처에 대한 예시들을 학습할 경우에는 필요한 내용들 입니다.
2장의 "어떻게 적용해야 할까" 를 통해서 자신이 진행하는 프로젝트 및 기업에 적용의 필요성을 찾아가는데 도움을 줄 수 있는 내용들로 구성되어 있습니다.
3장의 "데이터베이스를 분리한다고?"는 마이크로서비스 아키텍처에 대해서 "데이터베이스 분리"라는 주제를 통해서 적용 했을 경우의 장점과 적용해 가는 과정에 대해서 보여주고 있습니다.
2부, "마이크로서비스 아키텍처 적용하기"는 4장 ~ 7장까지 총 4개의 장으로 구성되어 있으며,
마이크로서비스 아키텍처를 적용할 서비스 선정 부터 설계 원칙 그리고 설계한 후 개발 진행까지 실무에 적용 할 수 있는 내용들로 구성되어 있습니다.
서비스에 대해서 적용 하는 부분에서 여러 유형들을 보여주는 부분에서도 자신이 적용하고자 하는 서비스와 비교해볼 수도 있고 간접 경험을 해볼 수 있도록 실무 기반에서 구성되어 있는건 좋은 것 같습니다.
[결론]
책은, 그림 및 표를 통해서 서술된 내용들을 함축 적으로 표현하고 있습니다.
책을 통해서 많은 것들을 보여주려하는 부분과 실무에 도움이 될 수 있는 부분들을 많이 보여주려 하다보니 기반 지식이 없는 상태에서 처음 보기에는 조금 딱딱 할 수는 있을 것 같습니다.
하지만,
마이크로서비스가 어떤 것인지 이해하기에 도움이 되는 책이며,
마이크로서비스 적용해 가는 부분에 대해 간접 경험 해볼 수 있는 책입니다.
그리고, 마이크로서비스 아키텍처를 적용하고자 할 경우 초기에 방향을 잡기 전 한번 읽어 보면 도움이 될 내용들이 많습니다.
예제 다운 경로
https://github.com/wharup/book-examples
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." |
https://www.hanbit.co.kr/store/books/look.php?p_code=B9403623796
'리뷰 > IT_책소개' 카테고리의 다른 글
O'REILLY MLOps 실전 가이드 : 한빛미디어 (0) | 2023.07.23 |
---|---|
O'REILLY 개발자를 넘어 기술 리더로 가는 길 : 한빛미디어 (0) | 2023.06.25 |
O'REILLY 머신러닝 시스템 설계 : 한빛미디어 (0) | 2023.05.29 |
전문가를 위한 C++ : 한빛미디어 (0) | 2023.04.24 |
전문가를 위한 C : 한빛미디어 (0) | 2023.03.27 |
O'REILLY 트랜스포머를 활용한 자연어 처리 : 한빛미디어 (0) | 2022.12.31 |
O'REILLY 온디바이스AI : 한빛미디어 (0) | 2022.11.27 |
O'REILLY 파이썬 기반 금융 인공지능 (Artificial Intelligence in Finance) : 한빛미디어 (0) | 2022.10.28 |
판다스 인 액션 (Pandas in Action) : 한빛미디어 (0) | 2022.10.03 |
그로킹 심층 강화학습 : 한빛미디어 (0) | 2022.08.29 |