<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>=&amp;gt;</title>
    <link>https://gtdr.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Tue, 25 Aug 2026 00:56:16 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>띵킹</managingEditor>
    <image>
      <title>=&amp;gt;</title>
      <url>https://tistory1.daumcdn.net/tistory/2923138/attach/7b19f5eddfdd45ccaae2a3775263476f</url>
      <link>https://gtdr.tistory.com</link>
    </image>
    <item>
      <title>Release의 모든 것 리뷰</title>
      <link>https://gtdr.tistory.com/192</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/byuIHX/btsCzJN7QBV/KN92l0tVE9MMyVFCQP5QY1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/byuIHX/btsCzJN7QBV/KN92l0tVE9MMyVFCQP5QY1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/byuIHX/btsCzJN7QBV/KN92l0tVE9MMyVFCQP5QY1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbyuIHX%2FbtsCzJN7QBV%2FKN92l0tVE9MMyVFCQP5QY1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;368&quot; height=&quot;537&quot; data-origin-width=&quot;823&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;실제 웹 서비스를 운영하면서 생기는 다양한 이슈들이 총망라된 책이다. 문제 발생 시 대응할 수 있는 방법은 물론이고, 대규모 아키텍쳐를 설계하는 데 있어서 고려해야 할 많은 사항을 전달해준다. 비즈니스적인 내용부터 스레드 덤프나 네트워크 프로토콜 같은 깊은 내용까지 다루고 있어서, 제목 그대로 Release의 모든 것을 알려준다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아키텍쳐 설계나 분산 시스템 같은 어려운 내용을 다루기 때문에 읽기 어려울 거라 생각했지만, 실사례를 기반으로 한 유쾌한 문체로 상황을 덤덤하게 풀어나간다. 실제 사례가 기반이라 그런지 배포하고 있는 서비스가 있는 지금, 읽으면서 공감 가는 상황이 많았고 설계에 대한 생각이 한층 깊어진 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;예시로 다루고 있는 시스템은 대부분 자바로 된 웹 시스템이지만, 이해하기 위한 코드 예시일 뿐이지 다양한 배포 환경에 적용할만한 상황을 다루고 있다. DevOps나 백엔드 어느 분야에 치우쳐있지 않고, 전반적인 웹 아키텍쳐에 대한 내용이기 때문에, 배포에 대해 막 공부하는 주니어 개발자보다는 시니어 개발자나 직접 서비스를 개발 및 배포하는 1인 개발자에게 적합한 내용인 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/u&gt;&lt;/p&gt;</description>
      <category>서평</category>
      <category>Release의 모든 것</category>
      <category>나는 리뷰어다</category>
      <category>마이클 나이가드</category>
      <category>한빛미디어</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/192</guid>
      <comments>https://gtdr.tistory.com/192#entry192comment</comments>
      <pubDate>Mon, 25 Dec 2023 22:01:18 +0900</pubDate>
    </item>
    <item>
      <title>우아한 타입스크립트 with 리액트 리뷰</title>
      <link>https://gtdr.tistory.com/191</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;600&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dmQedO/btsASsOAaCO/4kDlvisJKChl9LYjUkRZOk/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dmQedO/btsASsOAaCO/4kDlvisJKChl9LYjUkRZOk/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dmQedO/btsASsOAaCO/4kDlvisJKChl9LYjUkRZOk/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdmQedO%2FbtsASsOAaCO%2F4kDlvisJKChl9LYjUkRZOk%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;440&quot; height=&quot;440&quot; data-origin-width=&quot;600&quot; data-origin-height=&quot;600&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프론트엔드 개발자라면 타입스크립트 학습이 선택이 아닌 필수가 된지 오래다. 많은 실무 현장에서 타입스크립트를 사용하고 있고, 형식적인 컨벤션을 넘어서 타입스크립트를 사용함으로써 얻는 개발 편의성 또한 무궁무진하다. 아예 자바스크립트가 아닌 타입스크립트로 개발을 시작하는 사람도 적지 않다고 들었다. 나는 타입스크립트에 앞서 자바스크립트를 먼저 학습했었고, 이후에 타입스크립트를 배웠다. 처음에는 자바스크립트의 동적 타입 시스템에 오히려 매력을 느끼고 있었고, 타입스크립트의 타입을 그저 귀찮게 여기고 있었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;많은 초보 자바스크립트 개발자들도 나와 같은 생각을 하지 않았을까 한다. 자바스크립트로 작성된 프로그램을 처음 타입스크립트로 변경했을 때, noimplicitany 플래그를 활성화 시켰을 때 받는 충격과 당혹감이 타입스크립트 사용에 거부감을 불러일으켰을 것이다. 이미 잘 작동하고 있던 프로그램이 컴파일조차 되지 않으니 말이다. 타입스크립트에 대한 기초적인 학습이 끝나고,&amp;nbsp; 코드에 귀찮을 뿐인 단순한 타입 타이핑을 하고 있으면 타입스크립트가 도대체 왜 찬사를 받는 것인지 의문이 생길 것이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;의문을 해결하기 위해 다양한 타입스크립트 입문 서적을 읽어보았다. 좋은 내용도 많았지만 대다수의 서적이 프론트엔드 개발과는 거리가 있었다. 단순히 타입을 일일이 타이핑 하는 수준을 넘어서 '우아하게' 타입스크립트를 사용하기 위해서는 기본적인 타입스크립트 지식과 다양한 깨달음이 필요했었다. 다른 사람들이 타입스크립트를 어떻게 사용하는지 찾아보기도 했었고, 스스로 귀찮은 타이핑을 어떻게 줄일 수 있을까 고민하는 시행착오도 많이 겪었었다. 또한 개발하는 프로그램이 거대해지고 많은 데이터를 다루게 되면서야 비로소 타입스크립트의 효용을 제대로 느낄 수 있었다. 공부할 땐 잘 와닿지 않았던 부분을 경험으로 느꼈던 것이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러한 경험과 노하우를 잘 녹여낸 책이 &lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;바로 '우아한 타입 스크립트 with 리액트'가 아닐까 한다.&lt;span&gt; 책은 여타 다른 타입스크립트 서적과 마찬가지로, 전반부에서는 타입스크립트에 대한 기본적인 내용들을 알려준다. 다만 다소 형식적인 예시로 실무와 거리가 있는 기존 서적들과 달리, 많은 예제들이 우아한형제들의 서비스에서 실제로 등장할 법한 코드로 제시된다. 중간중간 '우형 이야기'라는 챕터를 통해 정해진 사용법이 없고 활용법에 대해 의견이 갈리는 키워드(enum vs union, type vs interface, unknown과 any, never등의 타입)에 대해 실무진의 견해를 소개시켜준다. 상당히 흥미로운 내용이 많았고, 개발하면서 궁금했던 내용도 많이 적혀있어서, 책을 읽는 도중에도 IDE를 켜서 많은 코드를 리팩토링 했었다. 후반부에서는 비동기 호출, 리액트 훅, 상태 관리에 대한 내용이 등장한다. 엄밀히 따지자면 리액트나 웹 개발에 대한 내용이지만, 타입스크립트를 그러한 상황에서 어떻게 활용할지에 대한 노하우가 잘 정리되어 있었다. 복잡한 라이브러리나 비동기 로직을 사용하면서 타입을 어떻게 정해줄지에 대한 많은 어려움을 해결해 줄 수 있는 내용이었다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #333333; text-align: start;&quot;&gt;&lt;span&gt;굳이 아쉬웠던 점을 꼽자면, 독자가 프론트엔드 개발, 특히 리액트에 대해서는 일정 수준은 알고 있어야 내용을 제대로 흡수할 수 있다는 걸 꼽겠다. 대략 380페이지의 분량에 타입스크립트와 리액트 모두를 설명할 수는 없는 노릇이니 어쩔 수 없는 부분이다. 또한 책은 타입스크립트가 자바스크립트의 슈퍼셋임을 명확하게 선을 긋고, 타입으로써의 타입스크립트만을 다룬다. 사실 이게 당연하고 옳지만, 시중에 출판된 많은 타입스크립트 서적에서 자바스크립트에 대한 설명이 등장한다. 자바스크립트를 잘 모르는 독자가 자바스크립트를 아우르는 타입스크립트를 배우기 위해 책을 골랐다간 낭패를 볼 수도 있겠다.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;간만에 좋은 프론트엔드 개발 서적을 읽었다. 프론트엔드라는 직무가 전문성을 갖고 분화된지 얼마 되지 않아서 책으로는 학습 욕구를 채우기가 많이 어려웠는데, 앞으로도 이런 책이 많이 나왔으면 좋겠다. 또한&amp;nbsp;소속 개발자들의 인사이트를 엮어서 책을 낸 우아한형제들의 개발 문화도 참 부럽고, 대단하다는 생각이 들었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/u&gt;&lt;/p&gt;</description>
      <category>서평</category>
      <category>나는 리뷰어다</category>
      <category>우아한 타입스크립트 with 리액트</category>
      <category>한빛미디어</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/191</guid>
      <comments>https://gtdr.tistory.com/191#entry191comment</comments>
      <pubDate>Sun, 26 Nov 2023 22:54:45 +0900</pubDate>
    </item>
    <item>
      <title>앤서블로 시작하는 인프라 자동화 리뷰</title>
      <link>https://gtdr.tistory.com/190</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;260&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Ndd9g/btszlHew3pM/mqnTF4rfYn3NKAUJAHEO51/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Ndd9g/btszlHew3pM/mqnTF4rfYn3NKAUJAHEO51/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Ndd9g/btszlHew3pM/mqnTF4rfYn3NKAUJAHEO51/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FNdd9g%2FbtszlHew3pM%2FmqnTF4rfYn3NKAUJAHEO51%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;202&quot; height=&quot;260&quot; data-origin-width=&quot;202&quot; data-origin-height=&quot;260&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;앤서블을 활용해서 인프라 계층에서의 자동화와 시스템 관리하는 방법을 학습할 수 있는 책이다. 웹개발, 특히 프론트엔드 개발을 해오고 있어서 자주 접할 만한 내용은 아니었지만, 좋은 개발자가 되기 위해서는 인프라에 대한 이해도 충분히 있어야 한다고 생각했기 때문에 읽어보게 되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책은 인프라 쪽 지식이 전혀 없는 사람도 쉽게 읽을 수 있도록 단계적으로 구성되어 있다. 1장에서는 기본적인 개념을 학습하고 개발 환경을 구축한다. 2장에서는 앤서블을 작성하는 기본적인 문법을 학습한다. 3부에서는 실무에서 접할만한 상황을 예시로 앤서블을 활용하는 실습을 진행한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가상 머신 환경에서 실습을 진행하기 때문에, 실습 진행에 큰 어려움이 없었고 앤서블에 대한 기본적인 이해를 할 수 있었다. 최근 사이드 프로젝트를 다양한 인스턴스에 엮어서 배포하고 있는데, 몇가지 귀찮은 작업을 직접 해야할 일이 있었다. 책을 읽으면서, 그러한 문제 상황에 적용할 수 있는 좋은 아이디어들이 떠올랐고, 아직 직접 적용해보지는 않았지만 앞으로 개발하는 데에 있어서 많은 도움이 될 것 같다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/u&gt;&lt;/p&gt;</description>
      <category>서평</category>
      <category>나는 리뷰어다</category>
      <category>앤서블로 시작하는 인프라 자동화</category>
      <category>한빛미디어</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/190</guid>
      <comments>https://gtdr.tistory.com/190#entry190comment</comments>
      <pubDate>Sun, 29 Oct 2023 18:48:31 +0900</pubDate>
    </item>
    <item>
      <title>그림으로 배우는 리눅스 구조 리뷰</title>
      <link>https://gtdr.tistory.com/189</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmk9sq/btsvmzdS2xc/5yG7EVoR5Qj2PckFdzALqK/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmk9sq/btsvmzdS2xc/5yG7EVoR5Qj2PckFdzALqK/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmk9sq/btsvmzdS2xc/5yG7EVoR5Qj2PckFdzALqK/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbmk9sq%2FbtsvmzdS2xc%2F5yG7EVoR5Qj2PckFdzALqK%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;514&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 클라우드의 활용도가 넓어져서, OS에 대한 지식이 얕아도 그럭저럭 애플리케이션을 운용할 수 있는 세상이 된 것 같다. 사이드 프로젝트를 5가지의 클라우드에 분산 배포 했는데, 각종 서비스가 높은 수준의 추상화, 블랙박스화가 진행되어 있어서 간편하게 사용했었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼에도 불구하고 서비스를 제대로 다루거나 문제를 해결해야 할 때, 성능 튜닝을 추구하려면 서비스 기반에 대해 깊은 이해가 필요하다고 본다. '그림으로 배우는 리눅스 구조'가 그러한 이해를 돕는데 적합한 서적이 아닐까 한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;'그림으로 배우는' 이라는 쉬워보이는 느낌과 얇은 책의 두께에서 오는 인상과는 다르게, 주제 전반이 꽤나 까다로운 내용이다. 프로세스, 메모리, 스토리지 등 OS나 하드웨어의 주제를 제공된 Python, Go 실험 프로그램으로 동작 원리를 학습해본다. 가상화 기능, 컨테이너, cgroup 등 현대적인 주제도 포함되어 있다. 다소 고전적이고 딱딱할 수 있는 OS, 컴퓨터 아키텍쳐라는 주제를 현대적으로 잘 풀어나간 느낌이다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다소 아쉬운 점이 있다면, 앞서 언급했던 첫인상과는 달리 이 책은 초급자나 비전공자가 쉽게 읽을만한 책은 아닌 것 같다. 전반적인 용어에 대한 설명이 부족하고, 주제를 풀어나가는 방식이 제대로 된 하향식 구조가 아니다. 독자가 어느 정도 알고 있음을 전제로 설명한다. 배경지식이 모자란 독자는 필연적으로 외부의 정보에 도움을 받아야 온전한 이해를 할 수 있지 않을까 싶다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;사실 OS라는 주제가 애초에 가볍게 다룰만한 주제가 아니다 보니 충분히 납득은 된다. 당장 OS 학습의 바이블인 공룡책, CS:APP 같은 걸 보더라도 읽기 전부터 서적의 체급에 압도당하기 일쑤다. 나름 짜임새 있는 내용에, 부담스럽지 않은 분량을 갖추고 있다는 점에서 충분히 매력있는 책이라 생각한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/u&gt;&lt;/p&gt;</description>
      <category>서평</category>
      <category>그림으로 배우는 리눅스 구조</category>
      <category>나는 리뷰어다</category>
      <category>리눅스</category>
      <category>타케우치 사토루</category>
      <category>한빛미디어</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/189</guid>
      <comments>https://gtdr.tistory.com/189#entry189comment</comments>
      <pubDate>Sun, 24 Sep 2023 23:00:13 +0900</pubDate>
    </item>
    <item>
      <title>파이썬 크래시 코스 리뷰</title>
      <link>https://gtdr.tistory.com/188</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bq067w/btsscE4Bsd6/cTaaclkLct2MgOGg1chb21/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bq067w/btsscE4Bsd6/cTaaclkLct2MgOGg1chb21/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bq067w/btsscE4Bsd6/cTaaclkLct2MgOGg1chb21/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbq067w%2FbtsscE4Bsd6%2FcTaaclkLct2MgOGg1chb21%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;514&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;프로그래밍에 입문하는 많은 사람들이 파이썬을 배우고 있다. 가독성과 간결성, 다양한 응용 분야와 넓은 커뮤니티 등 입문 언어로서 파이썬을 선택할 이유는 충분하다. 파이썬 크래시 코스는 그러한 입문자들에게 있어서 훌륭한 책이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책은 두 파트로 나뉘어있는데, 첫 번째 파트는 변수, 자료형, 함수, 반복문과 제어문, 모듈 클래스 등의 파이썬 기초 문법을 다룬다. 두 번째 파트는 웹 개발, 데이터 시각화, 게임 개발 등 라이브러리나 프레임워크를 활용한 응용 주제를 다룬다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;저자가 고등학교 선생님 출신이다. 그래서 그런지 꽤 명확하고 간결한 문체로 작성되어 있고, 각 주제에 대해 많은 예를 들며 알기 쉽게 설명해준다. 책의 구성 또한 짜임새있어서 순서대로 학습하기 좋다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책이 정말 괜찮았다고 느낀 부분은 풍부한 연습문제와 두번째 파트의 프로젝트이다. 막연하게 프로그래밍을 시작하는 사람들에게 있어서 단순히 문법만 배우고 마는 것은 다소 내던져진 느낌이 들 것이다. 각 장의 마지막마다 있는 연습문제는 배운 문법을 직접 사용해보면서 작은 단위의 프로그래밍을 하게끔 시키는데, 이러한 과정이 입문자들에게 있어서 프로그래밍을 계속 해나갈 동기가 될 것 같다. 프로젝트 또한 책에서 만드는대로 따라치는 선에서 그칠 주제가 아닌, 본인만의 프로젝트를 만들만한 주제들을 잘 다루고 있는 것 같다. 버전 관리나 배포 등의 내용도 간단하게 설명해주고 있어서 개발 기본기를 다지는데 정말 많은 도움이 될 것 같다고 느꼈다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/u&gt;&lt;/p&gt;</description>
      <category>서평</category>
      <category>나는 리뷰어다</category>
      <category>파이썬 크래시 코스</category>
      <category>한빛미디어</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/188</guid>
      <comments>https://gtdr.tistory.com/188#entry188comment</comments>
      <pubDate>Sun, 27 Aug 2023 20:13:02 +0900</pubDate>
    </item>
    <item>
      <title>zustand persist에 타입 제공하기</title>
      <link>https://gtdr.tistory.com/187</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;전역 상태인 AuthState를 LocalStorage에서 사용하기 위헤 store 객체를 persist로 감쌌더니, 타입 에러가 발생했다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;604&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/GfUVv/btssinmqeJX/kQTm2gHXOhSS81Vj6Koda1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/GfUVv/btssinmqeJX/kQTm2gHXOhSS81Vj6Koda1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/GfUVv/btssinmqeJX/kQTm2gHXOhSS81Vj6Koda1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FGfUVv%2FbtssinmqeJX%2FkQTm2gHXOhSS81Vj6Koda1%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1104&quot; height=&quot;604&quot; data-origin-width=&quot;1104&quot; data-origin-height=&quot;604&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;pre id=&quot;code_1693020488169&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;Argument of type 'StateCreator&amp;lt;AuthState, [], [[&quot;zustand/persist&quot;, AuthState]]&amp;gt;' is not assignable to parameter of type 'StateCreator&amp;lt;AuthState, [], []&amp;gt;'.
  Type 'StateCreator&amp;lt;AuthState, [], [[&quot;zustand/persist&quot;, AuthState]]&amp;gt;' is not assignable to type '{ $$storeMutators?: [] | undefined; }'.
    Types of property '$$storeMutators' are incompatible.
      Type '[[&quot;zustand/persist&quot;, AuthState]] | undefined' is not assignable to type '[] | undefined'.
        Type '[[&quot;zustand/persist&quot;, AuthState]]' is not assignable to type '[]'.
          Source has 1 element(s) but target allows only 0.&lt;/code&gt;&lt;/pre&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;아래와 같이 StateCreator 타입과 PersistOptions 타입을 불러온 후,&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;persist 인자에 단언해줄 타입을 생성하면 해결된다.&lt;/p&gt;
&lt;pre id=&quot;code_1693020593436&quot; class=&quot;typescript&quot; data-ke-language=&quot;typescript&quot; data-ke-type=&quot;codeblock&quot;&gt;&lt;code&gt;import { create, StateCreator } from 'zustand';
import { persist, PersistOptions } from 'zustand/middleware';

interface UserData {
...
}

export interface AuthState {
....
}

export type AuthStatePersist = (
  config: StateCreator&amp;lt;AuthState&amp;gt;,
  options: PersistOptions&amp;lt;AuthState&amp;gt; 
) =&amp;gt; StateCreator&amp;lt;AuthState&amp;gt;

const useAuthStore = create&amp;lt;AuthState&amp;gt;(
  (persist as AuthStatePersist)(
    (set, get) =&amp;gt; ({
      user: null,
      isLoggedIn: false,
      login: (userData: UserData) =&amp;gt; {
        set({ isLoggedIn: true, user: userData });
      },
      logout: () =&amp;gt; {
        set({ isLoggedIn: false, user: null });
      },
    }),
    {
      name: 'user-storage',
    },
  ),
);&lt;/code&gt;&lt;/pre&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;839&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bmQsNp/btssbjTIpiM/G02l3YJF1KqJdP38CrS4IK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bmQsNp/btssbjTIpiM/G02l3YJF1KqJdP38CrS4IK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bmQsNp/btssbjTIpiM/G02l3YJF1KqJdP38CrS4IK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbmQsNp%2FbtssbjTIpiM%2FG02l3YJF1KqJdP38CrS4IK%2Fimg.png&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;1141&quot; height=&quot;839&quot; data-origin-width=&quot;1141&quot; data-origin-height=&quot;839&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;</description>
      <category>Typescript</category>
      <category>persist</category>
      <category>TypeScript</category>
      <category>zustand</category>
      <category>에러</category>
      <category>타입</category>
      <category>타입스크립트</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/187</guid>
      <comments>https://gtdr.tistory.com/187#entry187comment</comments>
      <pubDate>Sat, 26 Aug 2023 12:32:11 +0900</pubDate>
    </item>
    <item>
      <title>처음부터 제대로 배우는 스프링 부트 리뷰</title>
      <link>https://gtdr.tistory.com/186</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;514&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bd8fty/btsoIMpJd1y/lF9BrgPB9AxojvwC27D1n1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bd8fty/btsoIMpJd1y/lF9BrgPB9AxojvwC27D1n1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bd8fty/btsoIMpJd1y/lF9BrgPB9AxojvwC27D1n1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbd8fty%2FbtsoIMpJd1y%2FlF9BrgPB9AxojvwC27D1n1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;400&quot; height=&quot;514&quot; data-origin-width=&quot;400&quot; data-origin-height=&quot;514&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근에 nestjs로 서버 개발을 하면서 Spring 생각이 많이 났었다. 그러던 중 리뷰어 기회가 생겨서 이 책으로 Spring boot를 다시 공부해보게 됐다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;서적의 제목이 '처음부터 제대로 배우는'이라, 입문 단계의 내용일 거라 생각하고 읽었는데 예상과 전혀 다른 내용이었다. 기본적인 REST API 작성법부터, Redis를 활용한 DB 연결 활용, 스프링 시큐리티, 웹플럭스 등을 사용한 보안, 리액티브 프로그래밍 등 폭넓은 내용이 나오는데, 활용 위주의 설명으로 Spring bean이나, IoC, 어노테이션 등의&amp;nbsp; Spring 핵심 원리에 대해서는 다루지 않으며, 독자가 어느 정도 알고 있음을 전제로 쓰여있다고 느껴졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그리고 예제의 코드는 람다식과 제네릭, 메서드 체이닝을 적극적으로 사용하는, 짜임새 있는 선언형 자바, 코틀린 문법으로 작성되어 있었다. '처음부터 제대로 배우는' 이라는 제목을 보고 초심자가 읽기에는 다소 높은 수준의 내용이었다고 생각한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;다만, 짜임새 있는 코드와 보안, 테스팅까지 폭넓게 아우르고 있는 구성을 통해, 이 책을 활용한다면 프로덕션 수준의 Spring boot 서버를 만들기에는 충분한 내용이 포함되어있다고 느꼈다. Spring boot가 아닌 Spring만을 활용해서 개발을 해봤다거나, 서버 프로그래밍 경험이 있는 독자가 Spring boot를 통해 WAS를 개발하려고 할 때 읽으면 적합한 책이 아닐까 한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/u&gt;&lt;/p&gt;</description>
      <category>서평</category>
      <category>Spring Boot Up &amp;amp; Running</category>
      <category>나는 리뷰어다</category>
      <category>처음부터 제대로 배우는 스프링 부트</category>
      <category>한빛미디어</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/186</guid>
      <comments>https://gtdr.tistory.com/186#entry186comment</comments>
      <pubDate>Sun, 23 Jul 2023 22:49:22 +0900</pubDate>
    </item>
    <item>
      <title>풀스택 테스트(Full Stack Testing) 리뷰</title>
      <link>https://gtdr.tistory.com/185</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b3ePGz/btslb6zkGkN/Gq7hiYcvKL7kgOSDJLSK30/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b3ePGz/btslb6zkGkN/Gq7hiYcvKL7kgOSDJLSK30/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b3ePGz/btslb6zkGkN/Gq7hiYcvKL7kgOSDJLSK30/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb3ePGz%2Fbtslb6zkGkN%2FGq7hiYcvKL7kgOSDJLSK30%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;283&quot; height=&quot;364&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;결론부터 말하자면 정말 잘 짜여진 책이다. 모든 챕터는 주제와 연관된 테스팅 개념에 대해 상세하게 설명해주고, 실전적인 예제를 통해 개발 환경에 맞는 실제 코드를 보여준다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;내용은 대부분 웹에 초점이 맞춰져있다. JAVA로 개발되는 웹 애플리케이션에서 계층적으로 테스트를 진행한다. 따라서 실습의 많은 내용이 JAVA 웹에 맞춰져있고, 테스팅 툴 또한 그러한 환경에서 사용되는 것들로 국한되어 있다. 그렇지만, 앞서 언급했듯이 테스팅 이론에 대한 개념적인 설명이 충분하기 때문에, 다른 분야의 프로그램을 개발하더라도 충분히 얻어갈 내용이 많다고 느껴졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;단점으로는 너무 광범위한 내용을 다루려다 보니, 특정 파트에서의 설명이 조금 부족하다고 느껴질 때가 있었다. 제목에서부터 풀스택을 강조했기 때문이었을까, 모바일이나 신기술 챕터는 너무 얕은 수준의 내용이었다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그럼에도 충분히 가치있는 책이다. 책에서 설명하는 테스팅 방법론에 대한 내용은 개발자라면 모두 다 알고 있어야 할 내용이라고 생각하고, 웹을 개발하다보면 책에서 언급된 테스팅 툴은 대부분 사용하게 될 거라고 느꼈다. 테스트에 대한 지식이 아예 없거나, JAVA 웹에 테스트를 도입하고 싶은 독자라면 충분히 읽어봄직한 책이라 생각한다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/u&gt;&lt;/p&gt;</description>
      <category>서평</category>
      <category>가야트리 모한</category>
      <category>나는 리뷰어다</category>
      <category>풀스택 테스트</category>
      <category>한빛미디어</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/185</guid>
      <comments>https://gtdr.tistory.com/185#entry185comment</comments>
      <pubDate>Sun, 25 Jun 2023 20:40:42 +0900</pubDate>
    </item>
    <item>
      <title>추천 시스템 입문 (Recommender Systems) 리뷰</title>
      <link>https://gtdr.tistory.com/184</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;XL 2(2).jpg&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;1200&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/qgvH1/btshAZjJ0CH/nkPDkGC79XHIAmeLn3H7F1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/qgvH1/btshAZjJ0CH/nkPDkGC79XHIAmeLn3H7F1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/qgvH1/btshAZjJ0CH/nkPDkGC79XHIAmeLn3H7F1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FqgvH1%2FbtshAZjJ0CH%2FnkPDkGC79XHIAmeLn3H7F1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;249&quot; height=&quot;320&quot; data-filename=&quot;XL 2(2).jpg&quot; data-origin-width=&quot;934&quot; data-origin-height=&quot;1200&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최근 어떤 서비스든 추천 시스템은 빠지지 않고 들어가고 있다. 그런 상황과는 별개로 추천 시스템에 대한 서적은 별로 없었는데, 이번에 한빛미디어에서 입문자를 대상으로 한 서적이 출간되었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 책은 크게 3가지 파트로 구성되어 있다. 1~4장은 추천 시스템의 개요, 도입 방법 등이 설명되어있고, 5장은 추천 시스템에서 사용되는 알고리즘을 설명한다. 6~8장은 실제 서비스에서 운용하는 방법에 대해 서술되어 있다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;먼저 1~4장은 추천 시스템이 왜 중요한지에 대해 설명하고 있다. 이 파트는 수식이나 알고리즘에 대해서는 등장하지 않아서, 비즈니스에는 관심이 있지만 시스템에 대해서 잘 모르는 사람도 가볍게 읽을 수 있다. 다각적인 시각에서 추천 시스템에 대해서 설명한다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;5장에서는 분위기가 많이 달라진다. 파이썬 코드를 통해 구체적인 시스템 개발에 대해서 설명한다. 다양한 알고리즘에 대해서 간략하게 설명하고, 실제 코드를 통해 알고리즘을 실행해볼 수 있다. 간략하게 설명되어있기 때문에 다소 코드를 읽는 게 어려울 수 있고, 알고리즘에 대한 설명도 좀 더 정확하게 이해하기 위해서는 따로 조사해야 한다.(책에서도 이러한 부분에 대해서는 언급하고 있음.)&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;6~8장은 실제 어떤 구조로 운용해야 하는지에 대해서 다루고 있다. 예를 들면, 어떻게 로그를 남길 것인가, A/B 테스트는 어떻게 진행할 것인가와 같은 내용을 다룬다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;초심자가 추천 서비스에 대해서 공부하기에는 적합한 책인 것 같다. 내용이 크게 어렵거나 부실하지 않고 밸런스를 잘 갖췄다고 느껴졌다.&amp;nbsp; 다만 실제 서비스에 적용하기 위해서는 각 토픽에 대한 추가적인 학습이 필요할 것 같다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>서평</category>
      <category>리뷰</category>
      <category>서평</category>
      <category>추천 시스템 입문</category>
      <category>한빛미디어</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/184</guid>
      <comments>https://gtdr.tistory.com/184#entry184comment</comments>
      <pubDate>Sun, 28 May 2023 23:56:52 +0900</pubDate>
    </item>
    <item>
      <title>전문가를 위한 C++ (5판) 리뷰</title>
      <link>https://gtdr.tistory.com/183</link>
      <description>&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;9791169210898_01.jpg&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;568&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bUnFvt/btsbUQMH1yJ/3ZaBUExuK43ekYBQQdz0f1/img.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bUnFvt/btsbUQMH1yJ/3ZaBUExuK43ekYBQQdz0f1/img.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bUnFvt/btsbUQMH1yJ/3ZaBUExuK43ekYBQQdz0f1/img.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbUnFvt%2FbtsbUQMH1yJ%2F3ZaBUExuK43ekYBQQdz0f1%2Fimg.jpg&quot; onerror=&quot;this.onerror=null; this.src='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png'; this.srcset='//t1.daumcdn.net/tistory_admin/static/images/no-image-v1.png';&quot; loading=&quot;lazy&quot; width=&quot;458&quot; height=&quot;568&quot; data-filename=&quot;9791169210898_01.jpg&quot; data-origin-width=&quot;458&quot; data-origin-height=&quot;568&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;처음 프로그래밍을 시작할 때, 러닝 커브가 낮고 생산성이 뛰어난 언어를 먼저 접했고, 프론트엔드 개발을 하고 있는 지금도 그런 언어를 사용해서 개발을 하고 있다.&amp;nbsp; 많은 사람들에게서 `개발자라면 C 정도는 알아야 한다`라는 말을 들어봤고, 사용중인 언어의 모태가 대부분 C이기 때문에 그러한 의견에 대해서도 인정하는 편이었으나, 굳이 공부해야 할 필요성을 못 느꼈다.&amp;nbsp;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그러나 개발을 해오면서 구현이나 라이브러리, 프레임워크를 다루는 실력은 금방 늘었지만, 프로그래밍 방법론이나 디자인 패턴, 코드 스타일부터 설계에 이르기까지 프로그래밍에 대한 기본기가 부족해서 힘들다고 느끼는 상황이 많았다. 언어적인 한계 떄문에 구현하지 못하는 디자인 패턴도 있었고, 아예 들어보지 못했던 생소한 언어의 명세들도 있었다. 그렇게 C나 C++에 대한 궁금증이 쌓여가던 와중에, 이 책을 볼 기회가 생겨서 C++을 처음 공부하게 됐다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;전문가를 위한 C++은 제목 그대로 전문가를 위한 서적이다. 1600페이지의 압도적인 분량을 가지고 있지만 언어의 기초적인 부분은 가볍게 설명하고 넘어간다. 그래도 다른 언어를 능숙하게 다뤄본 독자라면 C나 C++을 잘 모르더라도 충분히 이해할 수 있는 수준의 설명이었다. 오히려 이 책의 대상인 '전문가'(C++이 아니더라도)에 적합한 내용이라고 볼 수 있겠다.&amp;nbsp;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;대략 200 페이지 분량의 기초적인 내용 이후에는 코드 스타일에 대해 배울 수 있다. 무엇이 좋은 스타일인지에 대해 강요하기 보다는 다양한 코드 스타일에 대한 설명이 나와있다. 이후 본격적인 내용으로 들어가는데, 객체지향, 포인터, 클래스, 상속 모듈, 템플릿, 제네릭 등 거의 C++의 고급 기능들에 대한 설명이 방대하게 수록돼있다.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;&lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;정독하기에는 너무 압도적인 분량이어서, 내가 주로 사용하는 언어에 있는 기능과 같은 기능 위주로 살펴보았다. 다양한 예제와 연습문제를 통해 각종 기능들에 대해 학습하니까, C++은 물론이고 다른 언어에 있는 동일한 기능들에 대한 이해도도 같이 올라가는 느낌을 받았다. &lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;또한 소프트웨어 공학적인 측면에서 충분한 설명이 되어있어서, 많은 배경지식을 얻을 수 있었다. 단순히 언어적인 측면에서의 설명에 국한된 게 아니라, 개발 기법을 주로 논하고 있기 때문에 개발 서적이라기 보다는 전공 서적 같다는 느낌을 많이 받았다. 처음 책을 접했을 때, 단순히 C++에 대해 알기 위해서 가볍게 보려던 마음가짐을 갖고 있었는데, 정독하게 된다면 개발자로서 좋은 학습이 될 것 같다는 생각이 들었다. &lt;/span&gt;&lt;span style=&quot;color: #000000; text-align: center;&quot;&gt;오래 걸리더라도 처음부터 끝까지 읽어보고 싶다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p style=&quot;text-align: center;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;u&gt;&quot;한빛미디어&amp;nbsp;&amp;lt;나는&amp;nbsp;리뷰어다&amp;gt;&amp;nbsp;활동을&amp;nbsp;위해서&amp;nbsp;책을&amp;nbsp;제공받아&amp;nbsp;작성된&amp;nbsp;서평입니다.&quot;&lt;/u&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>서평</category>
      <category>리뷰</category>
      <category>마크 그레고리</category>
      <category>서평</category>
      <category>전문가를 위한 C++</category>
      <category>한빛미디어</category>
      <author>띵킹</author>
      <guid isPermaLink="true">https://gtdr.tistory.com/183</guid>
      <comments>https://gtdr.tistory.com/183#entry183comment</comments>
      <pubDate>Sun, 23 Apr 2023 23:39:10 +0900</pubDate>
    </item>
  </channel>
</rss>