핸즈온 머신러닝 - 전2권 - 사이킷런, 케라스, 텐서플로 2로 완벽 이해하는 머신러닝, 딥러닝 이론 & 실무, 3판 O'reilly 오라일리 (한빛미디어)
오렐리앙 제롱 지음, 박해선 옮김 / 한빛미디어 / 2023년 9월
평점 :
장바구니담기


AI 분야에서 단 한 권의 책만 읽을 수 있다면 주저없이 꼽고 싶은 명작. 드디어 3판 개정판이 발간되었다.

이 책은 참 묘한 책이다. 전체적으로 난이도가 높은 편임에도 부분 부분 읽다보면 의외로 읽기가 편하고 이해가 잘 되는 편이다.

엄밀한 수학적 정의를 다룬다든가 대부분의 논문 이해에 무리가 없을 수준의 깊이가 담겨있는 것은 아니지만 AI 진영에 두루 쓰이는 기술이 체계적으로 망라되어있다. 이 분야를 과학과 공학으로 나눈다면 과학보다는 공학 중심적인 내용을 담고 있다.

과학도 상당 부분 담겨있지만 과정의 도출보다는 결론을 깔끔하게 정리하는 식으로 기술되어있으며 이를 구현해 내는 것과 응용하는 데 보다 많은 도움을 주는 책이다.

따라서 이 분야의 기술을 숲을 보는 시각으로 두루 섭렵한다든가 프로그래밍 능력이 뛰어난 개발자가 AI 진영의 기술을 담은 서비스를 구현하는 데 많은 도움을 받을 수 있다. 물론 연구 진영에서도 AI분야의 비교적 최신 이론을 빠르게 정리하고 연구의 방향성을 잡는 데에도 큰 도움이 될 것이다.

이 책에는 1000페이지가 넘는 방대한 분량이 수록되어있음에도 어느 정도의 통계학적 혹은 데이터 관련 지식 - 예를 들면 그림으로 배우는 StatQuest 머신러닝 강의 책에 담긴 내용을 잘 숙지하는 정도-을 습득하고 있고, Python 중급 이상의 프로그래밍 실력을 갖춘 독자라면 긴 AI의 여정을 이 책으로 시작할 것을 권하고 싶다.

무언가를 골똘히 연구할 때나 고민하거나 혹은 문제해결을 위해 고심하고 있을 때 우리는 보통 마인드 맵과 같은 도구를 통해 생각을 정리하고 방향성을 잡는다.

이 책은 그런 마인드 맵에서 첫 출발 지점 동그라미의 위치로 적합한 책이다. 책 한 권으로 AI 진영의 폭넓은 지식을 한 눈에 파악하기에는 이 책보다 뛰어난 책이 없다고 생각한다. 방대한 내용을 담아내고 있음에도 하나하나의 주제는 매우 친절하고 자세하게 수록되어있고 직관적인 시각화를 통해 개념을 깊이있게 이해할 수 있도록 도와준다.

우선 머신러닝 서비스의 전반을 이해하는데에는 이 책의 1~2장 만으로도 충분하다. 2장의 실습을 진행하며 예측을 위한 머신러닝 모델을 어떤식으로 만들어나가는지 감을 잡는다면 뒤에 이어질 내용을 익혀 특정 데이터, 도메인, 기술, 아이디어, 문제에 심화 적용하기만 하면 되는 셈이다.주택가격예측

실리콘 밸리의 주택 가격을 예측하는 모델 하나를 만들어보는 과정으로 AI 진영에서 활용되는 기술 전반을 이해하기에 부족함이 없다. 더욱이 더 깊이있는 수준의 지식을 습득하는데 상당한 지적 호기심을 제공하여 향후 학습의 강력한 동기부여로 작용하기도 한다. 단 두개 챕터에 수록된 내용이지만 능히 한 권의 책을 낼 수 있을 정도의 분량이기도 하다.

이 책은 출판사의 배려로 3판부터는 2권의 책으로 나뉜다. 1권은 주로 머신러닝 내용을 다루고 있으며 케라스를 활용하여 간단한 딥러닝을 맛볼 수 있다. 머신러닝 대부분의 지식과 기술은 딥러닝에도 요긴하게 활용되므로 2권을 읽기 전에 충분히 개념을 학습해 두면 좋다.

이번 개정판에는 사이킷런에 추가된 새로운 기능들과 최신 라이브러리가 수록되었지만 1권에 해당하는 머신러닝 진영의 기술은 딥러닝에 비해 훨씬 오랜 기간 연구되었고 변화가 딥러닝 분야에 비해 적기 때문에 2판에 비해 크게 달라진 사항은 없다.

하지만 기술 측면에서 불필요하고 중요하지 않은 내용들이 많이 삭제되어 보다 집중력있게 핵심을 이해하는 데 도움을 주는 방향으로 편집된 것 같고 의외로 실무적으로 중요한 요긴한 팁들이 생략된 경우가 더러 있었는 데 그런 부분들이 알차게 보완된 느낌이다.

2판에서 계속 이어지는 기조 중에 정말 마음에 드는 것은 개인적으로 쉬운 내용 기술과 더불어 애매한 개념을 눈으로 보이게 하는 시각적 자료의 활용이 인상적이다.

예를 들면 3장에서 다루는 오차 행렬의 시각화는 볼 때마다 놀랍다. 2차원적인 동적 기억을 필요로하는 개념이라 보는 순간에는 이해가 되어도 기억이 휘발되고 나면 다시 깊이있는 통찰로 로딩하는데 제법 시간이 걸리는 이상한 지식 구조이다. (마치 법률 분야의 if에 따른 리걸 마인드 기억 구조와도 유사하다.)

어떤 책은 예측과 실제의 축을 거꾸로 명시해 많은 혼동을 주는가 하면 오차 행렬 혹은 혼동 행렬이라는 용어 답게 저자들도 혼동된 것인지 오류로 기술된 책들도 은근 많다. 반면 본 도서에는 이 오차 행렬표 내부에 숫자 그림이 들어가 있어 예시를 활용한 명쾌한 이해 및 개념을 잡는 데 도움을 주고 있어 저자의 전달력과 깊이 있는 인사이트에 여러번 감탄했다.오차행렬

이런 장치는 책을 읽는 내내 여러번 경험할 수 있다. 아래 그림은 경사하강법의 여러 방식을 적용하며 실제 파라미터 공간에 표시된 경로를 시각화 한 것인데 예제를 실습하며 직접 구현해보려고 노력하다보면 말로는 전달하는 데 한계가 있는 경사하강법의 움직임을 눈으로 확인하고 직관적으로 이해하는 데 많은 도움을 받을 수 있다.경사하강법
규제

소프트맥스 회귀나 결정트리 등 알고리즘 설명 파트도 마찬가지이다. 대충 그렇다는 말 보다는 확실히 그림으로 경계선을 확인하고 파라미터 변수의 조정으로 달라지는 경계선을 눈으로 확인하는 것이 이 알고리즘을 확실하게 이해하는데 큰 도움이 된다.소프트맥스
결정트리
k-mean

하다 못해 통계의 가장 기초적인 성절인 대수의 법칙(큰수의 법칙)이나 차원의 저주도 눈으로 보여준다. 방대한 분량의 쉽지 않은 책을 때로는 매우 쉽게 만들어주는 묘한 장치들이다.큰수의법칙
차원의저주

책에 수록된 코드를 실습하기 쉽게 안배하고 있는 점도 이 책의 뛰어난 장점 중 하나이다. 말로 설명하는 것 이상으로 실제 구현하고 눈으로 확인할 수 있게 도와주는 방식이 매력적이다. 이 책의 역자는 저자의 배려를 한층 업그레이드 하여 더욱 편리하게 실습할 수 있도록 도와주고 있어 인상적이었다. 역자의 깃허브로 들어가 Open in Colab 버튼만 누르면 되니 어지간히 게으른 독자도 실습 핑계를 대긴 어려운 구조이다.깃허브
텐서보드

2권부터는 딥러닝의 여정을 떠난다. 보다 저수준의 텐서플로 API를 활용하는 예제들이 등장한다.텐서플로

특히 CNN, RNN, LSTM의 기본 3모델에서 더욱 확장된 ResNeXt, CSPNet과 같은 다양한 신형 모델들이 등장한다. 이는 이 책의 또 하나의 매력이기도 하다. 개정판이 나올 때마다 비교적 최신의 선풍적인 인기를 끌었던 새로운 모델들과 기술들이 소개되고 있어 개인적으로 매우 유익했다.

가진 레거시 환경의 변화 대비 AI 진영의 SOTA 지식들은 차고 넘쳐 이젠 따라갈 수 없는 지경에 이르렀다. 가진 역량의 한계로 소소한 변화는 더이상 추적할 수 없게 되었고 집중하는 분야의 SOTA를 파악하고 시스템에 반영하는 것도 무리수였는데 이 책 덕분에 그간 잃어버린 고리, 미씽 링크를 연결할 수 있어 저자에게 많은 감사를 느낀다.

그러면서도 내용은 더욱 풍부해졌다. RNN 모델을 다룰때도 전통적인 통계 진영의 시계열 모델링도 다루고 있어 비교 대조하면서 관련 지식의 깊이를 풍부하게 만드는 데 도움이 되었다.

ARIMA 모델은 전통적으로 오랜 기간 동안 그리고 지금까지도 잘 쓰이는 모델인데 딥러닝 도서 대부분에는 이 부분이 생략되어있어 양 진영의 시너지를 활용하기 부족함이 많았는데 이번 개정판에는 그런 부분도 신경쓰고 있어 더욱 알차게 구성되었다는 느낌을 받을 수 있었다.ARIMA

한편 이번 개정 3판의 백미는 역시 딥러닝 파트의 커다란 변화인데 허깅페이스의 트랜스포머스 라이브러리나 잡음 제거 확산 확률 모델 DDPM 등 2020년 이후 굵직한 변화를 추적하기에 좋다.트랜스포머스
DDPM

3판이나 개정되면서 1권 영역은 성숙도가 높아졌으니 다음번에는 딥러닝 위주의 2권에 대한 개정판만 나와도 좋겠다는 생각도 든다.

방대한 내용을 한정된 리뷰로 모두 담아내는 것은 보통 무리가 아니었다. 처음엔 챕터별로 다른 책에서 익히기 힘든 내용들을 본 도서는 어떻게 기술하는지에 중점을 두고 리뷰를 작성했다가 폭발하는 분량이 감당이 안되어서 다시 줄여 썼는데 이러니 또 책이 가진 모든 장점을 잘 보여주지 못해서 안타깝다.

개인적으로 2판의 베타리딩에 참여하였기에 더욱 정이 가는 책이고, 이번 3판 역시 참여의 기회가 있었으나 개인적인 좋지 못한 사정으로 인해 참여하지 못해 많이 아쉬웠던 책이기도 하다. 그만큼 더 알찬 리뷰를 정리하고 싶었는데 방대한 규모와 책의 수준이 뛰어나 수준에 걸맞는 리뷰 작성에는 한계가 있다.

하지만 분명한 사실은 AI 분야의 관련 기술을 한 권의 책으로 이 보다 폭넓게 파악하고 가진 레거시에 적용하는데 있어 이보다 도움되는 책은 없을거라 확신한다. 관련 분야의 도서를 벌써 300권은 넘게 읽은 것 같은데 이 만한 책을 찾지 못했기에 더욱 확신한다.




댓글(0) 먼댓글(0) 좋아요(1)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
크리에이티브 프로그래머 - 프로그래밍에 창의성을 더하는 7가지 사고력
바우테르 흐루네벨트 지음, 차건회 옮김 / 한빛미디어 / 2023년 8월
평점 :
장바구니담기


창의성을 다룬 책 답게 창의성의 정의를 창의적이지 않은 방법으로 기술하지 않아 간만에 창의적으로 창의성을 생각해 볼 수 있어 뜻 깊은 시간이었다.

프로그래머가 창의성을 키우는 방법과 창의성을 기술에 적용하는 방법을 다룬 책이다. 창의성 주제를 다룬 책 답게 이 책의 가장 마지막 페이지에는 저자가 본 도서를 요약한 마인드 맵이 수록되어있는데 이 책을 한 눈에 바라볼 수 있는 방법이기도 하다.마인드맵

마인드 맵이라는 것이 사람의 신경망의 구조와 닮은 부분이 많아 이해하기 쉽다. 그림에서 보듯 이 책에는 창의적 프로그래머에게 필요한 7가지의 큰 그림이 있다.

시계 방향으로 바라보면 크게 기술 지식, 제약 조건, 비판적 사고, 호기심, 창의적 마인드셋, 커뮤니케이션, 창의적 기법 등의 7가지 주제로 이뤄져있다는 것을 예상할 수 있다.

개인적으로는 이 책을 읽기 전에 이 마인드 맵을 먼저 읽기를 권하고 싶다. 최대한 저자가 어떤 주제를 이야기 하려는 것인지, 7가지 주제에 세부적으로 그려져 있는 메시지들은 무엇을 말하고자 하는 것인지 독자 스스로 그간의 경험을 바탕으로 최대한 유추해보고 시간을 들여 고민도 해 본 후 책을 읽어나간다면 더 재미있게 읽을 수 있을 뿐만 아니라 저자가 던지는 메시지의 본질을 더 잘 캐치해 낼 수 있을거라 생각한다.

그리고 난 후 스스로의 경험과 융합하여 7가지의 동그라미를 파괴도 해보고 재구성도 해보고 연결고리를 바꾸는 작업도 유의미할 것 같다. 그간 유사한 도서를 많이 읽고 개인적인 경험으로 정리해 본 바 인간의 뇌는 한 방향으로 깊이있게 뻗어나가는데는 특화되어있지만 첫 출발점이 되는 7가지 동그라미를 즉각적으로 떠올리는 데에는 다소 취약한 것 같다.

하지만 그 취약한 부분은 인간 누구에게나 갖고 있는 맹점이 되기 때문에 이를 어떻게 재구성하는지에 따라 그동안 보지 못한 독창적인 솔루션이 될 수도 있고 그런 부분에서 또 한가닥의 창의성을 얻을 수 있지 않을까?

말미에는 내가 이 책을 읽고 재구성한 나름의 첫번째 동그라미도 소개하겠지만 리뷰 취지에 맞게 간단하게나마 이 책을 소개해볼까 한다. 앞서 소개한 7가지 주제는 사실 서로 연관되어 있는 듯 하다.

책의 구성이라는 제약에 맞게 유사한 주제를 헤쳐모여 한것이기에 굳이 순서대로 읽을 필요도 없고 눈에 띄거나 읽고 싶은 부분을 먼저 읽어도 저자가 전달하고자 하는 메시지를 이해하기에는 영향이 없어 보인다.

그렇기에 스스로 생각하는 이 책은 크게 프로그래밍과 관련된 부분과 관련되지 않은 부분 즉, 일반적인 창의성에 관련된 주제로 나눌 수 있을 것 같다.

전자에 해당되는 주제 중 하나는 커뮤니티 스멜과 같은 주제이다. 클린 코드나 실용주의 프로그래머 등 프로그래머들이 고전처럼 취급하는 명저들에 언급되었던 코드 스멜과 유사하지만 그동안 주목을 받지 못했던 주제이기도 하다.

창의성도 결국은 사람들의 모임에 종속될 수 밖에 없기에 커뮤니티를 망하게 만드는 냄새 또한 중요하다. 아래 그림에 잘 정리되어 있지만 성공적인 팀을 빌딩하고 운영해 나가는 데 꽤 중요한 부분이다.커뮤니티스멜

또한 본 도서의 메인 주제는 아니지만 프로세싱 언어에서 파생되어 나온 P5도 눈여겨 읽은 부분이다. 프로세싱은 주류 언어는 아니지만 마치 프로그램 언어와 비 프로그래밍 도구 어느 중간에 위치한 표현력 좋은 도구이다.P5

이 언어나 도구를 사용하는 각기 다른 나름의 목적이 존재하겠지만 나의 경우는 창의성을 키우는데 많은 도움을 받았던 도구인데 이 책에도 소개되어있어 사실 조금 놀랐다.

생각을 시각화 하다보면 스스로의 생각에 갇힌 틀과 실제로 구현된 세계간에 생각보다 큰 갭이 존재한다는 것을 깨달으며 놀라곤 했기 때문이다. Nature of Code라는 책에서 프로세싱 언어를 처음 접하고 심심할 때마다 즐기곤 했는데 이 책에도 같은 생각이 담겨있어 꽤 반가웠다.

이 책은 창의성 주제를 다룬 책 답게 창의성을 정의하는데 집중하거나 다른 창의성들을 모아놓은 창의적이지 않은 방법으로 창의성을 기술하지 않는다는 점이 가장 마음에 드는 부분이다.

읽다보면 다소 두서나 체계가 없다는 느낌을 자주 받을 수 있는데 정말 다양한 각도에서 창의성의 본질을 설명하고자 노력한 것 같아 만족스러웠다. 잠시 책을 접어두고 저자가 언급한 주제를 정리하고 생각하다보면 내가 지금 어떤 주제에 소속되어있는지 감을 잡기 힘들 정도로 나를 이쪽 세계에 빠드렸다가 저 쪽 세계에 빠뜨리곤 한다.

창의성과 대우 문제 문제도 흥미롭다. 창의성이 좋으면 한번에 혹은 쉽게 눈에 들어오지 않는 업계의 본질도 드러나기 마련이다. 아래 그림에 보상받지 못하는 지식이 특히 그런 부분이다. 내가 남보다 대단하다고 생각함에도 왜 인정받지 못하는지에 대한 질문에 이 그림보다 완벽한 설명이 있을까?과잉자격

그런가 하면 창의성이 주제인만큼 프로그래밍과는 크게 관련없어 보이는 창의성 본연의 성질에 대한 고찰도 다양하게 담겨있다. 스스로의 지식을 어떻게 표현하고 정리할 수 있을지 그 체계를 담아내기 위한 고찰도 그런 분이다.지식체계

인간의 뇌의 기가막힌 기능 중 하나도 망각이기에 결국 망각을 저장하고 다시 불러오는 부분에 대한 고찰도 중요하다. 개인적으로도 그 IO 과정에서 지식의 표현 형태는 변경되기에 그 사이에 손실이나 잡음 증폭이 존재할거라 생각해왔는데 그 부분에 대한 학계의 깊은 연구가 쉽게 요약정리 되어있어 매우 만족스럽게 읽은 부분이기도 하다.

가끔 머리를 식혀주는 퀴즈들이 등장하는 것도 재미있는 부분이다. 읽다보면 다른 프로그래밍 도서는 내가 읽고 있는 현재의 위치를 파악하는 것이 중요할 때가 많은 데 이 책은 다른 프로그래밍 도서와는 달리 지금 내가 어디에 위치하고 있는지 파악하기 어렵다. 대신 정신없는 만큼 재미는 있다.퀴즈

아무튼 책 소개를 위해 프로그래밍에 관련된 주제와 그렇지 않은 주제로 나눠 인상적이었던 주제를 몇가지 소개했지만 결론은 창의성이라는 주제에 대해 오오트 구름처럼 불투명해 보일지라도 감으로나마 정리는 해두면 좋겠다는 생각이다.

개인적으로 고찰해 온 것들과 경험에서 비롯된 것들 그리고 이 책을 읽으며 떠올렸던 내용들을 종합하여 창의성에 도움이 되는 몇가지 방법을 간략히 정리해보며 리뷰를 마친다.

  • Min-Max 어떤 일이든 어떤 사고든 미래에 대한 예측이든 그 바운더리 즉, Min - Max가 어디인지 그 끝을 쫓아보는 것이 좋다. 이 책에 등장하는 제약이라는 주제도 비슷한 맥락이다.

  • 절대 위치와 상대위치 객체의 위치를 파악하려고만 하지 말고 주체 혹은 관찰자의 위치를 바꿔보는 것이 문제나 현상의 본질을 이해하는 데 큰 도움이 된다. 폴 세잔의 사과처럼 다양한 시각에서 대상을 바라보고자 노력한다면 남들이 보지 못하는 본질을 얻을 수 있다.

  • 추상과 구체 어떤 현상이나 물체의 본질을 알고 싶다면 매우 추상적인 관점에서 바라볼 필요도 있고 혹은 반대로 매우 미시적인 관점에서 바라볼 필요도 있다. 멀리서 본 전깃줄은 1차원이지만 가까이서 본 전깃줄은 3차원이다. 우주의 세계와 양자의 세계는 닮았다. 비슷한 법칙이 작용하면서 동시에 상반된 법칙이 공존한다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
모두의 한국어 텍스트 분석 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
 
 
 
프런트엔드 개발자를 위한 테스트 가이드 - 셀레늄, 사이프러스, 퍼피티어, 플레이라이트 오픈소스 테스트 자동화 프레임워크 교과서, 2024 세종도서 학술부문
에란 킨스브루너 지음, 김완섭 옮김 / 제이펍 / 2023년 7월
평점 :
장바구니담기


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

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

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

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

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

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

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

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

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

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

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

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

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

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




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