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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
Do it! 점프 투 파이썬 - 중학생도 첫날부터 실습하는 초고속 입문서, 전면 개정 2판 Do it! 시리즈
박응용 지음 / 이지스퍼블리싱 / 2023년 6월
평점 :
장바구니담기


Python이나 프로그래밍을 익히는 데 있어 가장 먼저 추천하고 싶은 책.

프로그램을 처음 배우는 초보자나 Python을 처음 배우는 초보자에게 가장 먼저 읽을 책으로 본 도서를 권하고 싶다. 사고의 흐름에 따라 이해를 돕는 저자의 전달력, 2차원의 책을 입체적으로 전달하는 구성, Pythonic 추구, 실무에서 접할 수 있는 예외나 에러를 거의 다 입문 과정에 녹인 점, 국내서로 번역서의 정보전달 왜곡이나 한계가 없다는 점 등 Python 입문서로는 가히 최고의 도서로 손 꼽고 싶다.

프로그래밍에 구글링은 빼 놓을 수 없는 과정인데 Python을 처음 배우는 사람이 구글링 검색결과로 자주 마주하는 것이 스택오버플로우와 이 책의 위키독스 버전 페이지일 정도이다. 알게모르게 누구나 검색을 통해 이 책의 내용이 담긴 페이지를 한 번 쯤은 마주했을 것이다.

비록 후반부에 소개되어있지만 이 책을 가장 잘 소개하는 예제로 메모장 만들기 실습을 꼽고 싶다.

먼저 메모장 기능에 필요한 기능으로는 입출력이 있다. 즉, 쓰고 보는 기능이 필요한데 이를 sys 모듈로 인자를 받아들이는 부분과 print 내장 함수로 출력하는 가장 심플한 예제를 만들어 보면서 기능을 확장해 나간다.메모장

이후에 인풋으로 전달할 세부 옵션 기능을 추가하고 입력받은 내용을 출력하여 파일로 저장하며 그 파일을 다시 읽어 보여주는 파일 처리 기능으로 확장한다.메모장2

이 과정을 통해 테스트 드리븐 TDD의 구성과 Pythonic, MVP 기법 등을 저절로 익힐 수 있다. 책의 모든 실습 예제에 이런 철학이 가미되어있어 특별한 노력없이도 좋은 코딩 습관과 프로그래밍 언어론을 묵시적으로 습득하게 된다.

빼놓을 수 없는 또 다른 장점으로 실제 현업에서 프로그래밍 중에 만나게 될 다양한 장애물들과 예외 상황이 모두 실습으로 구현되어 있다는 점이다. 보통의 기본서는 문법 구현 자체에만 집중하지만 막상 실전 프로그래밍을 구현하다보면 기본서만으로는 한계가 있다.

새로운 기능에 대한 지식이 없어 막히는 경우도 흔하지만 이미 알고 있는 문법임에도 다양한 상황이나 경험이 축적되지 못해 디버깅에 실패하는 경우도 프로그래밍 세계에 접근하는데 큰 장애물이 되곤 한다. 이 책은 그런 에러를 겪는 과정이나 경험을 예제로 미리 경험하게 해준다. 그 과정에서 하나의 문법도 정확성있게 확실히 익힐 수 있다.

또한 이 책에 소개된 제너레이터, 데코레이터와 같은 개념은 타 프로그래밍 언어론에도 도움이 되는 고급 지식으로 추후 고급서를 익히는 데 도움이 될 수 있는 징검다리 역할을 담당한다.데코레이터

뿐만 아니라 정규표현식은 어떤 언어에서도 유용하게 활용할 수 있는 방법인데 입문자들이 중급자로 넘어가는 데 가장 어려워 하는 부분 중 하나이다. 매우 적은 분량으로 빠르고 쉽게 정규표현식에 입문할 수 있음은 물론 이 책 부록으로 등장하는 ChatGPT 활용과 병행한다면 예전 보다는 훨씬 쉽게 익힐 수 있을거라 생각한다.정규표현식

개인적으로는 Python을 본격적으로 시작한 것은 2016년 경인데 그 때 입문하면서 이 책으로 많은 도움을 받았다. 충분히 8년 연속 베스트 셀러에 오를만한 자격이 있는 책이라 생각한다. Python을 처음 익히는 데에는 이 책과 더불어 효율적 개발로 이끄는 파이썬 실천 기술을 권하고 싶다.

결론적으로 참 쉽게 이해할 수 있도록 구성된 저자의 전달력이 돋보이는 책이기에 프로그래밍의 세계에 입문하는 이라면 꼭 한 번 읽어볼 것을 권하는 바이다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
행동 데이터 분석 - R과 파이썬으로 시작하는 행동 데이터 분석 가이드
플로랑 뷔송 지음, 시진 옮김 / 한빛미디어 / 2023년 5월
평점 :
장바구니담기


데이터 분석 그 중에서 특히 인간의 의도가 무엇인지 분석하는 행동 데이터 분석을 다룬 책으로 현대적 인과관계 분석 방법 및 엄밀하진 않지만 구전으로 전해오는 실무 비법들을 공개한다.

상관관계는 인과관계가 아니다.

아이스크림이 많이 팔릴수록 상어가 사람을 많이 공격하니, 아이스크림을 덜 팔면 상어가 인간을 덜 공격할 것이다.

말도 안되는 명제임에 틀림없음에도 분명 데이터 분석 세계에서는 흔히 일어날 수 있는 결론이다. 아이스크림 판매량과 상어의 공격 빈도는 계절별로 놀라울 정도의 상관성을 갖기 때문이다.

두 데이터의 패턴은 일치하지만 저런 어리석은 결론이 도출된 결정적인 이유는 인과관계가 결여되어있기 떄문이다. 무엇 때문에 아이스크림이 많이 팔렸는지, 무엇 때문에 상어에게 공격을 당하는지 찾아본다면 쉽게 위 결론을 부정할 수 있다.

문제는 위 명제가 상식에 의해 참이 아니라는 나름의 믿음이 있기에 오류를 발견할 수 있다는 점이다. 이 책에 등장하는 예제처럼 무엇때문에 매출이 증가했는지, 혹은 할인 프로모션이 과연 매출 상승에 도움을 준 것이 사실인지와 같은 결론을 알지 못하는 명제를 맞딱드린다면 저런 우를 범하기 쉬워진다.

이런 문제를 해결하고자 이 책에서 도입한 기법이 인과관계 기법이다. 위에 언급한 “무엇”이 무엇인지를 찾기 위해 즉, 원인을 찾기 위해 데이터 분석에서 사용할 수 있는 다양한 실용적인 실무 기법이 소개된 것이 이 책의 가장 큰 장점이다.

교란 데이터를 찾아내는 기법이 그 중 하나이다. 단순히 아이스크림의 판매량이 기온이라는 원인에 의해 영향을 받는 것으로 분석하여 모델을 만들고 계절 특성이 타지 않는 갑작스런 기온 상승에 본 모델을 활용하여 재고량을 비축하는 과정에서 모델의 예측이 어긋나는 경우를 그 예시로 들고 있다.

사실 판매량은 기온 외에도 특정 계절에 학생들이 방학을 맞이하여 판매량이 늘었다는 또 다른 원인이 숨어있었다는 사실을 밝히고 교랸 변수를 찾다보면 인과관계를 찾아내는 과정은 결코 쉬운 일이 아님을 깨닫게 된다.

인간의 복잡한 마음이 단순하게 규명되긴 쉽지 않기에 그 과정을 도식화 하는 과정을 통해 모델의 정확성을 높이고 단순화하여 이해하기 쉽게 만들 수 있는 여러 기법이 소개되는데 그 중 가장 먼저 등장하는 것이 인과관계 다이어그램이다.

특히 사슬, 분기, 충돌이라는 세가지 기본 구조의 소개가 인상적이었다. 사슬이란 기온이 아이스크림 매출을 올리고, 아이스 크림 매출이 도넛 매출을 따라 올리는 연쇄적인 유발 관계를 의미한다. 이러한 사슬은 확장도 가능하고 축소도 가능하다.

분기란 기온이 아이스크림 매출을 올리기도 하지만 아이스커피의 매출을 올리기도 하는 관계를 의미한다. 반면 충돌은 2가지 이상의 변수가 동일한 결과를 유발한다. 여름철 여부라는 변수가 기온에도 영향을 주고 매출량에도 영향을 주면서도, 기온이 또 매출량에도 영향을 주는 셈이다.

이런 복잡한 매커니즘을 단순화하는 방법으로 피처를 분할하거나 집계를 내거나 순환을 관리하는 방법들이 존재하는데 기법 자체로도 중요하지만 데이터를 분석하는 사람이라면 철학적으로도 반드시 알아둬야 할 기본 교양이라 생각한다.

이를 토대로 4장에서는 인과관계 다이어그램을 만들어보는 예제가 여럿 등장하는데 한 과정씩 따라하다보면 구체적으로 인과관계 다이어그램을 어떤 방식으로 그릴 수 있는지 감을 잡을 수 있다.다이어그램

아울러 앞서 언급한 교란 해소 방법으로 DCC(분리 인과 기준)과 BC(백도어 기준)은 반드시 읽어볼 것을 권하고 싶다. 이런 교란은 실무에서는 본능적으로 애써 외면하게 된다. 별다른 성과없이 엄청난 시간과 노동력을 잡아 먹을만한 주제라는 것을 알기 때문이다.

하지만 대부분의 문제는 먼 길을 돌다보면 결국 이 교랸 문제의 모순을 해결해야 풀리는 경우를 자주 발견한다. 비록 구체적인 예제가 등장하지 않아 아쉽지만 그럼에도 좋은 예시와 해결방법이 소개되어 있다.

이 책은 인과관계만 다루는 것은 아니다. 또 하나의 주제로 그동안 입문서나 교과서에서 다루지 않던 또는 수학과 같이 엄밀함을 보장할 수 없어 어두운 그늘에서 실무자 사이에만 구전으로 전해오던 현실에서의 실전 분석 방법도 상당수 소개되고 있다.

그 중 대표적인 것이 결측치 처리이다. 결측치를 처음 접했을 때만 해도 어차피 없는 데이터 따위는 없애거나 대체하면 그만이라 쉽게 생각했는데 그 없다는 것도 나름의 정보이다. 이를 무시하면 절대 성능좋은 모델을 만들 수 없다.

보이지 않는 데이터가 때로는 보이는 데이터보다 결정적인 결과를 도출하기도 한다. 교양서이지만 통계학의 대가 데이비드 핸드가 저술한다크데이터라는 책을 읽어본다면 결측치를 결코 만만하게 볼 수 없음을 깨달을 수 있다.

아무튼 MCAR, MAR, MNAR 등을 인과관계 다이어그램과 결부시켜 실습해보는 것이 인상적인 부분인데 비교적 적은 코드로 결측치의 숨은 진실을 쉽게 파악할 수 있게 잘 정리되어있다 생각했다.

부트스트랩을 이용한 불확실성 측정 또한 놀라웠다. 그동안 그저 모델이 정확도를 높이기 위해 부트스트랩을 활용해 왔는데 p-value의 남용 이슈와 관련된 부분에서도 큰 도움을 받을 수 있다는 사실을 직접 실습할 수 있어 유익했다.

p값 남용 문제는 통계학회의 권고 외에도 무수히 많은 책에서 확인해 온 내용이지만 그래서 결론은 어쩌라구? 라는 내 질문에 나름의 해법조차 전달한 책을 찾기는 드물었다. 분명 분석가 나름의 방법이 있을텐데 엄밀하지 않아서 확실하지 않아서 명예가 훼손될까 감춰진 경향이 강했다. 저자는 그 기법을 쿨하게 밝히고 있다. 물론 서문에서 다른 학자 및 전문가와 견해를 달리할 수 있음을 밝혀두었다.전통적 검정력

그 외에도 실험을 직접 설계해보며 조절효과나 매개효과를 측정하는 방법 또한 매우 유익했다. 논문을 읽을 때마다 확실한 이해가 부족하여 막혔던 부분인데 이 책을 읽고 어느정도 감을 잡고 자신감을 얻을 수 있었다.

실습 언어는 R, Python 두 언어를 모두 사용하고 있다. 예제에 따라 두 언어 중 보다 적합한 언어를 선택하여 예제를 구성하고 있다.예제

다만 실습 위주의 책은 아니다. 크게 얻을 것이 없는데 실습 량이 많아 질 것 같은 부분은 예시로 대체하고 있으며 짧은 실습으로 언어적 기술보다 이해에 도움이 될 부분만 예제를 도입하고 있는데 그 완급조절이 가히 예술이다. 최대한 적은 분량으로 많은 것들을 알기 쉽게 전하는 책이다.

이렇듯 이 책은 99%의 입문서나 교과서가 담고 있지 않은 현실에서의 더럽고, 복잡하고, 자신있게 주장하기 힘든 데이터 분석 문제에 대하여 저자 나름의 해법을 용기있게 전달하는 책이다. 아울러 이 책에서 소개한 큰 주제 중 하나인 인과관계는 개인적으로 강인공지능(AGI)을 위한 열쇠라고 생각한다.

저자의 경험에서 얻은 노하우의 공유에 감사드리며 데이터 분석에 임하는 모든이들에게 꼭 한 번 읽어볼 것을 권하고 싶다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
Do it! 점프 투 파이썬 - 전면 개정판 Do it! 시리즈
박응용 지음 / 이지스퍼블리싱 / 2019년 6월
평점 :
구판절판


초보자가 실수 할 수 있는 모든 경우를 예제로 녹인 것이 장점인 책!
이 책은 프로그래밍을 처음으로 배울 때 추천하고 싶은 명작이다.

댓글(0) 먼댓글(0) 좋아요(0)
좋아요
북마크하기찜하기 thankstoThanksTo
 
 
 
자바와 파이썬으로 만드는 빅데이터 시스템 - 하둡, 카프카, 아파치 스파크로 연결하는 나만의 빅데이터 전처리 파이프라인 구현
황세규 지음 / 제이펍 / 2023년 5월
평점 :
장바구니담기


하둡 생태계와 빅데이터 파이프라인을 직접 구축할 수 있게 해주는 가이드. 윈도우, 리눅스 두 운영체제에 Python, Java 두 언어를 연동하며 SQL, NoSQL 두가지 유형의 DB를 연동하며 확실한 이해를 돕는 점이 장점이다.

하둡 Eco 기반의 빅데이터 시스템을 구축하고 이를 데이터 분석 및 AI 모델링에 활용할 수 있도록 데이터 파이프 라인을 구성하는 방법을 알려주는 책이다.하둡

가장 인상깊었던 이 책의 장점은 다양한 언어, DB, OS를 활용하여 빅데이터 시스템을 구축해본다는 점에 있다. 윈도우, 리눅스 두 종류의 OS에 설치해봄으로써 하둡 생태계의 솔루션들이 가지는 특징과 작동 방식을 비교해 볼 수 있고 덕분에 에코 시스템에 대해 깊이있는 이해를 가능하게 해준다.

더불어 현재 레거시 시스템을 활용하기 위해 어떤 OS를 선택하여 구축하는 것이 유리할 지 판단 가능하게 해주며 현재 구축한 OS를 미래에 다른 OS로 대체해야 할지 등의 판단을 미리 시뮬레이션 해준다는 점에서 큰 도움이 되는 책이다.

이런 유형의 주제를 다루는 책은 국내에서 이 책 외에 2권 정도밖에 보지 못했는데 그 중 가장 참고하기 좋은 책이라 생각한다. 또한 그만큼 희소한 내용을 다룬다는 점에 가치가 있다고 볼 수 있다.

몇년 전 이 책 만큼 훌륭한 책을 접했는데 그 책의 경우 다양한 OS나 언어를 연동하지는 않고 있어 하둡 생태계에 대한 깊이있는 이해에 한계를 느꼈고, 더욱이 Cloudera Manager의 패키지의 구성요소를 하나하나 설치하는 과정을 거치고 있어 Cloudera의 라이센스 정책이 변동되거나 버전이 변동되는 경우 호환성 측면에서 애를 먹었던 기억이 난다.

이 책은 대형 빅데이터 시스템 패키지에 의존하는 것이 아닌 하나하나의 솔루션을 직접 설치해보는 과정을 거치기에 제대로 밑바닥부터 빅데이터 시스템을 구성하는 데 큰 도움을 주는 책이다.

또한 앞서 언급한 바와 같이 OS외에도 Java와 Python 언어를 활용하여 데이터 파이프라인을 구축해 볼 수 있다는 장점도 눈에 띈다. 아직 국내 레거시 대부분은 Java 의존성이 높으며 엔터프라이즈 급의 서비스를 가동하는 경우 Java를 쉽사리 포기할 수도 없고 하둡 생태계가 워낙 Java와 궁합이 잘 맞으니 하둡 시스템을 구축하는데 있어 Java를 활용하는 가이드가 소개된 점은 장점이라 할 수 있다.

다만 Java는 Python이 가지는 데이터 생태계에서의 강력함 대비 생산성이 떨어지는 것 또한 사실이다. 이 책은 두가지 언어를 모두 연동하는 예제와 기법을 보여줌으로써 Java언어와의 연동을 통해 내부 매커니즘을 제대로 이해할 수 있게 도와주고 Python으로도 연동해봄으로써 불필요한 코딩을 최소화하여 설계 측면에서의 안목을 신장시켜 준다는 두가지 장점을 모두 갖고 있다.

DB 또한 마찬가지이다. Mysql과 같은 SQL 진영이 가지는 ACID 기반의 트랜잭션 처리 및 배치처리는 물론 MongoDB와 같은 NoSQL 진영의 CAP 이론을 기반으로 한 스케일 아웃 및 실시간 병렬처리의 특성을 모두 익히고 활용할 수 있게 함으로써 적은 시간대비 다양한 레거시의 활용을 가능하게 해준다는 점이 큰 장점 중의 하나라 생각한다.

이를 모두 가능케 하는 개발 환경의 IDE로는 이클립스를 채택하고 있다. IntelliJ나 Pycharm과 같은 Jetbrain 사의 제품이 소개되어도 좋았을 것이나 두가지 IDE를 모두 소개해야 한다는 점 및 온전한 기능을 활용하고 싶다면 유료로 구매해야 하는 만큼 무료로도 훌륭한 개발을 지원하는 이클립스를 선택한 점도 마음에 드는 부분이다.IDE

또한 1장에서는 빅데이터를 이해하는 데 필요한 기초 이론을 매우 깔끔하고 이해하기 쉽게 잘 정리하고 있어 놀라웠다. 이 영역의 이론만 다뤄도 능히 책 한 권 이상의 분량이 필요한데 실습을 진행하는 데 반드시 필요한 이론만 깔끔하게 정리하고 있어 매우 인상적이었다.이론

하둡시스템에는 다양한 오픈 소스들의 톱니 바퀴 처럼 물려있지만 이 책은 그 중에서도 하둡, 카프카, 스파크 간의 연동 및 활용에 집중한다.카프카

물론 조금 더 깊이 들어가면 주키퍼로 병렬 서비스를 통제한다거나, 스쿱과 같은 솔루션을 활용해 데이터를 이기종 시스템에 일괄 전송하는 등의 방법도 소개될 수 있겠지만 이 책에서는 소개되지 않는다.

다만 어떤 시스템에서도 반드시 사용하게 되는 하둡이라는 기본 파일 시스템과 이를 카프카를 이용해서 스파크로 넘겨주고 최종적으로 데이터 마트에 저장하는 일련의 과정을 소개하는데 집중한다.

예제로는 미 연방 재무 지표인 FRED 데이터를 활용한다. 이를 일종의 데이터 레이크로 바라보며 API 키를 발급받아 가져오는 형태의 프로젝트를 진행한다.

FRED의 데이터는 특히 주식 투자를 진행하게 되면 자주 들여다보게 되는 지표가 많다. 예를 들어 장단기 금리차, 통화량 등 유동성 변동, 금리 변동 등의 수치를 얻을 수 있기에 이 책을 통해 기본기를 다진 후 FRED 데이터를 실시간으로 분석해 볼 수 있는 빅데이터 시스템을 만들고 이 수치 간의 모델링을 통해 주가 예측이나 글로벌 매크로 변동을 예측해보는 것도 재미있는 프로젝트가 되리라 생각한다. 아마 저자는 나름의 인사이틀 활용해 지금 내가 말한 것들을 이미 구축하며 수익률을 측정하고 있을거라 생각한다.

이 책의 결과물은 결국 데이터 마트에 저장된 FRED 데이터를 시각화하여 보여주는 것으로 종료된다. 데이터 마트에 저장된 데이터를 Python의 데이터 프레임으로 불러와 간단한 전처리를 거친 후 시각화하여 보여주는 예제인 셈이다.결과

비록 결과물은 단순하지만 중요한 것은 데이터 파이프라인 간 유기적인 구성 및 각 노드를 담당하는 솔루션의 활용법일 것이기에 이 책은 그런 목적을 달성할 수 있도록 충실히 잘 따르고 있다.

그렇기에 데이터 파이프라인을 거쳐 AI 모델링으로 이어지는 부분은 생략되어 있다. 이 부분까지 진행하면 빅데이터 파이프 라인에 집중하는 데 너무 분량이 많아지고 집중력을 떨어뜨릴 수 있기에 적절한 구성이라 생각한다.

그럼에도 한가지 아쉬운 점은 빅데이터 시스템을 구성하는 데 있어 카프카, 하둡, 스파크 각각을 설치하는데 호환성 측면에서 문제가 없는지 사전에 파악하는 방법이나 유의할 점이 소개되었으면 더 좋겠다는 생각이 든다.

책에 소개된 버전 간의 호환성은 문제가 없지만 결국 수년의 세월이 흐르면 독자들은 다시 새로운 버전의 에코 시스템을 구성하게 될 것이고 그 때 호환성에 관한 저자의 시행착오나 노하우가 소개되어있다면 큰 도움을 받을 수 있을거라 생각하기 때문이다.

아무튼 이 책은 빅데이터 시스템을 밑바닥에서 구축해보고 그 안에 숨은 매커니즘을 상세히 이해할 수 있게 도와주는 훌륭한 양서이다. 빅데이터 시스템에 관심이 있거나 파이프 라인을 구축하고 싶지만 지식이 전무한 독자에게 추천하고 싶다. 빠른 시간 내에 빅데이터 시스템의 큰 틀을 이해하는 데 많은 도움을 받을 수 있으리라 생각한다.




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