모두의 한국어 텍스트 분석 with 파이썬 - 기초부터 챗GPT까지, 누구나 쉽게 시작하는 자연어 처리 모두의 시리즈
박조은.송영숙 지음 / 길벗 / 2023년 5월
평점 :
장바구니담기


한국어 텍스트 분석 방법을 종합한 책으로 KoNLPy에서 딥러닝까지 적은 분량에 대부분의 실전 기법을 알차게 담아낸 점이 인상적이다.

한국어 텍스트 분석을 처음 접하거나 다른 책이 어려워 새롭게 입문하고 싶다면 이 책으로 시작해 볼 것을 권하고 싶은 도서이다.

대략 300페이지 정도의 많지 않은 분량임에도 한국어 텍스트 분석에 필요한 기본 사항들을 놓치지 않고 잘 전달하고 있는 것 같다. 그동안 유사 도서들을 여러권 봤는데 이 정도 분량에 이만큼의 내용을 전달하는 경우는 흔치 않았던 것으로 보인다.

책은 크게 두 부분으로 구성된다. 1장에서 4장은 데이터 분석 및 파이썬을 다루는데 필요한 기초 지식을 소개한다. 코랩 환경을 구성하여 실습하는 것에서부터 문자열 연산 위주의 Python 기본 문법이 소개되어 있다.

특히 데이터 분석 시 가장 많이 활용되는 세가지 라이브러리 Numpy, Pandas, sklearn이 매우 짧게 소개되고 있는데 생각해보면 여기 소개된 것만 알아도 데이터 분석의 큰 흐름엔 지장이 없는 것 같다.

예전에 당장 사용하지 않을 불필요한 기능을 어렵게 익혀 쉽게 잊혀졌던 허탈감과 비교해보면 일단 이 정도만 챙기고 출발한 후 후반부에 이어질 실습 등을 통해 살을 붙여 나간다면 기억에도 오래남고 더 재미있고 효율적인 학습에 도움이 될 것 같다는 생각이 들었다.

4장부터 본격적으로 텍스트 분석이 시작되는데 후반부에 이어질 가장 기초적인 지식인 BOW나 TF-IDF의 기본 지식 및 실습이 소개된다. 쉽게 말하자면 전자는 단어의 빈도수를 체크하는 개념이고, 후자는 여러 문서에 공통적으로 등장하는 단어보다는 특정 문서에 자주 등장하는 단어의 중요도를 높게 평가하는 개념이라 생각하면 된다.

5~9장은 후반부에 해당한다. 주로 특정 주제를 가진 실습문제를 풀어나가는 과정으로 이어지는데 이 부분들이 이 책의 백미라고 할 수 있다. 뉴스 타이틀을 분류하는 것에서 인프런 댓글 분석에 이르기까지 각각의 데이터 특성과 분석 목적에 따라 새로운 기법들이 등장한다.

뉴스 타이틀 분류 예제의 경우 가장 기본적이고 쉬운 분류 모델을 활용한다. 특히 KoNLPy 라이브러리를 활용한 전처리 방법에서 배울 것이 많다.

KoNLPy

불용어 등을 제거하는 전처리 과정이나 형태소 분석기를 사용한다는 점이 흥미롭다. 다른 언어와 달리 한국어의 특징에 맞게 전처리를 돕는 라이브러리이므로 한국어 분석에 있어서는 반드시 알아둬야 할 지식들이기도 하다.

국민청원 데이터 파트에서는 다양한 시각화 방법을 마음껏 즐길 수 있다. 그동안 꽤 시각화를 해왔다고 생각해왔지만 이 부분에서 몰랐던 새로운 기법을 익힐 수도 있었다.시각화

또한 이 장에서는 구글 드라이브를 활용하여 데이터를 입출력한다는 점이 독특한 부분이며 머신러닝 분야에서 비교적 최신 기법이면서 성능이 좋은 LightGBM 모델을 활용하여 앙상블 기법을 맛볼 수 있다.

120다산콜재단 토픽 모델링 예제에서는 본격적으로 확룰이나 딥러닝과 관련된 전문적인 기법들이 활용된다. 잠재 디리클레 할당이나 RNN, LSTM 모델도 등장한다. 딥러닝 실습을 통해 NLP 분야에서 딥러닝의 위력이 얼마나 뛰어난지 체감할 수 있는 예제이기도 하다.딥러닝

물론 딥러닝의 모델 하나하나도 처음 접하면 배우고 알아둬야 할 것이 너무 많기에 이 책의 예제만으로는 부족한 것이 사실이지만 일단 딥러닝으로 무엇을 해낼 수 있는지와 더불어 프로그래밍의 디자인 패턴 처럼 대략 이런 패턴으로 딥러닝을 설계, 개발한다는 정도의 블루 프린트를 익힌다고 생각하면 좋을 듯 하다. 차후 본격적으로 딥러닝 개발에 좋은 설계도 역할을 할 수 있는 예제라 생각했다. 또한 pyLDAvis 라이브러리를 이용한 시각화가 소개되어 있어 이 책은 확실히 시각화 파트로 배울 점이 많은 책이라는 생각이 들었다.

인프런 이벤트 댓글 분석 예제에서는 군집화와 같은 비지도 학습이 소개된다. 더불어 그동안 배운 것들을 실제 업무에 적용해 볼만한 주제를 찾는다거나 당장 도움이 될만한 분석 기법을 만드는데 도움이 되는 장이라 생각했다.

마지막으로는 ChatGPT나 뤼튼을 활용하는 방법도 간략히 소개되어있다. 뤼튼은 잘 알지 못했는데 한국어 생성 LLM 서비스인듯 하다. 덕분에 한번 이용해봐야겠다.

이 책은 특히 저자 분의 실력이 검증된 분이기에 더욱 추천하고 싶은 책이기도 하다. 예전에 박조은 님의 인프런 강의를 들은 적이 있었는데 시원시원하게 유창한 설명과 더불어 전광석화와 같은 속도로 코딩 타이핑을 따라가며 저자분의 생각을 읽어나간적이 있다.

강의 전달력이 너무 좋으시고 데이터 분석 분야로 아는 것이 많으신데다 그간 고민한 것을 전달하는 능력이 일품인 전문가라는 생각이 들었는데 그 실력과 경험이 이 책에 녹아있어서인지 책의 내용과 전달력 또한 역시 기대한 바와 같았다.

한국어를 처음으로 분석하는 분은 이 책을 일독할 것을 권하고 싶다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
관찰 가능성 엔지니어링 - 오픈 소스를 활용한 분산 애플리케이션 계측부터 오류 추적과 분석까지 / OpenTelemetry 사용법 수록
알렉스 보텐 지음, 노승헌 옮김 / 한빛미디어 / 2023년 7월
평점 :
장바구니담기


OpenTelemetry의 구축, 연동, 활용을 통해 관찰 가능성을 쉽게 배울 수 있게 구성된 책으로 실무에 바로 OpenTelemetry를 적용해 볼 수 있다는 점이 매력적이다.

관찰 가능성의 개념이 무엇인지 그리고 관련 기술이 어떻게 발전해왔는지 소개하는 책으로 특히 관찰가능성 기술 분야의 대표적인 오픈 소스인 OpenTelemetry의 구축 및 활용법을 다루고 있다.

몇 번의 클릭만으로 확장 가능한 우수한 인프라를 활용하여 개발에만 집중할 수 있는 시대가 왔다. 서버리스, 클라우드, 데브옵스 등은 이런 것들을 가능하게 해주는 개념이다.

언제나 그렇듯 개발자에게 많은 것을 몰라도 서비스를 가능하게 해주는 기술들의 장점 이면에는 단점도 숨어있다. 보이지 않는 블랙박스는 때로는 신경쓰지 않아도 되는 편리함을 주지만 다른 한 편으로는 그 내부의 동작방식을 알 필요가 있게 되었을 때 답답함이라는 단점을 선물한다.

분산 환경으로 마이크로서비스가 유행하는 요즘은 특히 각 서비스들이 쉽게 작동하지 않거나 의도한대로 작동하지 않는 경우가 흔하다.

바로 이런 문제점을 해결하고자 내부적으로 운영 환경에서 어떠한 일들이 벌어지고 있는지를 쉽게 추적하고자 노력하는 과정에서 관찰 가능성이 대두되었고 이 기술의 대표적인 오픈소스로 OpenTelemetry가 자리매김 하고 있다.

결론부터 말하자면 이 책은 관찰 가능성과 OpenTelemetry의 구축 및 활용법을 다룬 책이다.

개인적으로는 5년 전 즈음 사내 빅데이터 분석 환경을 구성하기 위해 빅데이터 생태계의 다양한 오픈 소스들을 직접 설치하고 운영할 기회가 있었다.

그 중 Fluentd, 로그스태시, 플럼 같은 것들을 활용하면서 로그 수집이 매우 편리해짐을 느꼈다. 언젠가 사내의 레거시 시스템들을 통합 로그 관리할 수 있는 별도 레이어를 구축해봐야겠다는 구상을 했고 업무 우선 순위에 밀려 완성시키지는 못했지만 구축 시도 과정에서 관련 지식들을 다양하게 습득할 수 있었다.

덕분에 본 도서를 한층 깊게 이해하는 데 도움이 되었고 통합된 로그 분석 환경을 구축하고자 개인적으로 골머리 앓았던 많은 부분들을 OpenTelemetry가 어떻게 현명하게 대처하고 있는지 엿볼 수 있었기에 이 책을 더욱 흥미롭게 읽을 수 있었다.

이 책에서는 구축, 연동, 활용 방법을 다루지만 OpenTelemetry을 어떻게 구현했는지는 다루고 있지 않기에 내부 동작 방식을 정확히는 알 수 없다.

다만 구축 및 활용 과정의 가이드를 보며 개인적으로 했던 고민들을 오픈소스 기여자들이 어떤 접근 법으로 해결했는지를 엿볼 수 있어 관찰 가능성과 OpenTelemetry에 대한 배움 외에도 설계 측면에서 소득이 많아 즐거웠다.

이 책을 읽기에 앞서 여러 사전 지식들이 필요하다. 주 언어로 Python의 기본 문법 및 웹 관련 기술들을 알아 두어야 OpenTelemetry를 연동하는 방법이 수월하게 읽힐 것이다.

더불어 도커나 쿠버네티스와 같은 오늘날의 마이크로서비스를 가능하게 만들어준 인프라 기반 지식들이 필요하고 실제로 실습도 도커 환경에서 진행하기에 관련 기술을 활용한 실습 경험이 없다면 실습을 따라하기에 무리가 있을거라 생각한다.

OpenTelemetry의 다양한 기능을 살펴보는 것 보다는 아래 그림과 같은 실습 환경 구성에 대한 개요를 살펴보는 것이 본 도서의 큰 그림을 잡는데 도움이 될 것 같다.실습환경

grocery-store는 특히 OpenTelemetry의 다양한 기능을 확인할 수 있도록 다양한 조작을 걸치며 변화시킨다는 점을 미리 알면 도움이 될 것이다. 프로메테우스, 예거, 그라파나와 같은 유사 생태계의 오픈 소스들의 도움을 받아 본연의 목적을 충실히 활용할 수 있도록 구성된 부분은 흥미로운 부분이다.

또한 OpenTelemetry 환경에서 활용할 수 있는 라이브러리는 매우 다양하다. 거의 왠만한 환경은 거의 다 지원한다고 보면 된다. OpenTelemetry의 가장 큰 장점 중 하나이다.지원환경

아래 그림은 실제 Python 환경에 어떻게 적용할지를 가장 잘 보여주는 도식이다.적용방법

이러한 대략적인 과정들을 거쳐 OpenTelemetry를 구축하고 레거시와 연동에 성공했다면 이렇게 수집한 데이터를 어떻게 활용할지도 중요한 부분이 된다. 전자의 내용이 파트2에, 후자의 내용이 파트3에 담겨있다. 참고로, 파트1은 관찰가능성의 개념과 관련 기술이 그동안 어떻게 발전해왔는지를 소개한다.

OpenTelemetry의 컬렉터는 아래 그림에서 보는 바와 같이 일종의 브로커 역할을 수행한다. 다양한 또 다른 오픈소스와의 연동을 통해 확장성을 제공 가능하다는 것이 매력적이다.컬렉터

아래 그림은 그라파나를 활용한 대시보드와 경고창 화면인데 OpenTelemetry을 중심으로 한 방대한 생태계가 놀랍다. 관련 기능들 하나하나 익숙해지는 데에도 많은 시간이 필요할 것 같다.그라파나

정리하자면 이 책은 OpenTelemetry를 구축, 활용하는 과정을 통해 관찰가능성이 무엇인지 확실하게 이해하고 실무에 관찰가능성을 도입할 수 있는 방법을 제시한다.

마이크로서비스의 블랙박스 이슈로 골치 썩어본 경험이 있거나, 운영 환경의 분리 및 무지로 인해 고통을 겪고 있거나, 관찰 가능성에 관심 많은 독자에게 꼭 추천하고 싶은 책이다.

어려운 개념보다는 OpenTelemetry를 직접 만지고 다뤄봄으로써 관찰 가능성의 개념을 쉽게 익힐 수 있음은 물론 실무에 바로 적용하여 편리함을 만끽할 수 있기 때문이다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
프런트엔드 개발자를 위한 테스트 가이드 - 셀레늄, 사이프러스, 퍼피티어, 플레이라이트 오픈소스 테스트 자동화 프레임워크 교과서
에란 킨스브루너 지음, 김완섭 옮김 / 제이펍 / 2023년 7월
평점 :
장바구니담기


프런트엔드 진영의 테스트 가이드로 오픈소스 테스트 프레임워크인 셀레늄, 사이프러스, 플레이라이트, 퍼피티어 등의 구체적인 사용법을 다루고 있다는 것이 특징이다.

프런트엔드 기술은 서버보다는 브라우저에 종속적이기에 백엔드에 비해 공개적으로 테스트 할 수 있는 프레임워크가 흔한 것으로 알고 있었지만 이 책을 통해 현 시점 프런트엔드 시장에서 주도적인 위상을 차지하는 대표적인 프레임워크를 알게 되었다.다운로드 횟수

더불어 프런트엔드는 과거 기준으로는 적어도 백엔드에 비해 테스트의 중요성이 부각되지 않은 것이 사실이나 모바일 등장 이후 대규모 변화를 겪고 있어 생각보다 많은 부분을 신경써야 한다는 것도 새롭게 알게 된 사실이다.

모든 링크가 제대로 동작하는지 테스트하는 것에서 시작하여 반응형 웹 등의 접근성 측면은 물론이고, 보안, API, 성능에 이르기까지 테스트 할 사항은 많지만 이를 자동화하여 편의성을 제공하는 방법을 찾기는 쉽지 않다.

그런 측면에서 이 책의 파트 2 ~ 3에 걸친 테스트 프레임워크의 활용법에 대한 소개는 이 책이 가지는 가장 큰 장점이라 생각한다.

이 책이 소개하는 프레임워크로는 오픈소스 테스트 프레임워크에 해당하는 셀레늄, 사이프러스, 플레이라이트, 퍼피티어 등이 있고, 코드리스 툴로는 퍼펙토 스크립트리스, 테스팀, 메이블 등을 소개한다.

특히 오픈소스 테스트 프레임워크의 기본 기능과 고급 기능을 실습을 통해 세부적으로 소개하고 있는데 이를 잘 정리한 표는 다음과 같다.기능비교

접근성, 성능, 시각적 테스트 측면에서는 대동소이하게 모두 훌륭한 기능을 지원하는 편인데 고유기능은 각기 지향하는 포커스가 다르기에 현업에서 집중하고자 하는 기능을 담고 있는 프레임워크를 선택하는 것이 좋은 선택이 될 것 같다.

개인적으로 프런트엔드가 주전공 분야는 아니기에 이 책에 소개된 프레임워크의 기능을 십분 이해하고 제대로 활용하기엔 가진 실력이 부족했다. 책에서 다양한 테스트를 다뤄주고는 있지만 짧은 설명의 실습으로 그치기에 구체적으로 테스트 결과 및 증상에 따른 해결책이 소개되지 않은 것은 아쉬운 부분이었다.

그럼에도 한 떄나마 소극적으로 프런트엔드 프로젝트에 가담했던 경험이 있는 입장에서 그리고 아직도 프런트엔드 기술에 관심을 갖고 지켜보는 입장에서 테스트 프레임워크를 집대성하여 정리한 책은 거의 찾아보기가 힘들기에 이 책의 가치를 높게 평가하고 싶다.

특히 구글 개발자 도구의 프로토콜을 활용하는 퍼피티어나 플레이라이트 등의 도구는 다루기가 쉬워 향후 자주 활용해 봐야겠다는 생각이 들었다.퍼피티어

또한 이 책은 오픈소스 테스트 프레임워크를 주로 다루고 있지만 그 외에도 프런트엔드 품질을 위한 많은 조언을 담고 있다. 특히 테스트 프로세스 측정을 위한 애자일 방식의 27가지 지표나 Miro 마인드맵 툴을 활용한 테스트 전략 예시는 짧은 지면에도 불구하고 많은 인사이트를 얻을 수 있었다.

그 외에도 OWASP 보안 취약점에 대한 고려, 프런트 엔드 플랫폼에 대한 고민, 세부적인 테스트 유형의 항목 정리 등 최신 트렌드에 맞춰 프런트엔드 진영이 필수적으로 알아야 할 기술 지식들을 다양하게 습득할 수 있었다.

IT 어느 분야에서나 테스트는 늘 우선순위에 조금씩 밀리는 것이 현실이나 차후 기술적 부채를 감안한다면 테스트는 피할 수 없는 필수적인 과정임을 다시 한 번 느낄 수 있었고, 프런트엔드 테스트 자동화를 원하는 개발자에게 이 책을 추천하고 싶다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
자동화 실무 사례로 배우는 구글 앱스 스크립트 - 대시보드, 이메일, 재고 관리 등 실전 프로젝트로 익히는 스프레드시트 & GAS 프로그래밍
박용 지음 / 제이펍 / 2023년 7월
평점 :
장바구니담기


구글 스프레드 시트와 같은 워크스페이스 제품을 100점 만점으로 활용하는 방법을 다룬 책으로 특히 구글 앱스 스크립트를 활용하여 더욱 풍부하게 기능을 즐길 수 있는 방법들이 소개되어 있다.

구글 스프레드 시트, 캘린더 등 구글 워크스페이스를 만점 수준으로 활용하는 방법을 담은 책이다.

특히, 후반부에는 구글 앱스 스크립트를 활용하여 워크스페이스 도구 간 정보를 공유하거나 웹서버 없이도 간단한 웹프로그래밍을 만들 수 있도록 구글 앱스 스크립트의 기초 문법을 배워 후원 문서 발행 프로그램을 만들어보는 과정을 거친다.

이 책을 보기 전까지는 스스로 구글 워크스페이스를 제법 잘 활용하고 있다고 착각한 것 같다.

예전에 구글 설문지를 활용할 일이 있었다. 일반적인 설문지를 만들어 배포하는 것은 하나도 어려울 것이 없었지만 회사에 적을 두지 않은 외부인이나 익명으로 작성한 글을 거를 필요가 있다는 것이 문제였다.

그때 처음으로 구글 앱스 스크립트를 사용하게 되었는데 배포 당시 해당자의 사번과 같은 특정 고유값에 대한 암호값을 함께 전송 후 설문 응답이 수신된 데이터의 암호값이 고유값과 불일치 하는 경우 설문 응답 모데이터에서 제외하는 방법을 사용하여 꽤 요긴하게 활용한 적이 있다.

그런 특별한 사례가 아니더라도 구글 워크스페이스는 클라우드 기반의 서비스이기에 다수의 인원이 동시에 접속하여 수정이 가능하다는 장점 및 로컬 PC 및 서버 간 동기화를 고려할 필요가 없었기에 늘 애용해왔다.

하지만 이 책에 나온 내용을 하나씩 실습하며 그동안 구글 워크스페이스에서 제공하는 기능의 10%도 채 제대로 활용하지 못하였음을 알고 꽤 충격을 먹었다.

너무 많은 것들을 새로 배웠지만 가장 인상적이었던 대표 기능을 꼽으라면 3가지 정도로 요약할 수 있을 것 같다.

우선, 간단한 웹프로그램을 개발할 수 있다는 사실에 놀랐다. 웹프로그래밍을 만드는 거야 크게 어려운 일은 아니지만 문제는 이를 운영할 수 있는 서버나 클라우드 환경 등 인프라로 인한 비용을 감당하기 어려워 쉽게 운영해오지 못했다.웹프로그래밍

이 책의 가장 큰 챕터에 소개되는 후원자 문서 발행 프로그램의 실습을 그대로 따라하다보면 간단한 기능의 웹페이지를 쉽게 만들 수 있다. 결과를 스프레드시트에 저장하며 DB처럼 활용하고, 구글 독스에 연동하여 리포트로 발행하는 등 구글 워크스페이스 제품군의 기능을 엮어 완성된 형태의 웹 서비스를 쉽게 만들 수 있다는 사실에 놀랐다.

데이터 분석이나 AI를 학습하며 구글 코랩을 활용해 실시간으로 원하는 AI 이미지들을 만들어 내곤 했었는데 이런 전통적인 웹 프로그램도 서비스 가능한 형태로 만들 수 있다는 사실에 놀랐다.

그 과정에 필요한 구글 앱스 스크립트는 자바스크립트와 문법도 매우 유사하고 이 책에서 구글 라이브러리의 활용법을 친절하게 설명해주고 있어 웹 프로그래밍을 경험한 사람이라면 큰 어려움 없이 간단한 웹프로그램을 개발하여 활용할 수 있을 것이다.

다음으로 유익했던 것은 스프레드시트를 DB처럼 활용하는 기능이다. 주로 Sqlite 같은 DB를 개인적으로 활용하지만 인터넷에 연결되지 않아 동기화 측면에서 늘 불편했었는데 이젠 스프레드시트를 편리하게 이용할 수 있을 듯 하다.DB화

Python과 Pandas를 활용한 데이터 분석이 꽤 편리해졌음에도 아직도 Sql을 활용하는 것 만큼 편리하진 않다. 스프레드 시트에 SQL을 활용할 수 있다는 것을 이번에 처음 알았는데 엑셀과 비슷한 스프레드 시트의 직관적이지 못한 기능들 때문에 난이도 있는 사용을 꺼려왔는데 SQL과 거의 유사한 문법이 지원된다는 것을 알게되어 너무 반가웠다.

마지막으로 엑셀과 비교 시 기능이 대동소이하지만 엑셀과 똑같은 기능을 찾으려면 어떻게 해야 하는지 난감한 적이 많았다. 이 책의 1, 2부를 따라하다보니 엑셀과 비슷한 기능을 수행하는 기능들이 어디 숨어있는지 명확히 알 수 있었다.스프레드시트

아무래도 구글 클라우드 제품중에서도 스프레드시트는 가장 많이 애용되는 서비스일 것이기에 저자 분도 스프레드시트에 익숙할 수 있도록 상당한 지면을 할애하신 것 같다. 덕분에 기초에 충실할 수 있어 좋았고 전달력 좋은 본 도서 덕분에 늘 미뤄왔던 엑셀과의 기능 비교 및 습득을 이 참에 정리해 볼 수 있어 좋았다.

이 책은 구글 클라우드 및 워크스페이스의 기능을 100%에 가깝게 활용하고 싶은 분 혹은 개인적 업무의 자동화 등을 꿈꾸는 분께 꼭 추천하고 싶은 책이다. 이 책에 소개된 기능을 충실히 학습한다면 스스로 해야 할 잡무들을 효율적으로 개선하는 데 많은 도움이 될 것이다. 더불어 프로그래밍 세계에 입문하는 일반인에게도 추천하고 싶다.




댓글(0) 먼댓글(0) 좋아요(1)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
마이크로서비스 아키텍처 구축 - 대용량 시스템의 효율적인 분산 설계 기법 | MSA 핵심 용어집 수록, 설계/아키텍처 분야 아마존 베스트셀러, 전면 개정판
샘 뉴먼 지음, 정성권 옮김 / 한빛미디어 / 2023년 6월
평점 :
장바구니담기


처음 접했을 때 신선한 충격을 주었던 마이크로서비스 아키텍처를 학습할 수 있는 책으로 도입, 설계, 구현 등에 있어 반드시 참조해야 할 필독서라 평하고 싶다.

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

늘 그렇듯 무언가의 정의를 내리는 것은 쉽지 않은 일이다. 추상적으로 기술하면 진실에 가까워지지만 내용이 선뜻 와 닿지를 않고 구체적으로 표현하면 이해하기는 쉽지만 정의에 가까워지기 힘들고 내용이 길어진다.

그럼에도 마이크로서비스를 처음 접하는 독자를 위한 리뷰에서는 일부분이라도 구체적으로 기술하여 독자의 이해를 돕지 않는 것이 우선이라 생각되기에 나름의 정의를 내려보려 한다.

그러한 관점에서 개인적으로는 RestAPI의 결합체 혹은 DB를 공유하지 않는 서비스들의 집합 정도로 정의를 내리고 싶다. 개발자 입장에서 그나마 가장 가시적인 정의라 생각하기 때문이다.DB

책에 등장한 예시와 같이 배송, 주문관리, 재고 등 각각 하나의 마이크로서비스를 결합하면 전자 상거래 시스템을 구축할 수 있는 개념이자 이에 필요한 아키텍처다.정의

한편 이 책에 기술된 마이크로서비스의 정의는 다음과 같다.

독립적 변경, 배포, 릴리스를 하기 위한 분산 시스템에 대한 접근 방식 중 하나.

좋은 책들이 그렇듯 이 책 또한 마이크로서비스의 개념에 대한 확실한 이해를 돕기위해 여러 장치를 사용한다. 예시, 비교, 특징, 장점, 단점 등 여러 각도에서 마이크로서비스를 살펴봄으로써 이해를 돕게 해준다.

예시의 경우 앞서 이미 언급하였고 비교의 경우 SOA나 모놀리식 아키텍처와 비교하며 개념 정의의 좌표를 조금 더 구체화한다. SOA의 태생 목적에 더욱 충실하기 위해 등장한 개념이란 것과 데이터베이스를 공유하며 프로세스 경계선으로 모듈이 나뉘는 모놀리식과의 차이점을 통해 마이크로서비스의 개념을 구체화 할 수 있게 해준다.

물론 배포를 독립적으로 수행할 수 있다거나, 기술보다는 비즈니스 모델링을 우선한다는 점, DB를 공유하지 않는 대신 자기 상태를 공유한다는 점, 하나의 서비스가 자신의 두뇌 용량을 초과하지 않을 정도로 작개 쪼갠다는 점 등의 특징도 설명하고 있어 다양한 각도에서 마이크로서비스의 본질을 생각하게 해준다.

이를 돕는 기술로 라이트스텝이나 허니코움의 제품 들이 제공하는 로그 집계 및 분산 추적 기술, 쿠버네티스, 스트리밍, 서버리스 등의 기술이 생태계를 풍부하게 한다고 소개하고 있어 보다 구체적인 감을 잡는 데 도움을 준다.

그럼에도 엄청난 변화를 수반하는 스타트업 시스템이나 보안에 민감하다거나 전통적인 RDBMS가 자랑하는 ACID를 핵심으로 하는 시스템에는 적합하지 않을 수 있다는 한계를 분명히 명시한다.

이렇듯 풍부하고 다양한 관점을 수반한 정의 및 기술은 마이크로서비스의 본질을 이해하는 데 충분하고도 넘친다는 생각이 들었고 그동안 애매하게 알고 있던 마이크로서비스의 개념 좌표를 머릿속에서 좀 더 명확하게 배치할 수 있게 많은 도움을 주었다.

한편 생각해보면 이는 단지 서비스 아케텍처에 국한되는 유행은 아닌 것 같다. 일상에서도 독립적인 영화나 드라마는 넷플릭스, Wavv와 같은 스트리밍 서비스에서 결합하고 있고 다양한 1인 기업들이 뭉쳐 거대한 서비스를 지탱하게 해주는 등의 사회적인 현상으로도 클라우드나 쿠버네티스와 같은 기술적인 영역에서도 마이크로서비스와 유사한 장점을 극대화하고자 하는 움직임은 거의 모든 영역을 장악해 나가는 듯 하다.

어쨌든 이 책은 개인적으로 처음 개념을 접했을 때 신선한 충격을 주었던 마이크로서비스가 무엇인지 이해하고 제대로 활용할 수 있는 안목을 갖추는 데 큰 도움을 준 명작이다.

이미 몇 년 전에 발간된 책이지만 이번 개정판은 그동안 이 개념이 발전하는 과도기에 있던 애매모호한 위치를 명확히 바로잡는 데 많은 도움을 준다. 가히 그동안 마이크로서비스 개념을 널리 알리고 사람을 모아 발전할 수 있게한 견인차 역할을 한 책 답게 명작이라는 생각이 들었다. 이 개념을 이해하는데 이 책을 통하지 않는다면 다른 방법으로는 너무 많은 시간과 노력을 낭비하게 될 것 같기 때문이다.

워낙 훌륭한 책임에도 그 중에서도 돋보이는 특징 몇가지를 소개해보고자 한다.

첫째, 보다 전통적이고 친숙한 모놀리식 시스템을 분해하는 과정으로 구체적으로 마이크로서비스를 어떻게 구축하고 설계해야 할지 쉽게 감을 잡을 수 있었다. 특히 동기 대 비동기 방식 구현을 어떻게 설계하는지 검토하는 과정은 본질 개념을 이해하는 데 많은 도움이 되었다.

둘쨰, DB 공유에 대한 독립성을 유지하면서 ACID를 어떻게 보장할 것인지에 대해 평소 늘 궁금했던 주제였고 데이터에 관심이 많은 사람으로써 호기심이 많은 주제였는데 명확하게 이해할 수 있었다. 특히 사가 패턴을 말로만 듣다가 구체적인 설계 방법과 원리가 소개되어 있어 인상적이었다.DB공유

셋째, 최근 트렌디한 기술이나 개념, 아키텍처를 학습하는 데 도움이 된다. 마이크로서비스 아키텍처만 다루는 것이 아닌 생태계의 관련 기술을 대부분 망라하고 있어 마이크로서비스에 관심없는 독자도 유익하게 활용할 수 있을 만한 다양한 기술들이 소개된다. 멀티태넌시와 페데레이션이나 심지어는 웹어셈블리와 같은 개념도 상세하게 소개해주고 있어 유익했다.기술스택

넷쨰, 콘웨이 법칙 등 유명 인사들의 발언이나 주장과 관련된 레퍼런스들이 다양하게 소개되고 있다. 이는 저자가 관련 분야에 정통함은 물론 긴 세월 동안 객관적인 시각을 견지하기 위해 노력해왔음을 보여주는 반증이라 생각한다.

그 외에도 보안이나 사용자 인터페이스 등 마이크로서비스를 소개하는 정도에 그치지 않고 추후 확장해서 고민하고 그 과정을 통해 시행착오와 비용을 크게 아껴줄 수 있도록 노력한 구성이 감동적이었다.

이 책은 마이크로서비스 구축을 검토한다거나 개념을 학습하는 데 있어 바이블이라 평하고 싶다. 마이크로서비스를 학습하면서 다양한 생태계의 기술 현주소를 파악하고 스스로의 지식을 업그레이드 하는 데 있어 큰 도움이 되는 양서이기에 반드시 일독을 권하고 싶다.


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo