RAG 마스터 : 랭체인으로 완성하는 LLM 서비스 - 멀티모달·그래프 RAG·에이전트·파인튜닝까지
브라이스 유 외 지음 / 프리렉 / 2025년 4월
평점 :
장바구니담기


RAG 고도화 전략에서 LLM 파인튜닝에 이르는 RAG 기술을 총 망라한 책. 전달력과 가독성이 일품이다.

RAG 기술을 다룬 책 중 가히 최고점을 줘도 손색이 없는 책이다. 물론 번역서 중 이 책 수준의 훌륭한 책이 여럿 있지만 한국인 저자가 직접 집필한 책이라 특히 전달력과 가독성 부분에서는 만점을 주고 싶은 책이다.

다루고 있는 기술의 범위 또한 방대하여 최근 등장한 MCP, A2A를 제외하면 LLM 활용 기술의 거의 모든 것이 녹아있다. 저자들의 연구 수준이 돋보일 정도로 이론적으로도 완성도가 높고, 실무적으로는 다양한 예시와 경험이 담겨있어 독자의 시행착오를 크게 줄여준다.

지금까지 기술서를 최소 1천권은 넘게 읽었고, 리뷰만 해도 300권 가까이 작성을 해 왔는 데 그중 최고 레벨에 해당하는 전달력과 가독성을 자랑한다. 다른 기술서들도 이 책의 전달력과 가독성을 교본 삼았으면 좋겠다는 생각이 든다.

책은 크게 세 부분으로 나뉜다. 전반부 1~3장은 RAG와 Langchain 등 LLM을 활용하는 데 필요한 기본 기술을 다룬다.

전반부의 돋보이는 장점은 마치 라이브 코딩 강의를 보는 듯한 구성이다. LangChain 모듈이 발전해 온 과정을 추적하면서 실습 또한 이전 코드 대비 향상된 기능의 핵심만 쉽게 파악할 수 있도록 구성되어 이해하기가 쉽다. 이 과정을 통해 핵심을 제외한 코드들을 반복적으로 확인할 수 있기에 자연스럽게 LLM 활용 기술을 숙달할 수 있다.

예를 들면 OpenAI() 클래스를 LangChain 모듈의 ChatOpenAI() 클래스로 대체하는 예제를 수행하며 어떤 방식으로 종속성을 탈피할 수 있는지 확인할 수 있도록 차이점을 중심으로 예제를 수행하고 발전의 트렌드를 이해하기 쉽도록 핵심 개념을 전달한다.

책의 가독성을 높이는 대표적인 수단으로는 위에서 설명한 바와 같이 핵심 개념의 흐름을 체계적으로 정리하는 것 외에도 좋은 그림과 예시를 드는 방법이 있다. 아래 그림은 챗봇 실습을 진행할 RAG 구성도를 보여주는데 지금까지 봐 온 그 어떤 그림 보다도 핵심만 명쾌히 전달하는 느낌을 받을 수 있었다.RAG 구성도
멀티모달 구성도

또한, 후반부와 연계된 기술을 초반에 미리 설명하여 전체적인 체계를 쉽게 잡을 수 있게 도와준다. 단순히 전반부에 임베딩 API를 사용하는 것을 넘어 다양한 임베딩 전략을 소개하고 이를 파인튜닝 할 경우 비용 절감과 같은 이득을 취할 수 있음을 소개한다.임베딩

벡터DB의 경우도 단순히 책쓰기 편한 크로마 같은 예제를 실습하고 마는 것이 아니라 다양한 벡터DB의 장단점을 살펴보고 이에 대한 레퍼런스 출처도 제공한다.벡터DB

더불어 실무에 있어 시행착오와 소요 시간을 최소화 할 수 있도록 저자들의 다양한 경험이 소개된다. LLM과 연관된 생태계 기술인 Streamlit, Pyngrok과 연계하여 서비스를 쉽게 구성할 수 있는 방법이 소개된다.

에코 기술은 다른 책에도 흔하게 소개되는 부분이지만 아래 그림과 같이 매우 디테일한 부분까지 안내되고 있는 점이 돋보인다. 저자들이 실무 경험을 통해 시간이 많이 소요된 부분, 시행착오에 걸렸던 부분들을 놓치지 않고 짚어주는 꼼꼼함이 인상적이었다.Pyngrok

중반부는 RAG 고도화 전략이 핵심이다. 기본적인 RAG를 뛰어넘어 성능을 고도화하는 다양한 기법과 더불어 그래프 RAG, 랭그래프, 리액트 에이전트 기술을 다룬다.

RAG 고도화 파트는 주요 전략들을 일목요연하게 정리하여 초반에 체계를 잡는데 도움이 되며 각 전략별로 실습을 수행하다보면 자연스레 성능을 개선할 수 있는 스킬을 숙달할 수 있다.RAG고도화
다중질의

Self RAG나 자체교정 RAG 파트만 봐도 다른 레퍼런스들은 쓸데없이 복잡하게 설명하여 지루한 반면 이 책은 이론적으로 핵심만 잘 요약하여 전달하며 실습을 통해 나머지를 이해할 수 있도록 구성한다.Self RAG
자체교정 RAG

더불어 추후 필요시 논문이나 다른 이론과 연계하여 서비스를 확장할 수 있도록 도와준다. 본문에 반영하기엔 너무 방대한 기술이지만 추후 서비스 확장 혹은 또 다른 해결책을 찾을 때 도움이 될 수 있는 연계 연구자료가 군데군데 수록되어있어 실무에 매우 유익했다. 아래 그림과 같이 그리닝 기법의 연구 내용 소개가 그 예시이다. ![Gleaning]](https://theorydb.github.io/assets/img/review/review-book-rag-master-10.png)

후반부는 파인튜닝이 핵심이다. 개인적으로는 실무에서 궁극적으로 파인튜닝 LLM을 로컬에서 도입할 예정인데, LLM Qwen 파인튜닝 실습 부분은 로컬 LLM 전반을 이해하는데 많은 도움을 받을 수 있었다.

임베딩 파인튜닝 부분 또한 연계하고자 하는 LLM과 호환만 된다면 불필요한 토큰 비용을 줄일 수 있는 부분이라 관심이 많았는데 저자들의 경험을 기반으로 한 성능 개선에서 평가에 이르는 절차가 꼼꼼하게 소개되어있어 유익했다.

결론적으로 이 책은 LLM 활용 기술의 범위, 전달력과 가독성, 이론과 실무의 완성도, 경험과 노하우를 통한 시행착오의 최소화 등 다양한 측면에서 만점에 가까운 책이다.

그동안 다른 RAG 도서를 읽어도 진입장벽을 뛰어넘지 못했거나, API 레퍼런스에 소개된 기술 정도는 익히고 있으나 그 이상 넘어가지 못했던 독자들에게 특히 도움이 될 것이며 그 외에도 RAG를 다루는 모든 독자에게 도움이 될거라 확신한다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
인공지능은 생각하지 않는다 - 인공지능에 관한 꼭 알아야 할 오해와 진실 좋은 습관 시리즈 51
김송규 지음 / 좋은습관연구소 / 2025년 5월
평점 :
장바구니담기


AI 시대 인간의 역할에 대한 근본적인 고찰이 담긴 책.

  • 인공지능의 시대에 인간은 무엇을 해야 할까?
  • 뭘해야 먹고 살 수 있을까?
  • 왜 인공지능을 배우려고 하는가?
  • 무엇을 위해 사는가?
  • 언제 가장 행복한가?

요즘처럼 질문이 중요한 시대가 없었던 것 같다. 질문은 시대를 관통하여 언제나 중요한 것이었지만 아이러니하게도 AI가 발전할 수록 인간은 보다 인간적인 것이 무엇인지 그 질문에 대한 답을 더 명확하게 내어 놓아야 하는 시기가 된 것 같다.

AI 시대 인간이 무엇을 해야 할지 너도 나도 막막해 하지만 일단 표면적으로 달라진 일상을 살펴봐도 예전에는 좋은 답을 구하는데 노력했다면 이제는 AI의 프롬프트 창에 더 좋은 질문, 더 명확한 질문을 던져 더 고급진 대답을 얻는 스킬이 필요해졌다.

AI가 모든것을 답해주는 이 시점에도 AI에게 질문을 잘하지 못하면 좋은 답이 돌아오진 않는다. 또, AI의 대답 또한 100%는 믿지 못한다. AI는 어디까지나 확률 모델에 지나지 않으니 할루시네이션 현상을 온전하게 피하기 위해선 답변에 대한 사람의 검증이 개입된다.

이러한 사실로 유추해 볼 때 역설적으로 인간은 인간에 대해 더 잘 알아야 하는 것 같고, 그 외적인 영역 또한 AI보다 더 잘 알아야 하는 시대가 된 것 아닌가 싶다.

저자는 이 책을 통해 AI와 인간의 본질에 대해 그간의 경험과 연구자로써의 통찰을 바탕으로 다각도로 조명한다. 개인적으로 가장 인상깊었던 관점은 인간에 대한 고찰이다.

흔히 사람들은 다가온 AI 시대의 위기감을 어떻게 극복할지에 대한 질문에 이어 AI가 못하는 것에 집중하는 것 같다. 그 틈새를 파고드는 것은 당연한 전략적 수순이나, 사실 AI의 등장으로 인해 인간이 무엇을 더 못하게 될지 혹은 더 잘해야 할지는 잘 살펴보지 않는 것 같다.

사실 AI가 제아무리 뛰어나도 신이 아닌 이상 못하는 것은 있을 것이다. 나아가 AI가 우리에게 영향을 미칠 것은 자명하다. 사람은 결국 어떻게 변하게 될까? 그것이 인간에게 해로운 방향이라면 우리는 무엇을 주의해야 할까?

이렇듯 저자는 사람들이 간과하기 쉬운 다각도의 관점, 고찰, 질문을 던짐으로써 독자로 하여금 AI 시대 인간의 해법을 도출할 수 있는 깊은 사유의 공간을 제공한다.

종종 까먹고 살지만 사실 살다보면 정말 중요한 원칙들이 있다. 뻔하다 못해 식상한 “지피지기 백전백승”, “타인을 바꾸려 하지 말고 나를 바꿔라”와 같은 원칙들이 그러하다.

손자병법으로 칭해지는 지피지기는 목적을 달성하기 위해 최소한으로 놓치지 말아야 할 피아식별을 정리해보면서 중요한 프레임을 놓치지 않게 도와주는 원칙이다.

적어도 AI가 뭔지, 나(인간)은 뭔지 알아야 하고 그로 인해 각자가 원하는 것은 무엇인지 생각하다보면 막막한 여정의 실타래가 조금씩 풀리는 듯한 자신감이 생긴다.

이런 원칙들은 이 책에 소개된 것은 아니지만 내가 종종 즐겨 찾는 원칙들로 결국 AI를 바라보는 관점에 대한 출발선이나 프레임이 다를 뿐 저자와 비슷한 결론에 도달한다.

앞서 언급했듯 지금은 질문과 검증이 중요한 시기이기에 저자와 같이 저명한 학자의 견해일지라도 난 내 나름의 도구를 이용해서 철저히 검증하며 읽었다.

AI 대비 인간의 강력한 도구가 있다면 그것들 중 하나는 아마 습관인 것 같다. 김연아나 한 분야의 장인, 명인으로 빗대어 소개했든 그냥 꾸준히 하다보니 경지에 오르는 것은 습관의 힘이다.

나 역시 AI 분야에 몸담은 종사자로써 보다 나 자신과 인간에 대해 스스로에게 질문하는 횟수가 늘었다. 그러다보니 습관에 어느정도의 해법이 있다는 결론에 이르렀고 요즘 가장 흔하게 내 몸에 자리잡은 습관은 질문을 던지는 습관이다.

  • 지금 AI를 쓰고 있는가?
  • 지금 나오는 결과물은 생성형인가? ing인가? 멀티버스인가?
  • AI를 왜 사용하는가? 나는 무엇을 위해 사는가?

AI 시대를 살아가는 방법에 대한 나름의 해법이다. 그리고 세번째 질문은 저자의 관점과 같아 책을 읽으며 반가움이 들기도 했고 한편으로는 방향이 영 잘못된 것 같지는 않아 안도감이 들기도 했다.

이 책에는 사람이 앞으로 살아가야 할 다양한 방향과 조언이 담겨있지만 그 중에서도 유독 눈에 띄는 것이 두가지 있다. 하나는 인문학의 중요성에 대한 강조이고, 다른 하나는 보다 전문가가 되어야 한다는 조언이다.

인문학은 원래 중요한 것이지만 이미 스티브 잡스가 약 20년 전 강조했던 부분이기도 하다. 20년이 흘렀고 AI가 등장한 시점에서도 각광받는 인문학은 시대를 관통하는 진리인데 사람들은 그 중요성은 커녕 그 정의조차도 잘 모르는 것 같다.

주위를 둘러봐도 그저 문과의 한 영역이라는 선입견이 지배적인데 우리 교육 구조의 문제점의 반증이기도 하겠지만 스스로의 발전을 위해서는 인문학이 그저 문과의 과정인지, 인간과 문학에 대한 고찰인지, 나아가 저자의 관점처럼 인간과 관련된 학문에 과학과 언어(관계)가 더해진 개념인지는 이 책을 읽으며 생각의 호흡(본문 중 등장하는 저자의 인상적인 표현)을 깊게 가져갔으면 하는 바램이다.인문학

또한 AI가 신이 아닌 이상 여전히 못하는 영역은 존재한다. 사람은 그 영역을 채우면 그만이다. 그러기 위해 나는 시간이 중요하다고 생각한다. AI가 떠먹여주는 일들은 AI에게 맡기거나 시키고 내 시간은 AI가 할 수 없는 영역에 집중하는 것이 당연한 수순이다.사람이 나아가야 할 방향

그 외에도 릴스니 숏츠니 하는 도파민을 자극하는 중독에서 해방될 수 있는 좋은 습관을 갖고, AI에게 없는 자아(개인적으로는 자유의지의 존재 여부를 고찰했었다) 여부에 따라 AI의 환상에 되려 인간이 할루시네이션을 유발하는 일에 대한 경계에 대한 조언 등 저자의 다양한 관점이 담겨 있어 유익했다.

AI 시대에는 더 깊은 생각이 필요하다. 이 책은 그런 사유의 장을 마련하기에 제 격이다. 급변하는 현재와 미래에 한숨을 쉴 시간이 있다면 이런 부류의 책을 읽으며 더욱 깊은 생각에 잠겨보는 것은 어떨까 싶다. 적어도 이런 질문에 대한 답은 AI가 내려줄 수 없는 아직까지는 인간 고유의 영역이기 때문이다.




댓글(1) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
좋은습관연구소 2025-08-11 14:50   좋아요 0 | 댓글달기 | 수정 | 삭제 | URL
이 책을 출간한 좋은습관연구소입니다. 좋은 리뷰 남겨주셔서 감사합니다. ^^ 앞으로도 좋은습관연구소 책 많이 읽어주세요.
 
빅 사이클
레이 달리오 지음, 조용빈 옮김 / 한빛비즈 / 2025년 6월
평점 :
장바구니담기


국가의 흥망성쇠가 일정한 패턴으로 반복된다는 역사적 관찰을 토대로, 특히 대규모 부채 사이클의 관점에서 미래를 점쳐본다.

레이 달리오의 또 다른 신간이 출간되었다. 세월이 흐르고 완숙한 노인이 된 저자가 아낌없이 세상을 위해 자신이 성공한 비결의 원천이 되는 인사이트를 나눈다는 것은 독자로써는 참 기쁜 일이 아닐 수 없다.

이미 4권에 이르는 그의 저서 레이 달리오의 원칙레이 달리오의 금융 위기 템플릿변화하는 세계 질서성공 원칙를 모두 읽고 리뷰를 남겼던 나로써는 이번 도서 또한 그가 지금까지 주장한 철학의 연장선상이라 생각한다.

그의 원칙 시리즈 2권에서 세상을 바라보는 그만의 관점이 이번 도서에서도 고스란히 담겨있어 그만의 독특한 시각과 관점을 배우는 데 도움이 되었고, 금융 위기 템플릿과 변화하는 세계 질서에서 주장한 세계의 변화와 부채 중심의 사이클 또한 이미 언급했던 내용들이 많아 이 책을 수월하게 읽는데 도움이 되었다.

전작에 걸친 내용이기도 하지만 달리오가 주장하는 바에 따르면 국가의 부상과 몰락은 다음과 같은 여러 단계를 거치는데 그가 주장하는 기본 사이클에 대해 숙지하는 것이 이 책을 수월히 이해하는데 많은 도움을 주기에 간략히 정리해 보려 한다.

  • 먼저 새로운 질서가 형성된다. 새로운 국가나 제국이 등장해 질서를 만들고, 경제적 번영과 정치적 안정이 구축되고 생산성과 경쟁력이 크게 향상되는 시기다.

  • 다음으로 평화와 번영의 단계에 들어서면 경제가 성장하고, 사회가 안정되며, 부채가 생산적으로 증가한다. 기술 혁신과 교육, 인프라 투자 또한 활발해진다.

  • 결국 과도한 확장과 불균형이 발생한다. 지속된 번영에 따라 부의 격차가 커지고, 과도한 부채와 자산 버블이 형성되며, 사회 내부의 불평등과 갈등이 심화된다.

  • 이는 버블 붕괴와 침체로 이어지는데 부채 버블이 터지고 경제 위기가 닥치며 금융 시스템이 흔들리고, 실업과 불황이 찾아오는 위기가 발생한다.

  • 이를 해결하고자 정부와 중앙은행이 위기를 막기 위해 대규모로 돈을 찍어내고 신용을 공급하게 되는 돈과 신용의 남발 단계에 이른다. 이는 인플레이션, 통화가치 하락, 사회적 불만을 가속화 시킨다.

  • 결국 혼란, 혁명, 전쟁 등이 발생한다. 내부적으로는 혁명이나 내전, 외부적으로는 국가 간 전쟁이 발생할 수 있는 단계이다.

  • 결국 부와 권력의 재분배가 일어나고, 기존 질서가 붕괴되며 새로운 질서의 시작으로 다시 순환 된다는 것이 그가 주장하는 빅사이클이다.

이번 도서 빅사이클 역시 국가와 제국의 흥망성쇠는 일정한 패턴을 따라 반복된다는 역사적 관찰에서 출발한다. 단순한 경기순환을 넘어서 수십 년에서 수백 년에 걸쳐 경제, 정치, 사회, 기술 등 여러 요인이 맞물려 일어나는 거대한 변화의 흐름을 설명하는 점이 특징이다.역사

다만 일상을 사는 대부분의 사람들의 경우 정해진 수명이 있고 먹고 사는데 정신이 없다보니 단기적인 사이클만 보게되어 빅사이클을 볼 수 없거나 보려하지 않는다는 점에 경종을 울리고 있다.

그의 견해에 따르면 현 시점의 경우, 과도한 확장과 불균형에서 질서의 붕괴로 넘어가는 구간에 진입한 것 같다. 부채와 신용의 측면에서는 미국과 주요 선진국의 부채가 역사적으로 높은 수준이며, 통화 가치 하락과 인플레이션 압력이 지속되고 있다.

또한 선진국 내 양극화, 정치적 분열, 사회적 불만이 심화되고 있으며 미국과 중국의 패권 경쟁, 러시아-우크라이나 전쟁 등 글로벌 갈등이 고조된다는 점, 중앙은행이 위기 대응을 위해 대규모로 돈을 풀고 있지만, 이로 인한 부작용(인플레이션, 자산 버블 등)이 커지고 있다는 점이 그 증거이다.

머지않아 혼란, 전쟁, 혁명으로 이어지는 수순이 기다리고 있다는 것인데 이런 상황은 언제나 피하고 싶은 단계이지만 피할 수 없다면 결국 대비를 한 사람과 아닌 사람의 결과적 차이는 상상을 초월할 것이다.

이 책을 통해 얻은 개인적인 대책은 다음과 같다. 재무 구조가 탄탄한 국가에의 투자를 늘리고 채권 등의 부채 자산에의 투자는 비중을 축소하는 것이 좋을듯 하다. 금, 비트코인 등 비정부 자산의 비중을 확대하고 다양한 수입원을 구축하는 것도 해법이다. 단기 유동성 자산을 늘리는 것도 중요한 부분이라는 생각이 들었다.

또 이러한 미래에 대한 대비 외에도 부채 수준(국가, 기업, 가계), 인플레이션 및 통화 가치 변화, 정치적 양극화 및 사회적 불안정 지표, 국제 갈등 및 무역/군사적 긴장, 중앙은행의 정책(양적완화, 금리 등) 등 다각적인 측면에서 세계와 경제를 바라보는 시각을 부여해주는 점은 이 책의 또 다른 매력이라고 할 수 있다.

결국 그의 말대로 빅사이클의 후반부는 혼란과 기회가 공존하기에 역사를 이해하면 새로운 질서를 주도할 기회를 얻을 수 있을 것 같다.

사는 동안은 한번도 겪지 못한, 누구도 쉽게 대답하지 못하는 빅 사이클에 대비하기 위해 국가를 운영하는 정책 집행자 및 경제학자들은 물론 개인적인 안위를 지키기 위해 모든 독자들에게 일독을 권하고 싶다.대책


댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
UX/UI 디자이너를 위한 실무 피그마 - 디자인 시스템에서 개발 전달까지, 3판
클레어 정 지음 / 한빛미디어 / 2025년 5월
평점 :
장바구니담기


피그마의 실전 활용법을 담은 책으로 특히 실습 중간중간 저자의 노하우와 감각을 익힐 수 있어 유익했다.

기술 서적이 3판에 이르도록 출간되었다는 것부터 이미 시장에서 검증된 책임을 의미힌다. 역시나 기대 이상이었는데 특히 인상적이었던 부분은 책의 실습을 따라하며 느낄 수 있었던 저자의 감각, 판단, 경험 등이다.

개인적으로 피그마에 관심을 둔 것은 전략 및 기획 중심의 업무를 시작하면서부터다. 그동안 백엔드 중심의 개발을 진행하였기에 사실 UX와 밀접할 일은 없었지만 전략 중심의 업무를 진행하며 보고 및 프레젠테이션 성격의 업무 포션이 늘었다.

사내 IT 시스템들의 구조도 그림을 그리는 것부터, 최신 동향의 서비스 및 기술들을 발표하는데 PPT 활용을 피할 수 없었고 mermaid, SVG 중심의 AI에게 의뢰하는 산출물의 표현력도 한계가 있어 그 대안으로 요즘 대세인 피그마를 익히고자 이 책을 읽게 되었다.

이 책은 크게 두 부분으로 나뉜다. 전반부는 피그마의 세부적인 기능 소개가 담겨 있다. 전반적인 메뉴 소개로 시작하여 그래픽스타일, 라이브러리, 정렬, 레이아웃, 각종 컴포넌트, 다자인 시스템에 이르는 각 과정을 따라하기만 해도 피그마에 금방 친숙해진다.

실질적으로 큰 도움을 받은 것은 후반부이다. 후반부는 iOS, 안드로이드 기반 앱을 하나씩 만들어보고 반응형, 디자인 시스템 등의 실무 실습을 진행하게 되는데 이 실습을 고민하며 따라가다보면 저자가 그간 쌓아온 감각과 노하우를 쉽게 얻을 수 있다.후반부

특히 디자인 감각이 좋은 사람도 실무 UX를 만드는데 어려움을 겪는 이유가 각 요소를 어떻게 통일성있게 구슬을 꿰어나가야 할지에 대한 막막함이 큰 것 같은데 완성품에 이르는 일련의 전체 과정을 조율 할 수 있게 구성된 점이 매력적인 부분인 것 같다.

아울러 시대적 배경에 맞게 피그마에 내장된 AI 활용법도 부분부분 소개되고 있어 유익했다. 물론 유료 기능인지라 직접 실습을 따라하긴 어려웠지만 생각보다 기능이 뛰어난 것 같아 다음번엔 별도의 AI 기능 활용법에 관한 도서도 나오면 좋겠다는 생각이 든다.AI

그 외에도 개발에 연계되는 기능들도 소개되어 있어 유익하다. 애셋을 내보내는 기능이나 개발 모드를 활용하는 법 그리고 git과 유사한 브랜치로 파일을 관리하는 법도 소개된다.브랜치

무엇보다 중간중간 등장하는 디자인 노하우 컬럼은 때로는 저자의 경험과 노하우가 때로는 실습에 필요한 기반지식의 통찰이 담겨 있어 유익했다. 오히려 본문 내용보다 집중해서 읽어야 할 부분이다.노하우

책 자체의 편집 및 다지인도 너무 가독성이 좋아 읽기 편했다. 저자의 내공과 내용 못지 않게 전체적인 책의 디자인이나 시각적인 요소도 완성된 하나의 예술작품 같다는 생각을 들게 한 예쁜 책이다.

다만, 피그마를 처음 써보는 사람에게는 초기 진입장벽이 있는듯 하다. 초반부에는 체계를 잡기보다는 무조건 백문이 불여일타로 실습을 진행하는 부분이 수록되었으면 어땠을까 싶다. 초반부 피그마에 접속도 제대로 못하고 있는 수준에 메뉴 기능 설명은 현실적으로 도움이 되지 않았다.

실력 성장형 혹은 시간에 따른 흐름 구성도 다소 아쉬웠다. 모듈별로는 딱떨어지고 깔끔하게 실습할 수 있었으나 각 장의 실습을 진행하는데 별도의 검색이나 AI를 활용하여 진입해야 하는 번거로움이 있었다.

아마도 3판에 이르며 중급자들 수준에 초점을 맞춰 군더더기가 제거되어서 그런것 아닐까 싶기는 한 데 몇 페이지 더 할당된다면 초보자나 입문자도 품는 완벽한 책이 될 수 있을 것 같다.

아무튼 이런 부분들은 매우 사소한 부분이고 사실 더 중요한 UX 실무자의 감각과 노하우를 익힐 수 있다는 본연의 관점에 비춰보면 매우 훌륭한 책이다. 피그마를 익히는 것을 넘어서 실전적인 감각도 덧칠하고 싶은 독자들에게 추천하고 싶다.




댓글(0) 먼댓글(0) 좋아요(0)
좋아요
공유하기 북마크하기찜하기 thankstoThanksTo
 
 
 
멀티패러다임 프로그래밍 - 객체지향, 함수형, 명령형의 통합적 사고로 구현하는 소프트웨어 설계와 구현
유인동 지음 / 한빛미디어 / 2025년 4월
평점 :
장바구니담기


왜 멀티패러다임이 필요한지 본질을 알게 해주는 저자의 내공에 놀랐고, 이론과 실무의 간극을 없애는 전달력에 한 번 더 놀랐다.

간만에 또 불세출의 명작이 등장했다. 10년 전에 읽었던 멀티패러다임 프로그래밍을 다룬 또 하나의 명작 “브루스 테이트의 세븐 랭귀지《Seven Languages in Seven Weeks》”의 신선함을 다시금 느끼게 해준 명작이 이번엔 국내 저자에 의해 출간되어 더욱 기쁘다.

세븐랭귀지는 Ruby, Io, Prolog, Scala, Erlang, Clojure, Haskell 등 7개의 언어를 다루면서 언어나 패러다임은 도구일뿐 개발자로 하여금 멀티패러다임을 통한 문제 해결 본질에 집중하게끔 나무보다 숲을 보는 안목을 키워줬던 책이다.

반면 본 도서는 앞선 도서 대비 국내 저자의 저술인만큼 가독성이나 전달력 측면에서 현저히 뛰어나고, 또 ES6나 ES2017 등 그 이후 10년 간의 변화를 살펴보며 멀티패러다임 프로그래밍이 어떻게 정착했는지를 엿볼 수 있다.

무엇보다 실무에 즉시 적용할 수 있는 예제가 풍부히 수록되고, 원리에서 출발하여 실무에 적용하는 과정 즉, 왜 활용하는지에 대한 부분을 구체적으로 보여줌으로써 이론과 실무의 간극을 메우는 구성이 탁월하다.

25년 전 대학시절 C언어로 온갖 서비스를 구현하는 고수 선배의 코딩을 어깨너머 지켜본 적이 있다. C언어로 인코더나 디코더를 직접 구현하며 cgi로 웹 프로그램을 만들고, socket 통신은 물론, 게임 등 장르를 가리지 않는 탁월함에 적잖이 놀랐다.

그 중 가장 인상깊었던 프로젝트는 당시 OOP 개념이 지금처럼 전방위에 퍼지지 않았던 시점임에도 절차지향 프로그래밍의 대명사였던 C언어를 가지고 OOP 흉내를 내는 과정이었다.

구조체를 객체와 유사하게 활용하고, 내부에 함수 포인터를 활용하여 메소드 처럼 활용하는 방식이었는데 그도 모잘라 define 매크로를 활용하여 마치 요즘의 타입 추론과 함수형 언어를 흉내내는 것이 영락없는 무림세계 그것도 마교의 교주 천마같은 느낌이었다.

그 과정을 지켜보는 것은 굉장히 흥미로웠는데 까마득한 후배인 나로써는 C언어를 저렇게 Pythonic하게 활용하는 것이 맞는지 궁금증이 들기도 했고, 때로는 안정성에 문제가 있을 것 같은 불안감이 들기도 했고, 그럼에도 필요한 요소요소마다 언어를 철저히 도구로 수려하게 활용함에 감탄하기도 했다.

이런 고수가 있었는가 하면 또 한편으로는 개발자 커뮤니티에선 별 쓰잘데기 없는 논쟁이 벌어지기도 햇다. C언어와 PHP언어 중 무엇이 훌륭하냐는 어리석은 논의였는데 프로그래밍을 당시 무협 세계에 종종 빗대었던 개발자들의 이상한 습성은 흡사 정사대전을 보는 듯 했다.

사실 문제의 본질을 파악하여 해결하기 위한 과정이 중요하기에 도구가 목적이 아닌이상 도구의 쓰임새를 논할일이지 그 자체의 우수성을 따지는 것은 정말 불필요한 논쟁이다. 그럼에도 그때는 범용 언어인 C언가 훨씬 잘낫다느니, 콩나물을 사러가는데 자전거를 타야지 쓸데없이 그랜저를 타고가는게 맞냐며 PHP를 옹호하는 등 각자 나름의 개똥철학을 펼치며 스스로가 좋아하는 문파(?)를 비호하는 어리석은 무림인이 널리고 널렸다.

아무튼 이 책은 다양한 언어들이 가진 특성을 제대로 이해하고 선택하며 문제해결에 최적의 방안을 찾기 위한 언어 및 패러다임의 장점만 뽑아낸 조화를 추구하는 책이다. 더 나아가 저자의 풍부한 경험을 바탕으로 이론과 실무의 간극을 메워준다.

저자는 국내 굴지의 기업에서 경험을 쌓았으며 타입스크립트, 오브젝티브-C, 자바, Node.js 등 다양한 언어를 다뤄왔고, fx.js 창시자로 오픈소스 메인테이너 활동까지 참여해 온 고수이다.

무엇보다 책의 내용과 전달력이 저자의 능력을 입증한다. 책의 내용은 마치 라이브코딩을 보는 듯 전달력이 뛰어나며, 구체적인 예시를 들어 Why 문제에 대한 본질을 전달하는 과정은 예술의 경지에 가깝다.

예를 들어 본문 중에 NodeList가 왜 상속이 아닌 interface를 활용했는지에 대한 답변을 예시를 통해 명쾌하게 설명한 부분이 있다.

한 컨트리뷰터가 NodeList에 Array를 상속받도록 작성하여 배포한 사례를 가정하는 부분이 좋은 예시가 되겠다. 이후 Array에 변경을 가할 때마다 NodeList를 함께 고려해야 하는 의존성이라는 본질을 발견한다. 이는 오픈소스 기여 경험이 있는 개발자라면 흔히 경험을 통해 얻는 좋은 예시인데 이처럼 이론을 실무로 설명할 수 있는 저자의 내공과 경험은 의심할 여지가 없다.

프로그래밍의 패러다임에는 여러 형태가 존재한다. 순차적으로 명령을 수행하는 원시적인 절차지향 프로그래밍에서 부터 객체와 클래스 중심의 객체지향 프로그래밍, 상태 없이 순수 함수 중심을 추구하는 함수형 프로그래밍, 선언적으로 규칙과 조건을 명시하는 논리형 프로그래밍, 그 외에도 데이터 지향 프로그래밍 등 다양한 패러다임이 존재한다.

반면 지난 20~30년간 국내 IT 시장은 너무 편식한 경향이 없지 않다. Java 중심의 OOP에 너무 집중했고 SI 기반이 찍어내기식 돈만 바라보는 업체들의 행태 덕분에 편식은 점차 심해졌고, 건전한 개발자 생태계 발전에 적잖은 걸림돌로 작용했다.

또한 요즘엔 또 다른 의미의 편식이 존재한다. 프레임워크에 너무 의존하다보니, 대체로 후배들은 설계적 관점 즉, 멀티패렅다임 프로그래밍 수준의 숲을 보는 능력이 매우 떨어진다.

앞으로 AI의 물결이 모든 것을 바꾸는 시대가 다가오는데 프롬프팅 하나만 봐도 알 수 있듯 이제 질문을 정말 잘해야하는 시대가 다가왔다. 사실 질문을 잘할 수 있으려면 본질을 파악하는 능력이 중요하다.

본질을 파악하고 가진 요소들을 얼마나 잘 오케스트레이션하여 AI로 하여금 원하는 것을 얼마나 빠르게 얻을 수 있는지에 대한 능력이 중요한 시대가 된 것이다.

GoF 디자인 패턴 등장배경에서 볼 수 있듯 본 도서는 앞으로 AI와 그 사용자들이 만들어 나갈 변화에 필요한 숨은 진의를 파악할 수 있는 AI 시대에 필요한 교본과도 같은 책이라 할 수 있다.

AI가 발전하며 데이터가 더욱 중요해졌고 이는 프로그래밍의 발전 방향에 데이터가 상당한 종속성을 행사하는 계기가 되었다. 개인적으로 이터러블이 프로그래밍 언어론에 지대한 영향력을 행사하는 것은 데이터와 자료구조에 기인한다고 본다.

List, Array와 같은 자료구조를 활용하는 한 for문 형식은 피할 수 없게 되었는데 수치형 집합을 GPU가 병렬 연산하는 트렌드까지 만나면서 한 층 더 나아가 선형대수의 번창에 이르는 변화를 주도했다.

유사 군 데이터를 처리하는데 있어 프로그래밍은 next() 구조를 도입할 수 밖에 없었고 연역적으로 프로그래밍만 독립적으로 놓고 보던 초기 모델은 점차 데이터에 종속된 귀납방식으로 변모했다. 이 또한 어디까지나 문제 해결을 위한 당연 수순이다.

비동기 또한 패러다임을 바꾼 지대한 요소이다. 웹과 모바일의 등장으로 기다림 없이 다른 일을 할 수 있도록 극도의 효율성을 추구하는 과정이 필요한 시대가 되었다. 가장 큰 요인은 I/O 문제에서 발생하는 데 프런트엔드 진영이라면 앞서 언급한 UX 부분 백엔드라면 리소스를 제어하는 부분이 이에 해당한다.

대신 개발자로 하여금 실행 순서를 제어하는 능력을 요하는 부작용(?)이 생겼다. 실무적으로는 가독성이나 안정성 측면에 빨간불을 켠 셈이다. 모든 것은 트레이드 오프가 발생하니 어쩔 수 없는 문제이다.

이 책에서 잘 정리하고 있듯 자바스크립트 진영만 봐도 ES6에서의 Promise 도입, 2017년 async-await 채택의 현상은 이런 시대상을 반영한다.

객체 진영의 반복자 패턴에 함수형 진영의 일급함수가 결합하기 시작한 것이다. class 문법을 도입하며 동시에 순회규약 도입했다. 덕분에 지연평가나 리스트프로세싱이 가능해졌다.

메타 프로그래밍에서 한발 더 나아가 멀티패러다임이 대세가 되면서 함수는 다른 호출측 함수의 인자처럼 활용되며(일급함수-고계함수), 코드를 데이터와 로직이 담긴 List로 보는 관점으로 리스트 프로세싱이 탄생했다.

이 부분에 대한 구체적인 예시는 115p를 참조하면 된다. LISP에 착안하여 map(f, iterator)형식의 Pipe Operator를 만들어 보는 과정의 전반을 이해할 수 있다면 그리 어렵지 않은 이야기인데 이는 저자의 통찰과 전달력 덕분임을 강조하고 싶다.Pipe Operator115

이 책에 소개되진 않았지만 내가 자주 활용하는 Python 진영의 인기쟁이 Pandas 라이브러리에 apply(), map(), applymap(), agg(), transform(), filter(), pipe() 함수 등이 흔히 활용되는 것도 이런 멀티패러다임의 영향이다.

책의 전반부(1~4장)은 멀티패러다임이 등장하게 된 Why 즉, 본질에 집중한다.

수학적 원리, 불변성과 순수성, 예측가능성, 병렬처리, 비동기처리, 데이터처리, 쪼개어 연결하는 과정, typeof 키워드로 안전함을 보장하는 타입 추론, promise, 반복자 이터레이터의 변화, 제너레이터에서 yield와 iterator 반환의 결합, for…of 문법과 Symbol.iterator 시그니처의 활용, 커링, 변수같은 일급함수, 일급함수를 호출하는 고차함수(일급함수의 호출측), 필요한 시점에 필요한 만큼만 꺼내쓰는 지연평가, 고차원의 다형성을 제공하는 제네릭, 객체 모델링, 유연성과 확장성, 책임소재, 협업지향, 추상화, 캡슐화, 전개연산자(…), 구조 분해, 상속과 인터페이스의 활용 방법, 비동기 처리 등 정신없는 풍랑을 거치다보면 어느덧 함수형이 무엇인지, 객체지향이 무엇인지 별 의미가 없는 정반합의 완숙한 경지에 이른다.

후반부는 전반부에서 키운 내공을 바탕으로 현실의 세계를 평정한다. 패턴과 예제 중심으로 문제 해결의 본질을 어떻게 활용할지에 대한 저자의 사고방식을 쫓아가다보면 자연스럽게 내공을 운용할 수 있게 된다.동시성핸들링

명쾌하게 탄탄하게 쌓인 개념을 바탕으로 자연스럽게 손과 머리로 체화되는 과정이란..이렇게 이론과 실무의 경계를 지우는 저자의 내공과 전달력에 경의를 표하고 싶다.

책이란게 원래 사놓고 안보는 독자가 대다수겠지만 초급자에게는 1장만 해석되어도 프로그래밍의 세계가 달리 보일 것이다. 중급자는 5장만 따라해 봐도 본인의 실무 내공에 큰 변화가 있을것 같다.

아마도 보이지 않던것이 보이기 시작할텐데 시간, 속도, 시간복잡도, 프로세스, 메모리와 같은 H/W 리소스에 이르는 보이지 않는 것들이 보이고 신경쓰이기 시작할 것이다.

적어도 IT 서적 중 이렇게 전달력이 높은 저자를 본적이 없다. 다년 간의 내공과 강의 경험 없이는 이게 가능할까 싶다. 우리나라에도 이런 책이 존재한다는 것이 자랑스러울 정도이다. 왠만한 유관분야 원서보다도 이 책으로 시작하는 것을 추천하고 싶다.




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