<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>monicx.dev</title>
    <link>https://monicx.tistory.com/</link>
    <description></description>
    <language>ko</language>
    <pubDate>Thu, 27 Aug 2026 10:28:55 +0900</pubDate>
    <generator>TISTORY</generator>
    <ttl>100</ttl>
    <managingEditor>킁킁잉</managingEditor>
    <image>
      <title>monicx.dev</title>
      <url>https://tistory1.daumcdn.net/tistory/7001002/attach/682e8e8f331243d0aef832bfc3842b54</url>
      <link>https://monicx.tistory.com</link>
    </image>
    <item>
      <title>[책 리뷰] 말하는대로 제미나이 3D 바이브 코딩</title>
      <link>https://monicx.tistory.com/213</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 웹페이지나 애플리케이션을 만드는 방식이 빠르게 변화하고 있다. AI에게 원하는 결과물을 설명하고 대화하며 하나의 프로젝트를 완성하는 바이브 코딩(Vibe Coding)이 새로운 개발 방식으로 자리 잡고 있다.&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;times; 3D 바이브 코딩》은 Gemini와 Google AI Studio를 비롯한 AI 도구를 활용해 실제 웹 결과물을 만들어보는 과정을 다루는 책이다. 특히 Three.js를 활용한 3D 웹페이지부터 React Bits, 이미지와 3D 에셋 활용, 배포까지 직접 따라 하며 하나의 결과물을 완성할 수 있도록 구성되어 있다.&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;평소에도 AI 개발 도구를 자주 사용하고 있는 만큼, 기존에 사용하던 도구와 비교해보고, 실제 교육 에도 적용해보면서 책에서 소개하는 방식이 얼마나 실용적인지 직접 경험해보기로 했다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;리뷰를 위해 제이펍 출판사에서 책을 제공받아 작성한 리뷰입니다.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;750&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/clXBgy/dJMcahyL1A0/EjJNZQqJ1HKJi6lMyIbgBK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/clXBgy/dJMcahyL1A0/EjJNZQqJ1HKJi6lMyIbgBK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/clXBgy/dJMcahyL1A0/EjJNZQqJ1HKJi6lMyIbgBK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FclXBgy%2FdJMcahyL1A0%2FEjJNZQqJ1HKJi6lMyIbgBK%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;1000&quot; height=&quot;750&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1000&quot; data-origin-height=&quot;750&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;&lt;/blockquote&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;⚔️ 시작하기 전에 - arena.ai&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;요즘은 새로운 AI 모델이 정말 빠르게 등장한다. Claude, Codex, Gemini를 비롯해 다양한 모델이 쏟아지고 있고, 모델마다 코딩 능력뿐만 아니라 생성하는 코드의 스타일이나 UI를 구현하는 방식에도 조금씩 차이가 있다. 프론트엔드 개발을 하는 입장에서는 자연스럽게 고민이 생긴다.&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 data-ke-size=&quot;size16&quot;&gt;그런 점에서 이 책의 서론에서 소개하는 &lt;b&gt;Arena.ai&lt;/b&gt;가 흥미로웠다. 하나의 프롬프트를 여러 모델에 입력해 결과물을 비교하고, A/B 투표 방식으로 어느 결과가 더 좋은지 직접 평가할 수 있으며 모델별 순위와 지표도 확인할 수 있다. 평소 모델 성능을 찾아보면서도 실제 결과물을 기준으로 비교하기 어려웠는데, 이런 방식의 서비스가 있다는 것을 알게 된 것 자체가 유용했다. 모델마다 구현하는 화면 스타일에도 차이가 너무 커서, 특히 프론트엔드가 참고하기 유용한 사이트가 아닐까 싶다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2854&quot; data-origin-height=&quot;1582&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cPGmzH/dJMcahljS54/illBaBCUoBDhPDGXQcTGak/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cPGmzH/dJMcahljS54/illBaBCUoBDhPDGXQcTGak/img.png&quot; data-alt=&quot;deepseek-v4-pro-high vs claude-opus-5-max&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cPGmzH/dJMcahljS54/illBaBCUoBDhPDGXQcTGak/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcPGmzH%2FdJMcahljS54%2FillBaBCUoBDhPDGXQcTGak%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;2854&quot; height=&quot;1582&quot; data-origin-width=&quot;2854&quot; data-origin-height=&quot;1582&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;deepseek-v4-pro-high vs claude-opus-5-max&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;img src=&quot;https://blog.kakaocdn.net/dna/bd7WW1/dJMcadXrnwR/AAAAAAAAAAAAAAAAAAAAANZlUpYeN34jyjum4600v5nGNr8M1bz3Kp3xOVWBJTKK/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&amp;amp;expires=1788188399&amp;amp;allow_ip=&amp;amp;allow_referer=&amp;amp;signature=igGyFdBK70%2BfpnaCGcNI2x3MUJE%3D&quot; data-origin-width=&quot;2854&quot; data-origin-height=&quot;1582&quot; data-is-animation=&quot;false&quot; /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️ Antigravity &amp;amp; AI Studio&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책에서의 실습은 Antigravity, Google AI Studio 등을 사용하여 진행된다.&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;책에서는 Antigravity IDE를 설치하고 환경을 구성하는 과정부터 설명하지만, 나는 평소 사용하고 있는 Orca 환경에서 Antigravity Agent를 연결해 실습했다. 따라서 책에서 설명하는 IDE 환경 자체를 그대로 경험한 것은 아니지만, 오히려 이미 사용하고 있던 개발 환경에서 책의 내용을 적용해보고, 도구 기능상 어떤 차이가 있는지 비교해보는 재미도 있었다. 코멘트, walkthrough 기능 등..&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;대충 &quot;이력서 페이지를 만들어줘&quot;라고 요청하는 것이 아니라, 여러 명령어를 활용하면서 AI와 작업하는 방식을 단계적으로 익혀간다. 특히 &lt;span style=&quot;color: #ee2323;&quot;&gt;&lt;b&gt;/grill-me&lt;/b&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;이 방식의 장점은 AI에게 처음부터 완성된 요구사항을 전달할 필요가 없다는 것이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;AI와 대화하면서&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;뭘 만들건지&lt;/li&gt;
&lt;li&gt;어떤 정보를 넣을건지&lt;/li&gt;
&lt;li&gt;어떤 분위기로 만들 것인지&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;점차 구체화할 수 있다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/1HZhC/dJMcadCYyIR/jZeqPFipWOoiX7wLAofMUk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/1HZhC/dJMcadCYyIR/jZeqPFipWOoiX7wLAofMUk/img.png&quot; data-origin-width=&quot;2872&quot; data-origin-height=&quot;1608&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/1HZhC/dJMcadCYyIR/jZeqPFipWOoiX7wLAofMUk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F1HZhC%2FdJMcadCYyIR%2FjZeqPFipWOoiX7wLAofMUk%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;2872&quot; height=&quot;1608&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/com8yr/dJMcac5gVaF/19kkp1fX3ZaqTi7ToudRK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/com8yr/dJMcac5gVaF/19kkp1fX3ZaqTi7ToudRK0/img.png&quot; data-origin-width=&quot;2872&quot; data-origin-height=&quot;1608&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/com8yr/dJMcac5gVaF/19kkp1fX3ZaqTi7ToudRK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fcom8yr%2FdJMcac5gVaF%2F19kkp1fX3ZaqTi7ToudRK0%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;2872&quot; height=&quot;1608&quot;/&gt;&lt;/span&gt;&lt;/div&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;보통 ai를 쓸 땐 디자인 시안을 미리 생성해서 넣거나, 아니면 처음부터 원하는 스타일 정도라도 설명하는 편이어서, ai가 처음부터 어떤 스타일을 원하는지 선택지를 주고 선택하게 하는게 재미있었다.&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;책은 Antigravity뿐 아니라, Google AI Studio를 활용하는 방법도 함께 다룬다.&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;나는 Cursor나 Claude 등 구독형 AI를 오래 써왔던터라 antigravity나 ai studio는 깊게 써본 적이 없는데, 책을 따라가는 것만으로 주요 기능을 자연스럽게 익힐 수 있었다. 특히 URL Context 기능이 인상적이었는데, 외부 웹페이지 내용을 그대로 작업에 끌어올 수 있어서 다양한 자료를 참고하면서 결과물 만들기에 용이하겠구나 생각이 들었다.&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;이 책의 장점을 이 부분에서 크게 느꼈는데, 낯선 도구도 그날 바로 남에게 가르칠 수 있는 수준으로 알려준다는 점이다. 마침 학원에서 쉬는 시간 게임이 금지되면서 아이들이 심심해하길래, AI Studio 기능 몇가지와 프롬프트 쓰는걸 잠깐 설명해주고 자신만의 게임을 만들어보게 했다. 제법 그럴듯한 결과물이 10분내로 만들어지고, 웹에서 즉시 플레이도 되니 아이들의 반응이 좋았다.&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;책의 설명이 촘촘하고 따라하기에 쉽게 짜여 있고, 또 ai studio나 antigravity는 무료 사용량이 넉넉하기 때문에 책의 구성이 교육용으로 사용하기 참 좋지 않은가 생각이 든다.three.js 적용, react bits 활용, 3d 에셋 수집 및 가공까지 배울점들이 다양해서 바이브 코딩용 교재로 딱인 것 같다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;  Three.js&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 인상 깊었던 실습은 Three.js를 이용한 3D 페이지 제작이다.&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;여기서 좋았던 점은 무작정 &quot;Three.js로 만들어줘&quot; 요청하는게 아니라, 프롬프트부터 &lt;b&gt;Scene, Camera, Mesh, Light&lt;/b&gt;처럼 3D 장면을 구성하는 요소를 나누어 설명한다는 점이었다.&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;Three.js를 처음 접하는 사람이어도 이 챕터만 보면 3 D 웹페이지가 어떤 구조로 만들어지는지 감을 잡을 수 있다. 기술에 대한 설명도 간략하게나마 포함해, 3D 페이지의 구조부터 이해할 수 있는 구성이다. 내가 만드려는 페이지, 사용하는 기술이 어떤 구조인지를 이해하면, AI에게 프롬프트를 줄 때도 표현력이 달라진다.&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;그냥 &quot;3D 공간을 만들어줘&quot;라고 하는 것과,&lt;span style=&quot;color: #333333;&quot;&gt; &quot;&lt;span style=&quot;text-align: center;&quot;&gt;어두운 Scene에 특정 위치에 Mesh를 배치하고, Camera의 시점을 조절한 뒤 Directional Light로 특정 방향에서 조명을 비춰줘.&quot; &lt;/span&gt;&lt;/span&gt;라고 하는 것은 요구사항의 구체성부터 결과까지 완전히 다르다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;1464&quot; data-origin-height=&quot;1348&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/nfJ8E/dJMcad38s5O/AhLsCBbSVDyFSwKWwnoPjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/nfJ8E/dJMcad38s5O/AhLsCBbSVDyFSwKWwnoPjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/nfJ8E/dJMcad38s5O/AhLsCBbSVDyFSwKWwnoPjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FnfJ8E%2FdJMcad38s5O%2FAhLsCBbSVDyFSwKWwnoPjK%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;1464&quot; height=&quot;1348&quot; data-origin-width=&quot;1464&quot; data-origin-height=&quot;1348&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2348&quot; data-origin-height=&quot;1462&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/eiCE5k/dJMcafViU8W/yE2iOX8NHnrhQnEaXYvWF1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/eiCE5k/dJMcafViU8W/yE2iOX8NHnrhQnEaXYvWF1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/eiCE5k/dJMcafViU8W/yE2iOX8NHnrhQnEaXYvWF1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FeiCE5k%2FdJMcafViU8W%2FyE2iOX8NHnrhQnEaXYvWF1%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;2348&quot; height=&quot;1462&quot; data-origin-width=&quot;2348&quot; data-origin-height=&quot;1462&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;사실 AI를 사용하다보면 몇몇 라이브러리는 어떤 건지도 모르고 막막 수락하기도 하는데, 책의 구성을 보면서 결국 도구의 기본 개념을 아는 것이 바이브 코딩의 표현력을 높여준다는 것을 체감할 수 있었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt; ️ 3D 박물관 만들기&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책의 후반부에서 진행하는 3D 박물관 프로젝트는 앞에서 배운 내용을 실제 결과물로 연결해볼 수 있다는 점에서 가장 흥미로운 실습이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;화면에 3D 오브젝트 하나를 띄우는 수준이 아니라, 실제 전시관처럼 공간을 구성하고 작품을 배치하면서 &lt;b&gt;하나의 가상 전시 공간을 만들어볼 수 있다.&lt;/b&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;앞에서 배운 Scene, Camera, Light 같은 Three.js의 기본 요소에 이미지와 3D 에셋을 결합하고, 전시 공간이라는 구체적인 컨셉을 부여하면서 결과물이 훨씬 풍부해진다.&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;고양이 사진을 전시하는 가상 고양이 박물관&lt;/li&gt;
&lt;li&gt;직접 만든 3D 작품을 전시하는 개인 갤러리&lt;/li&gt;
&lt;li&gt;게임이나 캐릭터를 전시하는 공간&lt;/li&gt;
&lt;li&gt;가구나 소품을 배치하고 직접 둘러보는 쇼룸&lt;/li&gt;
&lt;li&gt;작품을 클릭하면 설명이 나타나는 인터랙티브 전시관&lt;/li&gt;
&lt;/ul&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;그래서 이 프로젝트는 책의 예제를 그대로 따라 하는 것보다 자신의 취향에 맞는 주제로 변형해보는 순간 더 재미있어지는 실습이라고 생각한다. 3D 웹페이지를 하나 만들어본다는 것에서 끝나는 것이 아니라, 웹에서 하나의 가상 공간을 직접 설계해본다는 경험에 가깝다.&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;바이브 코딩의 장점도 이 지점에서 가장 잘 드러난다. 직접 Three.js 코드를 처음부터 작성하려면 상당한 학습 시간이 필요하지만, 기본적인 3D 개념을 이해한 상태에서 AI에게 공간의 구조와 분위기, 오브젝트, 인터랙션을 구체적으로 설명하면 훨씬 빠르게 자신이 상상한 공간을 프로토타입으로 만들 수 있다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h3 data-ke-size=&quot;size23&quot;&gt;⭐️ 총평&lt;/h3&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;《말하는 대로 제미나이 &amp;times; 3D 바이브 코딩》은, 여러 AI 도구를 활용해 실제 웹 결과물을 만들어보는 바이브 코딩 실습서이다.&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;Antigravity 환경 설정부터 Google AI Studio 활용, Three.js, React Bits, 이미지 및 3D 에셋 활용, 그리고 배포까지 하나의 프로젝트를 완성하는 데 필요한 도구들을 폭넓게 경험할 수 있다.&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;다만 바이브 코딩에 집중하는 만큼 코드 자체를 깊게 분석하거나 좋은 코드 구조를 만드는 방법까지 다루지는 않는다. 그렇기 때문에 개발자에게는 이 책만으로 기술 공부를 대신하기보다는, 이미 알고 있는 프론트엔드 기술을 AI를 통해 어떻게 결과물로 빠르게 연결할 수 있는지 경험하는 책으로 보는 것이 적절하다.&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;오히려 비전공자나 비개발자, 바이브 코딩을 처음 접하는 사람에게는 상당히 친화적인 구성이다. Claude Code에 각종 스킬을 설치하고 개발 환경을 복잡하게 구성하는 방식보다 진입장벽이 낮고, Google AI Studio처럼 비교적 접근하기 쉬운 도구를 활용한다는 점도 장점이다. 학생들이 AI를 이용해 직접 게임이나 웹페이지를 만들어보는 교육에도 활용할 수 있겠다는 생각이 들었다.&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;물론 AI 도구는 변화가 매우 빠르다. 책을 집필하고 출판하는 사이에도 모델의 버전이나 인터페이스, 기능이 달라질 수 있기 때문에 책에 나온 화면이나 일부 사용법이 현재와 다를 수 있다는 점은 감안해야 한다.&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;그럼에도 바이브 코딩이라는 작업 방식 자체를 이해하기 위한 실습서라는 목적에서는 충분히 의미가 있고, 특히 3D 에셋을 활용한 웹 랜딩 페이지나 포트폴리오, 인터랙티브한 웹페이지를 AI와 함께 만들어보고 싶은 사람이라면 한 번쯤 따라 해볼 만하다.&lt;/p&gt;</description>
      <category> review</category>
      <category>Antigravity</category>
      <category>Gemini</category>
      <category>google ai studio</category>
      <category>Three.js</category>
      <category>말하는대로 제미나이 3D 바이브 코딩</category>
      <category>바이브 코딩</category>
      <category>제이펍</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/213</guid>
      <comments>https://monicx.tistory.com/213#entry213comment</comments>
      <pubDate>Tue, 18 Aug 2026 23:31:43 +0900</pubDate>
    </item>
    <item>
      <title>[책 리뷰] Do it! AI 시대에 살아남는 프런트엔드 면접의 기술</title>
      <link>https://monicx.tistory.com/211</link>
      <description>&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;React로 프로젝트를 만들었고, Next.js도 사용해봤다. 번들 크기 때문에 고민도 해봤고, 성능 문제를 해결하기 위해 이것저것 시도했던 기억도 있다. 하지만 막상 면접에서 &lt;b&gt;&quot;왜 그렇게 구현했나요?&quot;&lt;/b&gt;, &lt;b&gt;&quot;왜 그 기술을 선택했나요?&quot;&lt;/b&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;b&gt;『Do it! AI 시대에 살아남는 프런트엔드 면접의 기술』&lt;/b&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;이 책은 &lt;b&gt;109개의 실전 면접 질문&lt;/b&gt;을 중심으로 프런트엔드 전반을 훑어간다. HTML과 CSS, JavaScript, 브라우저 렌더링, 네트워크, React, Next.js, 성능 최적화는 물론 프로젝트 지식과 AI 관련 주제까지 폭넓게 다룬다.&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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;이지스퍼블리싱에서 책을 제공받아 작성한 리뷰입니다.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;1102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uLPGs/dJMcahZrrvK/0UdekL1Uzz2aYLQe0hc7OK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uLPGs/dJMcahZrrvK/0UdekL1Uzz2aYLQe0hc7OK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uLPGs/dJMcahZrrvK/0UdekL1Uzz2aYLQe0hc7OK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuLPGs%2FdJMcahZrrvK%2F0UdekL1Uzz2aYLQe0hc7OK%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;1470&quot; height=&quot;1102&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;1102&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  목차만 읽어도 현재의 실력이 보인다&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책을 펼치자마자 가장 먼저 한 일은 목차를 유심히 살펴보는 것이었다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 책은 &lt;b&gt;109개의 면접 질문 자체가 목차&lt;/b&gt;를 이루고 있다. 덕분에 목차를 읽는 것만으로도 자연스럽게 스스로에게 질문을 던지게 된다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;지금 나는 이 질문에 어디까지 설명할 수 있을까?&quot;&lt;/p&gt;
&lt;/blockquote&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;b&gt;&quot;분명 뭔지는 알고, 써본 적도 있는데 설명은 못 하는 질문&quot;&lt;/b&gt;이 대부분이었다는 점이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;React는 질릴 정도로 사용해봤지만 렌더링 과정을 설명할 수 있는지, Next.js를 사용했지만 왜 CSR과 SSR을 선택했는지 이야기할 수 있는지, 성능 최적화를 경험했지만 그 원리를 논리적으로 설명할 수 있는지&amp;hellip;.&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;b&gt;'사용할 수 있는 능력'과 '이해하고 설명할 수 있는 능력'은 분명 다르다&lt;/b&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&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b60sM1/dJMcaasyEtn/8FtPlVEmAWKf4eW3iadZT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b60sM1/dJMcaasyEtn/8FtPlVEmAWKf4eW3iadZT1/img.png&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;1102&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b60sM1/dJMcaasyEtn/8FtPlVEmAWKf4eW3iadZT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb60sM1%2FdJMcaasyEtn%2F8FtPlVEmAWKf4eW3iadZT1%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;1470&quot; height=&quot;1102&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b6b7hT/dJMcajplO13/vgayc1zgc4UamZjpQDicb1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b6b7hT/dJMcajplO13/vgayc1zgc4UamZjpQDicb1/img.png&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;1102&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b6b7hT/dJMcajplO13/vgayc1zgc4UamZjpQDicb1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb6b7hT%2FdJMcajplO13%2Fvgayc1zgc4UamZjpQDicb1%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;1470&quot; height=&quot;1102&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  해결을 넘어, 설명까지&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;가장 기억에 남았던 부분은 &lt;b&gt;Q91. ES Module과 CommonJS Module의 차이점은 무엇인가요?&lt;/b&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 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;b&gt;&quot;ES Module과 CommonJS의 차이점을 설명해 보세요.&quot;&lt;/b&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;b&gt;하나의 질문을 여러 개념으로 자연스럽게 확장해 간다는 점&lt;/b&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;code&gt;import/export&lt;/code&gt;와 &lt;code&gt;require&lt;/code&gt;의 문법 차이를 설명하는 데 그치지 않고, 등장 배경과 두 모듈의 특징, Static Import와 Dynamic Import, Tree Shaking, Barrel File 등 연관된 개념들까지 하나의 흐름으로 연결한다.&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;b&gt;&quot;왜 함께 이야기되는가&quot;&lt;/b&gt;를 이해하게 되면서 비로소 하나의 그림으로 이어졌다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;읽다 보면 예전에 겪었던 문제가 자연스럽게 떠오르고, 프로젝트에서 얻었던 경험들이 하나의 지식으로 정리되는 순간이었다.&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  이해를 쌓아가는 책&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;면접 준비서라고 하면 질문과 모범 답안 중심의 책이라는 이미지가 먼저 떠오른다. 하지만 이 책은 조금 더 구조적인 흐름을 가지고 있다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style2&quot;&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;질문 &amp;rarr; 핵심 개념 &amp;rarr; 모범 면접 답안 &amp;rarr; 스스로 정리해보기&lt;/p&gt;
&lt;/blockquote&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 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;덕분에 &lt;b&gt;&quot;이거 외워야지.&quot;&lt;/b&gt;라는 접근이 아니라, &lt;b&gt;&quot;왜 이런 답이 나오는지 이해해야겠다.&quot;&lt;/b&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&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;1102&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bXlLiX/dJMcacKHWeV/EKuXiVxh2PRRKBMfVOFxzK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bXlLiX/dJMcacKHWeV/EKuXiVxh2PRRKBMfVOFxzK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bXlLiX/dJMcacKHWeV/EKuXiVxh2PRRKBMfVOFxzK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbXlLiX%2FdJMcacKHWeV%2FEKuXiVxh2PRRKBMfVOFxzK%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;1470&quot; height=&quot;1102&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;1470&quot; data-origin-height=&quot;1102&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;  AI 시대의 프런트엔드 개발자에게 필요한 것은 무엇일까&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&lt;span&gt;책 제목에 &lt;/span&gt;&lt;b&gt;&lt;span&gt;'AI 시대'​&lt;/span&gt;&lt;/b&gt;&lt;span&gt;라는 문구가 들어가 있어서 처음에는 AI 도구 활용법이나 프롬프트 작성법 같은 내용을 다루는 줄 알았다. &lt;/span&gt;&lt;/span&gt;&lt;span&gt;하지만 실제로 책이 말하는 AI 시대는 조금 다른 의미였다.&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&gt;서점 소개에서도 &quot;AI 시대에 프런트엔드 역량이 왜 더 중요해지는가&quot;를 이야기한다. 최근 AI 서비스는 단순한 채팅 기능을 넘어 실시간 스트리밍, 멀티모달 UI, 개인화 경험까지 요구한다. 사용자가 응답을 기다리는 동안 자연스럽게 결과를 보여주고, 긴 대화를 효율적으로 관리하며, AI가 예상과 다른 결과를 생성했을 때도 안정적인 사용자 경험을 제공하는 것 역시 프런트엔드 개발자의 역할이라는 것이다.&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&gt;이러한 관점에 맞춰 AI 시대에 &lt;/span&gt;&lt;b&gt;&lt;span&gt;프런트엔드 개발자가 반드시 이해해야 하는 핵심 주제들만 선별해서 연결해 준다.&amp;nbsp; &lt;/span&gt;&lt;/b&gt;&lt;span&gt;물론&amp;nbsp;&lt;/span&gt;&lt;span&gt;&lt;span&gt;AI가 제목에 붙었다고 AI API를 사용하는 방법이나 특정 서비스 사용법을 길게 설명하지는 않는다. 대신 이런 서비스를 만들기 위해 필요한 기본기, 그리고 AI 프로젝트를 수행하기 위해 고려해야 하는 관점들을 엿볼 수 있다.&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;LLM의 응답 지연 문제를 사용자 경험 측면에서 어떻게 해결할 수 있나요?&lt;/li&gt;
&lt;li&gt;AI의 환각 현상으로 잘못 만든 UI 컴포넌트가 렌더링될 위험을 방지하는 방안은 무엇인가요?&amp;nbsp;&lt;/li&gt;
&lt;li&gt;생성형 UI 채팅 UI에서 중단 기능을 구현한다면 어떤 기술을 사용할 수 있나요?&lt;/li&gt;
&lt;li&gt;길게 대화할 때 토큰 소모를 줄이는 프런트엔드 컨텍스트 관리 전략은 무엇인가요?&lt;/li&gt;
&lt;li&gt;RAG 구조에서 프런트엔드 개발자의 역할은 무엇이라고 생각하나요?&lt;/li&gt;
&lt;li&gt;이미지를 멀티모달 모델에 보낼 때 Base64 인코딩 방식과 멀티파트 방식 중 어느 쪽을 더 선호할까요?&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이런 질문들을 보면 단순히 AI를 &lt;/span&gt;&lt;span&gt;사용하는 방법&lt;/span&gt;&lt;span&gt;이 아니라, AI 기반 서비스를 실제 제품으로 만들기 위해 프런트엔드 개발자가 어떤 관점으로 고민해야 하는지를 다룬다는 점을 알 수 있다.&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&gt;개인적으로 이 부분이 특히 마음에 들었다. 프런트엔드를 공부하다 보면 당장 프로젝트를 완성하거나 새로운 라이브러리를 익히는 데 집중하게 되고, 이런 주제들은 실무 경험이 없다면 무엇을 공부해야 하는지, 어떤 관점으로 접근해야 하는지조차 감을 잡기 어렵다고 생각한다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;그런데 이 책은 AI 트렌드에 맞춰 지금 프런트엔드 개발자가 반드시 알아야 할 핵심 주제만 선별해 소개해 준다. 덕분에 막연하게 AI를 공부해야 한다는 부담보다, 앞으로 어떤 기본기를 갖추고 어떤 문제를 고민해야 하는지 자연스럽게 방향을 잡을 수 있었다.&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&gt;AI 기술은 계속 바뀌겠지만, 그 기술을 사용자 경험으로 연결하는 프런트엔드의 기본기는 쉽게 변하지 않는다. 지금 진행하고 있는 프로젝트에서도 이런 점을 자주 느낀다. AI는 생각보다 완벽하지 않고, 원하는 결과를 얻기 위해서는 좋은 프롬프트만큼이나 서비스 구조를 설계하는 능력과 기반 지식이 중요하다. AI의 응답을 어떻게 보여줄지, 오류가 발생했을 때 어떻게 대응할지, 사용자 경험을 어떻게 설계할지에 따라 같은 AI를 사용하더라도 서비스의 완성도는 크게 달라진다.&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&gt;그런 의미에서 이 책은 유행을 따라가는 기술을 소개하는 책이라기보다, AI 시대에도 오래 가져갈 수 있는 프런트엔드의 기본기와 사고방식을 다져 주는 책이라고 느꼈다.&lt;/span&gt;&lt;/p&gt;
&lt;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✨ 읽고 나서 가장 크게 달라진 점&lt;/h2&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;hr contenteditable=&quot;false&quot; data-ke-type=&quot;horizontalRule&quot; data-ke-style=&quot;style1&quot; /&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;✅ 추천 대상&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;『Do it! AI 시대에 살아남는 프런트엔드 면접의 기술』&lt;/b&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;109개의 질문을 통해 프런트엔드 전반의 개념을 유기적으로 연결하고, 프로젝트에서 얻은 경험을 기술적인 언어로 정리할 수 있도록 돕는 지식 정리서에 가깝다.&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;b&gt;&quot;프로젝트는 해봤지만 왜 그렇게 구현했는지는 설명하기 어렵다.&quot;&lt;/b&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: #ee2323;&quot;&gt;&lt;b&gt;이미 알고 있다고 생각했던 것들을 다시 이해하게 만드는 책.&lt;/b&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;/p&gt;</description>
      <category> review/책</category>
      <category>Do It!</category>
      <category>면접 준비</category>
      <category>프런트엔드</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/211</guid>
      <comments>https://monicx.tistory.com/211#entry211comment</comments>
      <pubDate>Fri, 17 Jul 2026 19:44:28 +0900</pubDate>
    </item>
    <item>
      <title>AI 코딩을 위한 최고의 ADE: Orca 설치해보기</title>
      <link>https://monicx.tistory.com/210</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;요즘 코딩용 ai 라고 하면 단연 claude code가 가장 우세한 느낌이다(개인적인 생각). 인스타를 켜도 클로드, 유튜브를 켜도 클로드, x, 스레드 온통 클로드로 가득찼다. Cursor 출시 때부터 cursor만을 고집해왔기에 클로드 코드로의 전환은 전혀 생각을 안해봤었다. 클로드 도서, 강의 등 접하면서 혹한 적도 있지만 우선 초창기부터 써왔던 Cursor에 대한 충성심...GUI가 주는 편안함, 20$ 이상의 api와 한도 초과 시 호출 가능한 auto + composer 사용량 덕분에 너무 만족하면서 써왔기 때문. Kiro 등 다양한 IDE가 출시되었어도 내 마음 속 1위는 Cursor 였지만, 최근 부득이하게 클로드 코드를 결제할 일이 생겼다.&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;fable 5에 혹함 + 원데이 앱 스터디 때문에 클로드 코드를 사용해봤는데, 어떤 환경을 사용해야 할 지 고민이 가장 컸다. iterm도 써보고, vscode, cursor에도 붙여서 써봤지만 뭔가 딱 이거!! 싶은 세팅은 없었고, edex-ui라는 이쁜 터미널 프로젝트도 발견해봤지만 업데이트 중단, electron 기반 앱이라는 점에서 클로드 코드용 환경으로는 적합하지 않았다. 결국 ghostty를 사용한 커스텀에 도전해보았는데 세팅과정에서 오류도 발생했고, 이마저도 흡족하지 못했다.&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;이리저리 방황하던 중 알게 된 Orca. 찾아보니 인기를 끈지 꽤나 오래 된 프로그램 같긴 하다. 요즘 트렌드에 뒤쳐지는건가...아무튼 Orca는 클코, 코덱스 등등 40종 이상의 에이전트 연결을 지원하는 ADE이다. git worktree 기반으로 병렬 작업에 유용하다는 듯. 한 번 깔아보기로 했다.&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;설치하고 실행하면 연결 에이전트 선택 창이 나온다. 우선 claude를 선택하고 다음으로 왔는데..! Ghostty에서 세팅값을 가져오능 설정이 있었다. 고생했던게 헛되지 않았구나 싶어서 반가웠음. 그리고 일단 로고가 너무 귀엽다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/C6Yx5/dJMcag0ubmx/9cI9ktzj9lCvQv3EKMIWM0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/C6Yx5/dJMcag0ubmx/9cI9ktzj9lCvQv3EKMIWM0/img.png&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;1578&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/C6Yx5/dJMcag0ubmx/9cI9ktzj9lCvQv3EKMIWM0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FC6Yx5%2FdJMcag0ubmx%2F9cI9ktzj9lCvQv3EKMIWM0%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;2832&quot; height=&quot;1578&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/v7p8h/dJMcadQdKtI/LX0w4QlUfBbAOWVMF3Yl9K/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/v7p8h/dJMcadQdKtI/LX0w4QlUfBbAOWVMF3Yl9K/img.png&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;1578&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/v7p8h/dJMcadQdKtI/LX0w4QlUfBbAOWVMF3Yl9K/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fv7p8h%2FdJMcadQdKtI%2FLX0w4QlUfBbAOWVMF3Yl9K%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;2832&quot; height=&quot;1578&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;알림 소리는 범고래에 맞춰서 뽕 소리로 설정해줌&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;일단 접속하면 기존 IDE랑은 다르게 터미널이 뜬다. 기존의 작업 폴더를 선택할 수 있고, 병렬 작업 설정도 가능하다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;1578&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/9cCOC/dJMcafObEol/JsKtb6UMTnLfEhhlp0n310/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/9cCOC/dJMcafObEol/JsKtb6UMTnLfEhhlp0n310/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/9cCOC/dJMcafObEol/JsKtb6UMTnLfEhhlp0n310/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9cCOC%2FdJMcafObEol%2FJsKtb6UMTnLfEhhlp0n310%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;2832&quot; height=&quot;1578&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;1578&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;에이전트 통합이라더니, 내 컴에서 실행했던 agent 세션 기록이 바로 표시된다. 테스트용으로 열어본 프로젝트는 claude, codex 두 개로 개발했었는데, 따로 설정을 하지 않아도 프로젝트를 열면 관련된 agent 기록을 바로 가져와 주는 듯. 편의성 goat다.&lt;br /&gt;&lt;br /&gt;전체에서는 이 프로젝트 뿐만 아니라 다른 플젝에서 사용한 세션 이력도 볼 수 있다.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;1578&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/dpHhum/dJMcahyoXmG/HDkBfrYyWvtRqwxvSv8K20/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/dpHhum/dJMcahyoXmG/HDkBfrYyWvtRqwxvSv8K20/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/dpHhum/dJMcahyoXmG/HDkBfrYyWvtRqwxvSv8K20/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdpHhum%2FdJMcahyoXmG%2FHDkBfrYyWvtRqwxvSv8K20%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;2832&quot; height=&quot;1578&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;1578&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&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/xvsWT/dJMcaiKLZb3/fIpe7bpH6QKzsKVou4fVK0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/xvsWT/dJMcaiKLZb3/fIpe7bpH6QKzsKVou4fVK0/img.png&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;1578&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/xvsWT/dJMcaiKLZb3/fIpe7bpH6QKzsKVou4fVK0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FxvsWT%2FdJMcaiKLZb3%2FfIpe7bpH6QKzsKVou4fVK0%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;2832&quot; height=&quot;1578&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bNqHHA/dJMcabLNw7Y/W35y4MHZM25inocdr6cfhk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bNqHHA/dJMcabLNw7Y/W35y4MHZM25inocdr6cfhk/img.png&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;1578&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bNqHHA/dJMcabLNw7Y/W35y4MHZM25inocdr6cfhk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbNqHHA%2FdJMcabLNw7Y%2FW35y4MHZM25inocdr6cfhk%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;2832&quot; height=&quot;1578&quot;/&gt;&lt;/span&gt;&lt;/div&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;클로드 코드 쓸 때마다 /usage로 확인하는게 귀찮았는데 orca에서 자동 추적해서 표시해준다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;84&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/68Nx6/dJMcahkVsq0/JYUwEcmqoraWb5tqBIW2E1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/68Nx6/dJMcahkVsq0/JYUwEcmqoraWb5tqBIW2E1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/68Nx6/dJMcahkVsq0/JYUwEcmqoraWb5tqBIW2E1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F68Nx6%2FdJMcahkVsq0%2FJYUwEcmqoraWb5tqBIW2E1%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;2832&quot; height=&quot;84&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;84&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;쓰는 와중에 codex agent도 연결해보았는데...과연&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;84&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cCVy3x/dJMcagsHVu1/Ijof3KdRlarRw0oPTgSVjK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cCVy3x/dJMcagsHVu1/Ijof3KdRlarRw0oPTgSVjK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cCVy3x/dJMcagsHVu1/Ijof3KdRlarRw0oPTgSVjK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcCVy3x%2FdJMcagsHVu1%2FIjof3KdRlarRw0oPTgSVjK%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;2832&quot; height=&quot;84&quot; data-origin-width=&quot;2832&quot; data-origin-height=&quot;84&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;Orca 야호~커서도 연결해봐야지&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;기능이 너무 많은 것 같은데 잘 못 건드리면 뭔가 꼬여도 단단히 꼬일 것 같은 기분이라 자고 일어나서 더 알아봐야겠다.&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;a href=&quot;https://www.onorca.dev/download&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;설치 링크&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1784126253085&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;website&quot; data-og-title=&quot;Orca &amp;mdash; The most powerful Agent Development Environment (ADE)&quot; data-og-description=&quot;Orca is the Agent Development Environment (ADE) for shipping with coding agents. Run Claude Code, Codex, Gemini, Cursor CLI, and every other CLI agent in parallel across isolated worktrees. Get work done dramatically faster than any IDE. New features shipp&quot; data-og-host=&quot;www.onorca.dev&quot; data-og-source-url=&quot;https://www.onorca.dev/download&quot; data-og-url=&quot;https://www.onorca.dev&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/hITPy/dJMb8SXKn1Q/nsTPJC4ZRjlFaj1YgYIBR1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/wYKyq/dJMb8RR4pGZ/FNLME8CHZBGw44xqbRbNSK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630&quot;&gt;&lt;a href=&quot;https://www.onorca.dev/download&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.onorca.dev/download&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/hITPy/dJMb8SXKn1Q/nsTPJC4ZRjlFaj1YgYIBR1/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630,https://scrap.kakaocdn.net/dn/wYKyq/dJMb8RR4pGZ/FNLME8CHZBGw44xqbRbNSK/img.png?width=1200&amp;amp;height=630&amp;amp;face=0_0_1200_630');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;Orca &amp;mdash; The most powerful Agent Development Environment (ADE)&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;Orca is the Agent Development Environment (ADE) for shipping with coding agents. Run Claude Code, Codex, Gemini, Cursor CLI, and every other CLI agent in parallel across isolated worktrees. Get work done dramatically faster than any IDE. New features shipp&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.onorca.dev&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> tips</category>
      <category>Ade</category>
      <category>Orca</category>
      <category>Orca 설치</category>
      <category>오르카 설치</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/210</guid>
      <comments>https://monicx.tistory.com/210#entry210comment</comments>
      <pubDate>Wed, 15 Jul 2026 23:38:20 +0900</pubDate>
    </item>
    <item>
      <title>[책 리뷰] 클린 아키텍처 with 파이썬: 실무적 파이썬 활용과 아키텍처적 성장을 위한 안내서</title>
      <link>https://monicx.tistory.com/209</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;현재 나는 파이썬(Python)을 중심적으로 사용하며 타인에게 가르치고 있기도 한다. 하지만 늘 마음 한구석에 아쉬움과 갈증이 남아 있었다. 교육이나 개인 작업에서 다루는 파이썬은 주로 알고리즘 구현이나 간단한 자동화 스크립트 레벨에 머물렀고, 진행해 본 프로젝트들 역시 단순한 비즈니스 로직을 구현하는 정도에 그쳤기 때문이다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;&quot;파이썬을 단순한 도구 이상으로, 실제 실무에서 대규모 서비스를 지탱하는 '단단한 언어'로 활용하려면 어떻게 해야 할까?&quot;&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이러한 실무적 파이썬 활용과 고급 설계 기법에 목말라 있던 차에 《클린 아키텍처 with 파이썬》이라는 책을 접하게 됐다. 단순한 문법 책을 넘어 파이썬다운(Pythonic) 방식으로 지속 가능한 소프트웨어를 만드는 법을 배울 수 있을 것 같다는 기대감으로 이 책을 펼치게 됐다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;나는리뷰어다 2026 활동을 위해 책을 제공받아 작성한 리뷰입니다.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2846&quot; data-origin-height=&quot;1696&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/lezxI/dJMcabRQcFw/S4AEL5J3jj6sks1kAztKH0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/lezxI/dJMcabRQcFw/S4AEL5J3jj6sks1kAztKH0/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/lezxI/dJMcabRQcFw/S4AEL5J3jj6sks1kAztKH0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlezxI%2FdJMcabRQcFw%2FS4AEL5J3jj6sks1kAztKH0%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;2846&quot; height=&quot;1696&quot; data-origin-width=&quot;2846&quot; data-origin-height=&quot;1696&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;목차에서 발견한 이 책의 진가 (SOLID와 아키텍처)&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;이 책을 고르며 가장 먼저 눈길을 사로잡은 것은 짜임새 있는 목차 구성이었다. 특히 객체 지향 설계의 핵심인 &lt;/span&gt;&lt;b&gt;&lt;span&gt;SOLID 원칙&lt;/span&gt;&lt;/b&gt;&lt;span&gt;이 목차 전면에 배치되어 있고, 이를 파이썬의 특성에 맞게 어떻게 적용하는지 단계별로 다루고 있다는 점이 매우 인상적이었다.&lt;/span&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;보통 SOLID 원칙이나 클린 아키텍처라고 하면 자바(Java)나 C# 같은 정적 타입 언어의 전유물처럼 여겨지곤 한다. 동적 타입 언어이자 유연성이 극대화된 파이썬에서 이를 어떻게 녹여낼지 무척 궁금했는데, 이 책은 그 답을 명쾌하게 제시한다.&lt;/span&gt;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-spread=&quot;false&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;단일 책임 원칙(SRP)부터 의존성 역전 원칙(DIP)까지:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 단순한 이론 설명이 아니라, 파이썬 코드가 대규모 프로젝트에서 어떻게 스파게티 코드가 되는지, 그리고 SOLID 원칙을 통해 어떻게 유지보수하기 쉬운 구조로 진화하는지 직관적으로 보여준다.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;span&gt;레이어 구조와 확장성:&lt;/span&gt;&lt;/b&gt;&lt;span&gt; 텍스트 중심의 단순 로직 구현에 갇혀 있던 나에게 의존성을 분리하고 테스트 가능한 구조를 만드는 설계 전략은 신선한 충격이었다. AI 에이전트의 등장으로 코드 생산성은 높아졌지만 유지보수 비용이 폭발하는 지금 시기에, 왜 개발자에게 '아키텍처'가 확실한 생존 전략이 되는지 깊이 공감할 수 있었다.&lt;/span&gt;&lt;span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/cV3fFN/dJMcajoK9E3/yxWReOxPKbKzxJ980K8r41/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/cV3fFN/dJMcajoK9E3/yxWReOxPKbKzxJ980K8r41/img.png&quot; data-origin-width=&quot;2846&quot; data-origin-height=&quot;1696&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/cV3fFN/dJMcajoK9E3/yxWReOxPKbKzxJ980K8r41/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcV3fFN%2FdJMcajoK9E3%2FyxWReOxPKbKzxJ980K8r41%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;2846&quot; height=&quot;1696&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/zNuTX/dJMcaccbC9y/4fdIbbcjlzbbbpi05ruWI1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/zNuTX/dJMcaccbC9y/4fdIbbcjlzbbbpi05ruWI1/img.png&quot; data-origin-width=&quot;2846&quot; data-origin-height=&quot;1696&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/zNuTX/dJMcaccbC9y/4fdIbbcjlzbbbpi05ruWI1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FzNuTX%2FdJMcaccbC9y%2F4fdIbbcjlzbbbpi05ruWI1%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;2846&quot; height=&quot;1696&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;&lt;span&gt;실무 프로그래머로&lt;/span&gt;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;span&gt;《클린 아키텍처 with 파이썬》은 나처럼 기본 알고리즘 구현은 익숙하지만, 정작 실무 수준의 거대한 프로젝트를 구조화하는 데 어려움을 겪던 개발자에게 가뭄의 단비 같은 책이다.&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;lsquo;아키텍처적 사고 방식&amp;rsquo;을 익히게 해준다는 점에서 더욱 의미 있게 다가왔다.&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&gt;단순히 &quot;동작하는 코드&quot;를 작성하는 단계를 넘어, &quot;유지보수하기 쉽고, 테스트 가능하며, 변화에 유연한 구조&quot;를 설계하는 안목을 길러주는 책. 파이썬을 한 단계 더 깊고 실무적으로 활용하고 싶은 모든 사람에게 일독을 권한다.&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&gt;&lt;a href=&quot;https://www.yes24.com/product/goods/188253761&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.yes24.com/product/goods/188253761&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1779872545913&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;book&quot; data-og-title=&quot;클린 아키텍처 with 파이썬 | 샘 킨 | 한빛미디어 - 예스24&quot; data-og-description=&quot;&amp;#96;파이썬다운&amp;#96; 유연성과 &amp;#96;아키텍처의 엄격함&amp;#96;의 절묘한 균형을 실전 코드로 증명하기파이썬은 다재다능한 언어로, 클린 아키텍처 원칙을 적용하기에 매우 적합하다. 동적 타이핑의 특성과 풍부&quot; data-og-host=&quot;www.yes24.com&quot; data-og-source-url=&quot;https://www.yes24.com/product/goods/188253761&quot; data-og-url=&quot;https://www.yes24.com/product/goods/188253761&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/9Ys6T/dJMb8UHVK5x/A8PPAGpKRrg9x8Mgavndrk/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/cbM4da/dJMb84X5hbI/zlmqE1kxRZwoK04LypePhK/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/bP97Bj/dJMb8XSck2P/8P0tdZMwWHqkv0hcKZhVk1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200&quot;&gt;&lt;a href=&quot;https://www.yes24.com/product/goods/188253761&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.yes24.com/product/goods/188253761&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/9Ys6T/dJMb8UHVK5x/A8PPAGpKRrg9x8Mgavndrk/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/cbM4da/dJMb84X5hbI/zlmqE1kxRZwoK04LypePhK/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/bP97Bj/dJMb8XSck2P/8P0tdZMwWHqkv0hcKZhVk1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;클린 아키텍처 with 파이썬 | 샘 킨 | 한빛미디어 - 예스24&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;`파이썬다운` 유연성과 `아키텍처의 엄격함`의 절묘한 균형을 실전 코드로 증명하기파이썬은 다재다능한 언어로, 클린 아키텍처 원칙을 적용하기에 매우 적합하다. 동적 타이핑의 특성과 풍부&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.yes24.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> review</category>
      <category>나는리뷰어다</category>
      <category>클린아키텍처with파이썬</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/209</guid>
      <comments>https://monicx.tistory.com/209#entry209comment</comments>
      <pubDate>Wed, 27 May 2026 18:07:35 +0900</pubDate>
    </item>
    <item>
      <title>[책 리뷰] 900 페이지가 증명하는 압도적 커버리지, 이것이 리눅스다</title>
      <link>https://monicx.tistory.com/208</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;현대 IT 생태계에서 리눅스는 더 이상 서버 엔지니어만의 전유물이 아니다. 개발 환경 구축부터 클라우드 인프라 운영에 이르기까지, 리눅스에 대한 이해도는 기술적 성장을 위한 필수 역량이 되었다. 최근에 리눅스 마스터와 같은 자격증 취득에도 관심을 두고 있고, 무엇보다 단순한 명령어 암기를 넘어 리눅스가 실무적으로 어떻게 활용되는지 궁금증을 가지고 있었기 때문에, &quot;이것이 리눅스다&quot;를 신청해서 접하게 되었다.&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;한빛미디어에서 출간된 이것이 리눅스다는 이미 검증된 베스트셀러이다. 이번에 개정된 개정판은 rocky linux를 기반으로 집필되었고, 1대의 pc에서 4대의 가상 머신을 구동하여 실제 네트워크 환경을 완벽하게 재현하는 실습형 학습 위주로 진행된다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-size=&quot;size16&quot; data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;나는리뷰어다2026 활동을 위해 한빛미디어에서 책을 제공받아 작성한 리뷰입니다.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&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;b&gt;1. OS 환경을 초월한 친절한 가이드&lt;/b&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;물론 여러 개의 가상 컴퓨터를 가동해야 하는만큼 50기가의 여유 공간이 필요하다는 설명을 확인하곤 윈도우 노트북으로 돌아가긴 했지만, 어떤 환경의 독자라도 막힘없이 실습을 시작할 수 있도록 배려한 점이 인상적이었다.&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;특히 인상적이었던 건, 학습자를 위한 세심한 편의성이다. vmware fusion 다운로드를 위해 broadcom 회원가입을 해야 했는데, 가입하자마자 비밀번호를 까먹어 고생을 좀 했다. 브로드컴 가입 없이 다운로드 가능한 방법은 없을까 싶었는데, 저자가 운영하는 네이버 카페에서 별도의 가입 절차 없이도 필요한 파일을 내려받을 수 있도록 지원하고 있었다. 독자가 실습 중에 마주할 작은 걸림돌까지 미리 예측하고 해결책을 마련해둔 점에서 저자의 깊은 배려를 느낄 수 있었다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b9Y5cA/dJMcafGoYpu/DkqaEg4ZPbaLlGMRjiqY50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b9Y5cA/dJMcafGoYpu/DkqaEg4ZPbaLlGMRjiqY50/img.png&quot; data-origin-width=&quot;2202&quot; data-origin-height=&quot;1594&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b9Y5cA/dJMcafGoYpu/DkqaEg4ZPbaLlGMRjiqY50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb9Y5cA%2FdJMcafGoYpu%2FDkqaEg4ZPbaLlGMRjiqY50%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;2202&quot; height=&quot;1594&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/FD8m0/dJMcaipAlzY/1xDklRVuP1L0BbPoFiowp0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/FD8m0/dJMcaipAlzY/1xDklRVuP1L0BbPoFiowp0/img.png&quot; data-origin-width=&quot;2202&quot; data-origin-height=&quot;1594&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/FD8m0/dJMcaipAlzY/1xDklRVuP1L0BbPoFiowp0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FFD8m0%2FdJMcaipAlzY%2F1xDklRVuP1L0BbPoFiowp0%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;2202&quot; height=&quot;1594&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;(좌) 윈도우, (우) 맥&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;b&gt;2. 리눅스의 A to Z&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 책은 분량이 900 페이지가 넘는다. 넘치는 두께만큼 방대한 양의 실습을 다루고 있다. 리눅스 맛보기에 그치지 않고, 실제 서버의 동작 원리를 몸소 체험하고 이해할 수 있는 구성이다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기초 체력 기르기: 리눅스 기본 명령어부터 사용자 관리, 파일 시스템 및 디스크 관리 등 리눅스의 뼈대를 확실히 잡을 수 있다&lt;/li&gt;
&lt;li&gt;네트워크 서버 구축: 이 책의 진가는 후반부에서 발휘된다. 네임 서버, 메일 서버, 웹 서버, 데이터베이스 서버, FTP 서버 등 실제 웹 생태계를 구성하는 핵심 서버들을 직접 구축해 볼 수 있다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;그냥 이 명령어를 외워, 이렇게 하는거야 식의 주입 교육이 아니라, 가상 머신 4대를 동시에 돌리며 서버와 클라이언트가 통신하는 과정을 직접 눈으로 확인할 수 있다. 그리고 실습 전에 실습하는 것의 동작 원리까지 깊이 설명하여 원리 자체를 이해할 수 있는 구성이 너무 좋았다. 이 과정에서 이론적 지식은 물론, 실제적으로 서버가 어떻게 맞물려 돌아가는지에 대한 실질적인 인프라 활용을 많이 배울 수 있다.&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;실습 파트의 일부를 실습해보았다. 네임 서버 구축을 따라해보았는데, 우리가 흔히 사용하는 google.com 같은 도메인 주소가 어떻게 실제 ip 주소와 연결되어 작동하는지, 그 복잡한 과정을 4대의 가상 머신을 통해 직접 구현해 볼 수 있었다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;로직 이해: 캐싱 전용 네임 서버, 마스터 네임 서버를 직접 설정해보며 일련의 과정을 시각적으로 확인&lt;/li&gt;
&lt;li&gt;설정 파일의 디테일: /etc/named.conf 설정, 존 파일 작성법 등, 낯선 설정값들을 세밀하게 하나하나 짚어주어 활용 능력을 기르는데 최적화됨&lt;/li&gt;
&lt;li&gt;검증과 확인: 설정 후 서버가 올바르게 응답하는지 확인하는 과정에서 구축의 쾌감을 느낄 수 있었고, 하나의 실습에서 원리를 이해하고 나니 이어지는 과정에서도 네트워크 서비스들이 어떤 유기적인 관계를 맺고 돌아가는지 전체적인 그림을 이해하는데 도움이 됨&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;2202&quot; data-origin-height=&quot;1594&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/rueXd/dJMcabYiEQr/dKr3lQp7QhrWJzQO9HTKXK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/rueXd/dJMcabYiEQr/dKr3lQp7QhrWJzQO9HTKXK/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/rueXd/dJMcabYiEQr/dKr3lQp7QhrWJzQO9HTKXK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FrueXd%2FdJMcabYiEQr%2FdKr3lQp7QhrWJzQO9HTKXK%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;2202&quot; height=&quot;1594&quot; data-origin-width=&quot;2202&quot; data-origin-height=&quot;1594&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;웹 서버 구축도 apache를 이용해 실습이 진행되었다. apache도 조금씩 조금씩 겉핥기로만 사용해보아서 흥미로운 파트였다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;웹 서비스 가동: 패키지 설치부터 방화벽 설정, var/www/html 디렉터리에 웹 페이지를 제작해 올리는 과정을 통해 웹 페이지를 올리는 과정으로 웹 서비스가 구동되는 전체 프로세스 학습&lt;/li&gt;
&lt;li&gt;php, mariadb 결합: 데이터베이스와의 연동을 통해 동적 서비스를 제공하는 법을 학습. 소위 apm 환경을 구축하며 실무에서의 웹 서비스가 어떤 구조로 설계되는지 체감 가능&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;900페이지가 넘는 터라 모든 페이지를 꼼곰히 읽기엔 물리적인 시간이 부족했지만, 책이 안내하는 대로 기초를 다지고 여러 서버를 직접 구축해 본 경험은 리눅스에 대해 더욱 흥미를 가지게 했다. 그동안 여기저기서 조금씩 배워 얼레벌레 사용했던 나에게, 이 책은 흩어져 있던 지식의 파편들을 하나로 묶어주는 역할을 해주었다. 로키 리눅스라는 최신 황경 위에서 기초부터 서버 구축까지 일관성 있게 학습하다 보니, 막연하던 개념들이 비로소 실무적인 문맥으로 읽히기 시작했다.&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;물론 책의 두께는 이 책의 가장 큰 장점이자, 동시에 완독을 어렵게 만드는 진입 장벽이 될 수도 있다. 하지만 직접 경험해본 책의 구성은 생각보다 유연했다. 선행 파트를 무조건 다 읽어야만 하는 것도 아니기 때문에, 리눅스 개념이 이미 잡혀 있는 분들이라면 초반 파트를 건너뛰고 본인이 필요한 서버 구축 챕터만 쏙쏙 골라 학습할 수 있어, 실질적인 학습 시간은 훨씬 단축될 수 있다.(대략 500페이지 대에서 시작)&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;b&gt;추천 대상&lt;/b&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;리눅스 처음 입문하는 왕초보&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;환경 세팅부터 기본 명령어까지 단계별로 친절하게 안내해주기 때문에 여기저기 정보를 검색하며 시간을 낭비하는 것보다는 이 책 한권으로 집중해서 공부하는 것이 훨씬 빠르고 정확한 지름길이 될 것 같다.&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;자격증 취득 및 취업을 준비하는 예비 개발자&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;리눅스 마스터 등 관련 자격증 공부를 병행하거나, 면접 등을 위해 지식을 체계적으로 정리하고 싶은 분들에게 최적이다. 흐름을 이해할 수 있는 구성이고, 또 직접 구축해 본 경험을 얻을 수 있어 면접 등에서도 관련된 질의에 응답하는데 많은 도움이 될 것 같다.&lt;/li&gt;
&lt;/ul&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;a href=&quot;https://m.yes24.com/Goods/Detail/182750165&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://m.yes24.com/Goods/Detail/182750165&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777202250084&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;book&quot; data-og-title=&quot;이것이 리눅스다 with Rocky Linux 10 | 우재남 | 한빛미디어 - 예스24&quot; data-og-description=&quot;* 유튜브 동영상 강의 제공, Q/A 네이버 카페 운영* MacOS, Winodws 환경 완벽 지원, VMwareWorkstation Pro/Fusion Pro 기반 실습리눅스 서버 입문서의 대표 스테디셀러 『이것이 리눅스다』가 개정 4판으로 돌&quot; data-og-host=&quot;m.yes24.com&quot; data-og-source-url=&quot;https://m.yes24.com/Goods/Detail/182750165&quot; data-og-url=&quot;https://m.yes24.com/goods/detail/182750165&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cwi9NC/dJMb8YXOkOi/UixEwVutdHs41a6fw3JV21/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=633_525_711_611,https://scrap.kakaocdn.net/dn/bnB5qB/dJMb8Z3t6ST/rKKmdAZTuaRMTSKULBDBFk/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=633_525_711_611,https://scrap.kakaocdn.net/dn/biFY1W/dJMb8WeCsnV/xmh6Q8U92uLmGpnkXJonC1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=633_525_711_611&quot;&gt;&lt;a href=&quot;https://m.yes24.com/Goods/Detail/182750165&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://m.yes24.com/Goods/Detail/182750165&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cwi9NC/dJMb8YXOkOi/UixEwVutdHs41a6fw3JV21/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=633_525_711_611,https://scrap.kakaocdn.net/dn/bnB5qB/dJMb8Z3t6ST/rKKmdAZTuaRMTSKULBDBFk/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=633_525_711_611,https://scrap.kakaocdn.net/dn/biFY1W/dJMb8WeCsnV/xmh6Q8U92uLmGpnkXJonC1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=633_525_711_611');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;이것이 리눅스다 with Rocky Linux 10 | 우재남 | 한빛미디어 - 예스24&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;* 유튜브 동영상 강의 제공, Q/A 네이버 카페 운영* MacOS, Winodws 환경 완벽 지원, VMwareWorkstation Pro/Fusion Pro 기반 실습리눅스 서버 입문서의 대표 스테디셀러 『이것이 리눅스다』가 개정 4판으로 돌&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;m.yes24.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category>나는리뷰어다</category>
      <category>이것이리눅스다</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/208</guid>
      <comments>https://monicx.tistory.com/208#entry208comment</comments>
      <pubDate>Sun, 26 Apr 2026 20:21:09 +0900</pubDate>
    </item>
    <item>
      <title>[책 리뷰] 방구석 1인 앱 창업</title>
      <link>https://monicx.tistory.com/207</link>
      <description>&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/10LAr/dJMcaaY7kTB/tqDvI1Hw4oLtBMFphpLSMK/tfile.jpg&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/10LAr/dJMcaaY7kTB/tqDvI1Hw4oLtBMFphpLSMK/tfile.jpg&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/10LAr/dJMcaaY7kTB/tqDvI1Hw4oLtBMFphpLSMK/tfile.jpg&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F10LAr%2FdJMcaaY7kTB%2FtqDvI1Hw4oLtBMFphpLSMK%2Ftfile.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;3000&quot; height=&quot;4000&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;리액트 네이티브를 기반으로 앱 기획부터 배포, 운영까지 앱 창업의 전체 프로세스를 다루는 책이다. 단순히 코드를 짜는 기술서라기보다, '앱 서비스를 어떻게 만들고 어떻게 시장에 안착시킬 것인가'에 대한 비즈니스 관점의 가이드북에 가깝다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;1. 개발보다는 '창업'과 '기획'에 진심인 구성&lt;/b&gt;&lt;br /&gt;책의 초반부에서 저자의 이력을 보면 앱 창업 현장에서 쌓은 구체적인 내공이 느껴진다. 덕분에 이론적인 이야기가 아니라 실제 창업가가 겪은 경험 기반의 노하우를 배울 수 있다는 점이 이 책의 가장 큰 장점이다.&lt;br /&gt;전체적인 목차는 다음과 같다.&lt;br /&gt;- 챕터 1: 시작하기 (저자 스펙 및 마인드셋)&lt;br /&gt;- 챕터 2: 기획하기&lt;br /&gt;- 챕터 3: 개발하기&lt;br /&gt;-&amp;nbsp;&amp;nbsp;챕터 4: 수익화와 배포&lt;br /&gt;- 챕터 5: 성장시키기&lt;br /&gt;- 챕터 6: AI 퍼스트 1인 앱 개발 방법론&lt;br /&gt;&lt;br /&gt;목록에서 알 수 있듯, 리액트 네이티브의 심도 있는 기술을 파헤치는 책은 아니다. 개발 챕터는 환경 설정, Expo 안내, 타로 앱 예제 정도로 아주 기초적인 수준이라 기술적인 인사이트를 기대했다면 아쉬울 수 있다. 하지만 이 책의 진가는 기획과 사후 관리에 있다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;2. 기획의 탄탄함: 린 캔버스와 수익 모델&lt;/b&gt;&lt;br /&gt;가장 만족스러웠던 부분은 기획하기 챕터다.&lt;br /&gt;* 린 캔버스 모델과 컨셉 설계법을 통해 설계 단계에서 실패 확률을 줄이는 실무적인 방법을 배울 수 있다.&lt;br /&gt;* 수익 모델의 경우, 흔히 생각하는 광고 수익 외에도 총 9가지의 모델을 제시한다.&lt;br /&gt;* 최근 트렌드인 AI를 접목한 새로운 수익 모델까지 다루고 있어 아이디어를 확장하기 좋다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;3. 배포와 운영의 진입장벽을 낮추다&lt;/b&gt;&lt;br /&gt;앱 배포힐 때 가장 번거로운 부분이 바로 스토어 배포와 광고 연결이다.&lt;br /&gt;* 수익화 챕터: 애드몹(AdMob) 연결 방법과 광고 효율을 높이는 전략을 상세히 다룬다.&lt;br /&gt;* 배포 가이드: 안드로이드와 iOS 스토어 배포 과정을 쉽게 가이드해주는데, 처음 도전하는 사람들에게는 아주 유용한 매뉴얼이 될 것 같다.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;4. &quot;만들고 나서 뭐 하지?&quot;에 대한 해답&lt;/b&gt;&lt;br /&gt;개발이 끝나면 막막해지기 마련인데, 성장시키기 챕터가 이 의문을 해소해준다.&lt;br /&gt;* 초기 마케팅 전략과 서비스 확장 전략을 구체적인 예제를 통해 보여준다.&lt;br /&gt;* &quot;앱을 만들고 나서는 어떻게 운영해야 하는가?&quot;라는 근본적인 고민에 대해 실질적인 도움을 준다.&lt;br /&gt;&lt;br /&gt;앱 개발에 관심이 있다면 한 번쯤 가볍게 읽어볼 만한 책이다. 깊이 있는 코딩 기술보다는 기획부터 운영까지의 전체 프로세스를 빠르게 훑어보고 싶은 사람에게 추천한다. 시행착오를 줄이고 비즈니스적인 관점을 장착하는 데 많은 도움이 될 것이다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;</description>
      <category> review/책</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/207</guid>
      <comments>https://monicx.tistory.com/207#entry207comment</comments>
      <pubDate>Sun, 5 Apr 2026 20:48:41 +0900</pubDate>
    </item>
    <item>
      <title>[책 리뷰] 미니멀리즘 프로그래머</title>
      <link>https://monicx.tistory.com/206</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;나는리뷰어다 2026 활동을 위해 책을 제공받아 작성한 리뷰입니다&lt;br /&gt;&lt;br /&gt;덜어내는 사고방식을 배울 수 있는 책이다. 코드를 짧게 쓰는 얘기가 아니라, 전체 개발 과정에서 뭘 해야 하고 뭘 굳이 안 해도 되는지 판단하는 기준을 잡아준다.&lt;br /&gt;&lt;br /&gt;AI로 뭐든 쉽게 만들어지는 시대라 오히려 이것저것 붙이기 쉬운데, 그런 과한 부분들을 줄이고 핵심만 남기는 감각을 키워준다. 결국 중요한 것만 남기는 게 더 어렵고, 그게 실력을 만든다는 걸 느끼게 해준다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.yes24.com/product/goods/180489853&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.yes24.com/product/goods/180489853&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777081397377&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;book&quot; data-og-title=&quot;[전자책] 미니멀리즘 프로그래머 | 데이비드 토머스 | 한빛미디어 - 예스24&quot; data-og-description=&quot;개발의 무게를 덜어내고 본질만 남기다.실용주의 프로그래머 데이비드 토머스가 제안하는지속 가능한 코딩을 위한 미니멀리즘『실용주의 프로그래머』의 저자 데이비드 토머스가 우리를 옥죄&quot; data-og-host=&quot;www.yes24.com&quot; data-og-source-url=&quot;https://www.yes24.com/product/goods/180489853&quot; data-og-url=&quot;https://www.yes24.com/product/goods/180489853&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/TCs1K/dJMb89ygfya/9vwiBNevJdx4xJxlHZzXKk/img.jpg?width=822&amp;amp;height=1200&amp;amp;face=0_0_822_1200,https://scrap.kakaocdn.net/dn/DLu3R/dJMb8WeCi8P/gQsn7kt5kaJGuWfXulpCSk/img.jpg?width=822&amp;amp;height=1200&amp;amp;face=0_0_822_1200,https://scrap.kakaocdn.net/dn/t87BJ/dJMb8XR8mwh/1cGotwTKLsXgnuooprfiK1/img.jpg?width=822&amp;amp;height=1200&amp;amp;face=0_0_822_1200&quot;&gt;&lt;a href=&quot;https://www.yes24.com/product/goods/180489853&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.yes24.com/product/goods/180489853&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/TCs1K/dJMb89ygfya/9vwiBNevJdx4xJxlHZzXKk/img.jpg?width=822&amp;amp;height=1200&amp;amp;face=0_0_822_1200,https://scrap.kakaocdn.net/dn/DLu3R/dJMb8WeCi8P/gQsn7kt5kaJGuWfXulpCSk/img.jpg?width=822&amp;amp;height=1200&amp;amp;face=0_0_822_1200,https://scrap.kakaocdn.net/dn/t87BJ/dJMb8XR8mwh/1cGotwTKLsXgnuooprfiK1/img.jpg?width=822&amp;amp;height=1200&amp;amp;face=0_0_822_1200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[전자책] 미니멀리즘 프로그래머 | 데이비드 토머스 | 한빛미디어 - 예스24&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;개발의 무게를 덜어내고 본질만 남기다.실용주의 프로그래머 데이비드 토머스가 제안하는지속 가능한 코딩을 위한 미니멀리즘『실용주의 프로그래머』의 저자 데이비드 토머스가 우리를 옥죄&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.yes24.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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> review</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/206</guid>
      <comments>https://monicx.tistory.com/206#entry206comment</comments>
      <pubDate>Sun, 29 Mar 2026 20:23:38 +0900</pubDate>
    </item>
    <item>
      <title>리라이트가 아닌 전략으로서의 전환: &amp;quot;러스트로 갈아타기&amp;quot;</title>
      <link>https://monicx.tistory.com/205</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;얼마 전, 2030년까지 C/C++을 Rust로 전환하겠다는 기사를 보고 흥미가 생겼다. 저수준 언어를 깊게 다뤄본 적도 없고, 특히 러스트는 이전 년도 리뷰 도서로 한 번 가볍게 접한게 전부였다. 그때도 &quot;어렵다&quot;, &quot;난해하다...&quot;라는 인상 정도만 남았다. 그런데 점점 더 많은 조직이 러스트를 선택한다는 기사들을 보면서, 막연히 &quot;알아두면 좋을 언어&quot;라는 생각이 들었다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;그래서 26년 나는리뷰어다 첫 도서는 &quot;러스트로 갈아타기&quot;를 신청했다.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: Noto Serif KR;&quot;&gt;한빛미디어 나는리뷰어다2026 활동을 위해 책을 제공받아 작성한 리뷰입니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/QKrlS/dJMcahjf7cs/k635PY0WErdMufXhBgBJT1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/QKrlS/dJMcahjf7cs/k635PY0WErdMufXhBgBJT1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/QKrlS/dJMcahjf7cs/k635PY0WErdMufXhBgBJT1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQKrlS%2FdJMcahjf7cs%2Fk635PY0WErdMufXhBgBJT1%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;3000&quot; height=&quot;2250&quot; data-filename=&quot;blob&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;리팩터링은 &quot;점진적 개선&quot;&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;갈아타기&quot;라는게 얼핏 보면 완전 바꿔버리자!!로 보이기도 했는데, 제목과는 달리 &quot;전부 갈아엎어&quot;라고 말하는 책은 아니었다.&lt;br /&gt;기존 시스템을 알고, 병목 구간부터 시작해 FFI로 기존 언어와 공존시키고, 필요하다면 unsafe까지 전략적으로 활용...&lt;br /&gt;&amp;nbsp;&lt;br /&gt;이 흐름을 따라가다 보면 리팩터링이란 점진적 개선이라는 말이 자연스럽게 와닿았다. 한 번에 뒤엎는게 아니라, 경계를 나누고 위험을 계산하고 작은 단위로 옮겨가는, 하나의 전략이라는 것을 배웠다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;사실 나는 리팩터링을 제대로 해본 적이 없다. 다른 사람이 쓴 코드를 일부 수정해 본 경험은 있어도, 기술 스택 자체를 바꾸는 마이그레이션은 전혀 없음. 그래서 읽는 내내, 이건 실무 수준의 고수들이 읽어야 하는 책이구나 생각이 들었다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;솔직히 쉽지 않았다. 시스템 레벨 이야기, 메모리 안정성, FFI 설계 등, 지금의 내 경험치로는 반도 체화하기 어려운 내용이 많았다. 그런데 이 점이 오히려 이 책의 장점처럼 느껴졌다.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;이미 복잡해진 시스템을 어떻게 다뤄야 하는지, 어떤 기준으로 리스크를 줄여야 하는지, 성능과 안정성을 동시에 잡으려면 무엇을 포기하고 가져가야 할지.&lt;br /&gt;&amp;nbsp;&lt;br /&gt;지금 당장 겪고 있지는 않지만, 개발을 계속 공부한다면 언젠가는 마주치게 될 질문처럼 느껴졌다. 앞으로 이런 선택을 해야 하는 상황이 온다면, &quot;리라이트&quot; vs &quot;현상 유지&quot;라는 이분법적 접근보다는 &quot;경계를 나눠 일부를 러스트로 감싼다&quot;는 방법을 떠올릴 수 있을 것 같다. 비단 러스트로의 리팩토링 뿐만 아니라 어떤 스택에서도 적용할 수 있는 사고방식을 배운 느낌.&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;솔직히 러스트 너무 어려움&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;러스트...너무 어렵다. 자바스크립트, 파이썬을 위주로 보던 나이기에 러스트의 철학은 더욱 낯설게 느껴졌던 것 같다.&amp;nbsp;&lt;br /&gt;&amp;nbsp;&lt;br /&gt;그래도 초반 챕터에서는 러스트의 핵심 개념들을 정리해준다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;소유권&lt;/li&gt;
&lt;li&gt;메모리 안정성&lt;/li&gt;
&lt;li&gt;FFI&lt;/li&gt;
&lt;li&gt;unsafe&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;여전히 긴장감이 생기는 단어들...C/C++처럼 메모리 레벨에서 언어를 다뤄본 경험이 없다 보니, 개념 하나를 이해하는 데도 시간이 꽤 걸렸다. 아직도 완전히 이해했다고 말하긴 어렵다. 그럼에도 좋았던 점은 설명 방식이다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;텍스트와 코드만으로 밀어붙이지 않고, 추상적으로 느껴질 수 있는 개념, 흐름들을 도표와 구조도로 시각화해서 설명한다. 이런 보조 자료 덕분에 이해에 도움이 많이 되었다.&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/quEYx/dJMcagq41kj/nK37J258kqbbyDpqLqdRo1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/quEYx/dJMcagq41kj/nK37J258kqbbyDpqLqdRo1/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/quEYx/dJMcagq41kj/nK37J258kqbbyDpqLqdRo1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FquEYx%2FdJMcagq41kj%2FnK37J258kqbbyDpqLqdRo1%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;3000&quot; height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/b8pgRT/dJMcafsatAS/wJ58PAw0kPn0DncwbDbspK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/b8pgRT/dJMcafsatAS/wJ58PAw0kPn0DncwbDbspK/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot; data-is-animation=&quot;false&quot; data-widthpercent=&quot;50&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/b8pgRT/dJMcafsatAS/wJ58PAw0kPn0DncwbDbspK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb8pgRT%2FdJMcafsatAS%2FwJ58PAw0kPn0DncwbDbspK%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;3000&quot; height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;p style=&quot;text-align: left;&quot; data-ke-size=&quot;size16&quot;&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;추천 대상&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;이미 운영 중인 서비스를 다루고 있는 개발자&lt;/li&gt;
&lt;li&gt;성능 이슈나 메모리 안정성 문제를 고민해본 사람&lt;/li&gt;
&lt;li&gt;러스트를 단순한 프로그래밍 언어가 아닌 전환 전략 관점에서 보고 싶은 사람&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&lt;a href=&quot;https://www.yes24.com/product/goods/176455828&quot; target=&quot;_blank&quot; rel=&quot;noopener&amp;nbsp;noreferrer&quot;&gt;https://www.yes24.com/product/goods/176455828&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1777081233039&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;book&quot; data-og-title=&quot;[전자책] 러스트로 갈아타기 | 릴리 마라 | 한빛미디어 - 예스24&quot; data-og-description=&quot;달리는 기차의 엔진을 멈추지 않고 교체하는 법실무자를 위한 러스트 기반 마이그레이션 가이드많은 개발 팀이 딜레마에 빠져 있습니다. C/C++ 프로젝트는 메모리 오류로 인한 버그가 끊이질 않&quot; data-og-host=&quot;www.yes24.com&quot; data-og-source-url=&quot;https://www.yes24.com/product/goods/176455828&quot; data-og-url=&quot;https://www.yes24.com/product/goods/176455828&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/1ph9N/dJMb8T92abZ/VvSdmrqDgVMq4KmZuYZp41/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=645_339_706_406,https://scrap.kakaocdn.net/dn/q5IH5/dJMb8TCciUf/cBlIPnYeE7J1NDkesriXM0/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=645_339_706_406,https://scrap.kakaocdn.net/dn/dejMvF/dJMb8WeCi7L/XWB90kKbhX9luwUqV6IKg1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=645_339_706_406&quot;&gt;&lt;a href=&quot;https://www.yes24.com/product/goods/176455828&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.yes24.com/product/goods/176455828&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/1ph9N/dJMb8T92abZ/VvSdmrqDgVMq4KmZuYZp41/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=645_339_706_406,https://scrap.kakaocdn.net/dn/q5IH5/dJMb8TCciUf/cBlIPnYeE7J1NDkesriXM0/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=645_339_706_406,https://scrap.kakaocdn.net/dn/dejMvF/dJMb8WeCi7L/XWB90kKbhX9luwUqV6IKg1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=645_339_706_406');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;[전자책] 러스트로 갈아타기 | 릴리 마라 | 한빛미디어 - 예스24&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;달리는 기차의 엔진을 멈추지 않고 교체하는 법실무자를 위한 러스트 기반 마이그레이션 가이드많은 개발 팀이 딜레마에 빠져 있습니다. C/C++ 프로젝트는 메모리 오류로 인한 버그가 끊이질 않&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.yes24.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;</description>
      <category> review/책</category>
      <category>나는리뷰어다</category>
      <category>러스트</category>
      <category>러스트로갈아타기</category>
      <category>한빛미디어</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/205</guid>
      <comments>https://monicx.tistory.com/205#entry205comment</comments>
      <pubDate>Mon, 2 Mar 2026 23:51:43 +0900</pubDate>
    </item>
    <item>
      <title>[책 리뷰] 기획에서 출시까지 FastAPI 개발 백서</title>
      <link>https://monicx.tistory.com/204</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;책의 저자 분은 &quot;푸딩캠프&quot;라는 개발 커뮤니티를 운영 중인 분입니다. 푸딩캠프라는 이름을 들어본 적이 있었던 터라, 인지도 있는 커뮤니티를 운영하는 분이 집필한 책이라는 점에서 신뢰도가 한층 높아진 책입니다. 커뮤니티를 운영하고 실제로 많은 개발자들을 만나고 교육해온 분이 쓴 책이라는 점에서 내용에 대한 기대감이 자연스럽게 커졌습니다.&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;기획부터 출시까지-라는 제목도 인상적이었습니다. 단순한 FastAPI 실습 예제가 아니라 하나의 서비스를 처음부터 끝까지 만들어보는 전 과정을 경험해볼 수 있겠다, 라는 느낌을 주었고 실제로 책을 읽어보니 그 기대에 정말 잘 부합하는 구성이라는 생각이 들었습니다.&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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;길벗 31차 개발자 리뷰어 활동을 위해 길벗 출판사에서 책을 제공받아 작성한 리뷰입니다.&lt;br /&gt;&lt;/span&gt;&lt;/blockquote&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bgZNEq/dJMcafegbYo/ofchExIKqOCeUg5MLALhG1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bgZNEq/dJMcafegbYo/ofchExIKqOCeUg5MLALhG1/img.png&quot; data-alt=&quot;표지가 이뻐용&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bgZNEq/dJMcafegbYo/ofchExIKqOCeUg5MLALhG1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbgZNEq%2FdJMcafegbYo%2FofchExIKqOCeUg5MLALhG1%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;3000&quot; height=&quot;4000&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;figcaption&gt;표지가 이뻐용&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;개요&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&quot;기획에서 출시까지 FastAPI 개발 백서&quot;는 &quot;약속잡기 서비스&quot;를 예제로 삼아 FastAPI를 학습합니다. 그냥 API 몇 개를 만들어보는 수준이 아니라 서비스 기획, PRD 작성, 설계, 데이터베이스 모델링, 백엔드 구현, 외부 API 연동, 프론트엔드 연동, 테스트, 모니터링, 배포까지, 제목 그대로 설계부터 출시 이후 운영까지 고려한 전 과정을 다룹니다.&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;b&gt;[아래는 목차]&lt;/b&gt;&lt;/p&gt;
&lt;div data-ke-type=&quot;moreLess&quot; data-text-more=&quot;더보기&quot; data-text-less=&quot;닫기&quot;&gt;&lt;a class=&quot;btn-toggle-moreless&quot;&gt;더보기&lt;/a&gt;
&lt;div class=&quot;moreless-content&quot;&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;목차&lt;br /&gt;1장. 우리가 만들 프로젝트와 도구 이해&lt;br /&gt;- 1.1 프로젝트를 만들고 운영해야 하는 이유&lt;br /&gt;- 1.2 FastAPI를 사용하는 이유&lt;br /&gt;- 1.3 우리가 만들 프로젝트의 목표와 계획&lt;br /&gt;- 1.4 약속 잡기 프로젝트에 사용하는 도구&lt;br /&gt;&lt;br /&gt;2장. 셸 기본 기능 익히기&lt;br /&gt;- 2.1 셸이란&lt;br /&gt;- 2.2 경로와 디렉터리&lt;br /&gt;- 2.3 파일 다루기&lt;br /&gt;&lt;br /&gt;3장. 실습 환경 준비&lt;br /&gt;- 3.1 비주얼 스튜디오 코드 설치&lt;br /&gt;- 3.2 비주얼 스튜디오 코드 화면 구성&lt;br /&gt;- 3.3 비주얼 스튜디오 코드 기본 사용법&lt;br /&gt;- 3.4 비주얼 스튜디오 코드 확장 기능&lt;br /&gt;- 3.5 파이썬 가상 환경&lt;br /&gt;- 3.6 FastAPI 설치하고 맛보기&lt;br /&gt;&lt;br /&gt;4장. 약속 잡기 서비스 기획&lt;br /&gt;- 4.1 약속 잡기 서비스 기능 기획&lt;br /&gt;- 4.2 주요 기능&lt;br /&gt;- 4.3 사용자 인터페이스 요소 기획&lt;br /&gt;- 4.4 데이터 설계&lt;br /&gt;&lt;br /&gt;5장. 데이터 모델링&lt;br /&gt;- 5.1 파이썬에서 데이터베이스를 사용하는 방법: SQLModel&lt;br /&gt;- 5.2 모델링&lt;br /&gt;- 5.3 데이터베이스 연결 설정&lt;br /&gt;- 5.4 Alembic을 사용하여 데이터베이스 마이그레이션&lt;br /&gt;&lt;br /&gt;6장. 코드 테스트&lt;br /&gt;- 6.1 테스팅 개요&lt;br /&gt;- 6.2 단위 테스트 실습&lt;br /&gt;- 6.3 통합 테스트 실습&lt;br /&gt;- 6.4 pytest의 픽스처 기능을 사용한 테스팅&lt;br /&gt;&lt;br /&gt;7장. 회원가입 및 사용자 인증 구현&lt;br /&gt;- 7.1 회원가입 테스트 코드 작성&lt;br /&gt;- 7.2 회원가입 API 구현&lt;br /&gt;- 7.3 로그인 구현&lt;br /&gt;- 7.4 자기 자신의 정보를 가져오는 API 구현&lt;br /&gt;- 7.5 FastAPI 캘린더, 계정 설정 페이지 구현&lt;br /&gt;&lt;br /&gt;8장. 사용자별 캘린더 및 예약 관리 구현&lt;br /&gt;- 8.1 호스트별 캘린더 가져오기&lt;br /&gt;- 8.2 호스트의 캘린더를 생성하고 변경&lt;br /&gt;- 8.3 타임슬롯 관리&amp;nbsp;&lt;br /&gt;- 8.4 예약&lt;br /&gt;- 8.5 캘린더 예약 가져오기&amp;nbsp;&lt;br /&gt;- 8.6 FastAPI 캘린더, 예약 관리&lt;br /&gt;- 8.7 부킹에서 참석 상태 정보 다루기&lt;br /&gt;- 8.8 파일 업로드&amp;nbsp;&lt;br /&gt;&lt;br /&gt;9장. 운영자 페이지에서 데이터 관리&lt;br /&gt;- 9.1 운영자 페이지와 SQLAdmin&amp;nbsp;&lt;br /&gt;- 9.2 SQLAdmin 기본 활용법&lt;br /&gt;- 9.3 메서드 오버라이딩을 활용하여 기능 확장 및 변경&lt;br /&gt;- 9.4 SQLAdmin 사용자 인증 체계&lt;br /&gt;&lt;br /&gt;10장. 약속 잡기 프로젝트에 프런트엔드 연동&lt;br /&gt;- 10.1 정적 파일&lt;br /&gt;- 10.2 구현된 결과물을 파이썬 웹 서버로 구동&lt;br /&gt;- 10.3 CORS 처리&lt;br /&gt;- 10.4 호스트 목록 API&lt;br /&gt;- 10.5 인증 토큰이 없는 경우에 대한 명확한 응답&lt;br /&gt;- 10. 6 캘린더 흐름&lt;br /&gt;- 10.7 웹 프런트엔드 개발 명세&lt;br /&gt;&lt;br /&gt;11장. SQLAlchemy 지연 로딩 전략&amp;nbsp;&lt;br /&gt;- 11.1 지연 로딩이란&lt;br /&gt;- 11.2 지연 로딩의 종류&amp;nbsp;&lt;br /&gt;- 11.3 SQLAlchemy 지연 로딩 적용&lt;br /&gt;&lt;br /&gt;12장. 구글 캘린더 연동&lt;br /&gt;- 12.1 구글 클라우드 API&lt;br /&gt;- 12.2 구글 캘린더에 이벤트 생성&lt;br /&gt;- 12.3 구글 캘린더의 이벤트 관리&lt;br /&gt;- 12.4 약속 잡기 구현체에 구글 캘린더 연동 적용&lt;br /&gt;- 12.5 FastAPI 백그라운드 작업&lt;br /&gt;&lt;br /&gt;13장. 오류 기록과 관찰, 관리&lt;br /&gt;- 13.1 오류 로그 체계&lt;br /&gt;- 13.2 Sentry란&lt;br /&gt;- 13.3 계정과 프로젝트 생성&lt;br /&gt;- 13.4 약속 잡기 프로젝트에 Sentry 반영&lt;br /&gt;- 13.5 오류 로그 테스트&lt;br /&gt;- 13.6 수동으로 로그 남기기&lt;br /&gt;&lt;br /&gt;14장. 아마존 웹 서비스에 배포하기&lt;br /&gt;- 14.1 의존 패키지 관리&lt;br /&gt;- 14.2 AWS Lightsail(라이트세일)로 서버 구성&lt;br /&gt;- 14.3 인스턴스 서버에 환경 구성&lt;br /&gt;- 14.4 깃허브 액션을 사용하여 배포 자동화&amp;nbsp;&lt;/blockquote&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/n2CPT/dJMcaivewzr/NwIzlAvwnLUbUCkpVwNEA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/n2CPT/dJMcaivewzr/NwIzlAvwnLUbUCkpVwNEA0/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/n2CPT/dJMcaivewzr/NwIzlAvwnLUbUCkpVwNEA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fn2CPT%2FdJMcaivewzr%2FNwIzlAvwnLUbUCkpVwNEA0%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;3000&quot; height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/uBzg6/dJMcajt8cRQ/gl7FndJbLt5veknwMqK8R0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/uBzg6/dJMcajt8cRQ/gl7FndJbLt5veknwMqK8R0/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/uBzg6/dJMcajt8cRQ/gl7FndJbLt5veknwMqK8R0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuBzg6%2FdJMcajt8cRQ%2Fgl7FndJbLt5veknwMqK8R0%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;3000&quot; height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
  &lt;figcaption&gt;목차부터...이건 진짜다라는 느낌&lt;/figcaption&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;운영 가능한 서비스 개발&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 책을 읽으면서 가장 크게 느낀 점은, FastAPI를 잘 쓰는 법보다도 FastAPI를 사용해 실제로 굴러가는 서비스를 만드는 법에 초점이 맞춰져 있다는 점입니다. 저자님이 책 초반부터 운영의 중요성을 강조합니다. 서비스를 구현하고 끝나는게 아니라 어떻게 잘 설계하고, 어떻게 배포하고, 어떻게 모니터링하고, 어떻게 문제를 감지하고 대응할 것인지 까지 고려해야 진짜 서비스라는 관점이 목차부터 잘 드러나는 것 같습니다.&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;프론트엔드 연동까지 경험 가능&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 책은 FastAPI를 사용해 백엔드 구현에만 그치지 않습니다. 프론트엔드를 실제로 연동해보는 과정까지 포함되어 있습니다.&amp;nbsp;&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;CORS 문제&lt;/li&gt;
&lt;li&gt;인증 예외 처리&lt;/li&gt;
&lt;/ul&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;백단만 다루지 않고 프론트까지 연결해보는 과정을 보면서 확실히 &quot;실제 서비스 개발&quot;에 한 걸음 더 가까워진 느낌이 들었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;데이터베이스 설계와 SQLAlchemy 활용&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;SQLAlchemy를 활용한 데이터베이스 처리를 상당히 자세하게 다룹니다. 백엔드 개발은 부트캠프를 통해 어느 정도 배워본 상태였지만, 프로젝트에서 백엔드로 깊게 참여해본 적은 없어 DB단을 &quot;제대로 설계하고 활용한다&quot;는 것은 늘 어렵게 느껴졌습니다.&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;인증, 캘린더 등 비교적 복잡한 도메인 모델링&lt;/li&gt;
&lt;li&gt;SQLAlchemy를 활용한 관계 설정&lt;/li&gt;
&lt;li&gt;지연 로딩 처리&lt;/li&gt;
&lt;li&gt;sqlAdmin을 사용한 간단한 운영자 페이지 구성&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;등을 다루면서, 데이터를 단순히 저장하고 꺼내쓰는 수준을 넘어 잘 설계하고, 효율적으로 구현하고, 운영하는지를 체감할 수 있었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ppd1e/dJMcahJUYlb/yiVG1zkgnKhK9EKOnEaB50/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ppd1e/dJMcahJUYlb/yiVG1zkgnKhK9EKOnEaB50/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ppd1e/dJMcahJUYlb/yiVG1zkgnKhK9EKOnEaB50/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fppd1e%2FdJMcahJUYlb%2FyiVG1zkgnKhK9EKOnEaB50%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;3000&quot; height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/MxlMH/dJMcai23PEL/MAgtDrj45j2MMfYDh1jzWK/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/MxlMH/dJMcai23PEL/MAgtDrj45j2MMfYDh1jzWK/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; data-widthpercent=&quot;50&quot; style=&quot;width: 49.4186%;&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/MxlMH/dJMcai23PEL/MAgtDrj45j2MMfYDh1jzWK/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMxlMH%2FdJMcai23PEL%2FMAgtDrj45j2MMfYDh1jzWK%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;3000&quot; height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;구글 캘린더 연동, 외부 API 통합 경험&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;개인적으로 가장 재미있었더 부분은 구글 캘린더 연동입니다. 실제로 많이 쓰이는 외부 API 연동 과정을 꽤 실용적으로 다룹니다. 외부 API를 연동하는 전체 흐름을 한 번 제대로 경험해볼 수 있어서, 앞으로 다른 서비스를 만들때도 유용하게 쓸 수 있겠구나 생각이 듭니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/ceiXVk/dJMcafFkeqg/a7kLpvka0UeJiS39tx2mq0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/ceiXVk/dJMcafFkeqg/a7kLpvka0UeJiS39tx2mq0/img.png&quot; data-origin-width=&quot;4000&quot; data-origin-height=&quot;3000&quot; data-is-animation=&quot;false&quot; style=&quot;width: 49.4186%; margin-right: 10px;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/ceiXVk/dJMcafFkeqg/a7kLpvka0UeJiS39tx2mq0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FceiXVk%2FdJMcafFkeqg%2Fa7kLpvka0UeJiS39tx2mq0%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;4000&quot; height=&quot;3000&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/2qL0z/dJMcagEfJw9/0YodwHCEkFYw1ow35jvdA0/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/2qL0z/dJMcagEfJw9/0YodwHCEkFYw1ow35jvdA0/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 49.4186%;&quot; data-widthpercent=&quot;50&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/2qL0z/dJMcagEfJw9/0YodwHCEkFYw1ow35jvdA0/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F2qL0z%2FdJMcagEfJw9%2F0YodwHCEkFYw1ow35jvdA0%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;3000&quot; height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;배포와 운영: Sentry, AWS Lightsail&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;sentry를 활용한 로깅과, AWS Lightsail을 이용한 배포도 배울 수 있습니다. EC2, S3 등 자주 쓰는 서비스에 비해 Lightsail은 다소 낯선 서비스였습니다. 백엔드 배포도 아직은 많이 낯선데, 책을 따라가면서 Lightsail로 백엔드를 배포하는 방법을 단계적으로 배울 수 있었습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imagegridblock&quot;&gt;
  &lt;div class=&quot;image-container&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/CAWW1/dJMcahwmOos/QfkIBPK8Zh9HHmHzYRbKVk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/CAWW1/dJMcahwmOos/QfkIBPK8Zh9HHmHzYRbKVk/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/CAWW1/dJMcahwmOos/QfkIBPK8Zh9HHmHzYRbKVk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FCAWW1%2FdJMcahwmOos%2FQfkIBPK8Zh9HHmHzYRbKVk%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;3000&quot; height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bj9pKb/dJMcabQrV3V/tgiDZ7A1qnsacvlNxonxsk/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bj9pKb/dJMcabQrV3V/tgiDZ7A1qnsacvlNxonxsk/img.png&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;2250&quot; data-is-animation=&quot;false&quot; data-filename=&quot;blob&quot; style=&quot;width: 32.5581%; margin-right: 10px;&quot; data-widthpercent=&quot;33.33&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bj9pKb/dJMcabQrV3V/tgiDZ7A1qnsacvlNxonxsk/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbj9pKb%2FdJMcabQrV3V%2FtgiDZ7A1qnsacvlNxonxsk%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;3000&quot; height=&quot;2250&quot;/&gt;&lt;/span&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/bMxZrD/dJMcaiou5nv/g4Ko1cMKrtpMfFmCig1H01/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/bMxZrD/dJMcaiou5nv/g4Ko1cMKrtpMfFmCig1H01/img.png&quot; data-is-animation=&quot;false&quot; data-origin-height=&quot;3000&quot; data-origin-width=&quot;4000&quot; style=&quot;width: 32.5581%;&quot; data-widthpercent=&quot;33.34&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/bMxZrD/dJMcaiou5nv/g4Ko1cMKrtpMfFmCig1H01/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbMxZrD%2FdJMcaiou5nv%2Fg4Ko1cMKrtpMfFmCig1H01%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;4000&quot; height=&quot;3000&quot;/&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/figure&gt;
&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;느낀점&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;fastapi에 대해서도 정말 많은 것을 배울 수 있었지만, 가장 큰 강점으로 느껴진 부분은 역시 기획과 설계입니다. 요즘은 AI의 도움으로 코드 작성 자체의 난이도는 많이 낮아졌고, 백엔드 구현도 역시 이전보다는 접근성이 높아진 편이라고 느낍니다. 그래서 오히려 &quot;어떤 서비스를 만들 것인지&quot;, &quot;어떤 구조로 설계할 것인지&quot;가 더 중요해졌다고 생각합니다.&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;그런 점에서 이 채근 기획, 설계, 운영에 대한 인사이트를 함께 제공해준다는 점에서 단순한 FastAPI 기술서 그 이상이라고 느껴졌습니다.&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;탄탄한 구성도 마음에 들었습니다. 무려 600페이지가 넘는 분량...fastapi는 가볍고 빠른 기술로 유명한 것에 반해 책은 생각이상으로 두껍고 무겁습니다. 두께만 보아도, 그리고 목차만 훑어보아도 개발 전반을 정말 꼼꼼하게 다루고 있다는 느낌을 받을 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;하나의 예제를 기준으로&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;기능을 추가하고&lt;/li&gt;
&lt;li&gt;코드를 수정하고&lt;/li&gt;
&lt;li&gt;점점 발전시키는 구조&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;로 진행되기 때문에, 코드 변경 흐름을 따라가고, 이 모듈은 왜 추가하지?에 대한 의문도 쉽게 해소할 수 있어서 좋았습니다. 코드 구성과 설명의 깊이 덕분에, FastAPI라는 기술을 정말 탄탄하게 익힐 수 있는 구성이라고 느꼈습니다.&lt;/p&gt;
&lt;p&gt;&lt;figure class=&quot;imageblock alignCenter&quot; data-ke-mobileStyle=&quot;widthOrigin&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;&gt;&lt;span data-url=&quot;https://blog.kakaocdn.net/dn/Q9Y6F/dJMcajgBIfS/inGnKXQktglyL0DJ20SIp1/img.png&quot; data-phocus=&quot;https://blog.kakaocdn.net/dn/Q9Y6F/dJMcajgBIfS/inGnKXQktglyL0DJ20SIp1/img.png&quot;&gt;&lt;img src=&quot;https://blog.kakaocdn.net/dn/Q9Y6F/dJMcajgBIfS/inGnKXQktglyL0DJ20SIp1/img.png&quot; srcset=&quot;https://img1.daumcdn.net/thumb/R1280x0/?scode=mtistory2&amp;fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQ9Y6F%2FdJMcajgBIfS%2FinGnKXQktglyL0DJ20SIp1%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;3000&quot; height=&quot;4000&quot; data-origin-width=&quot;3000&quot; data-origin-height=&quot;4000&quot;/&gt;&lt;/span&gt;&lt;/figure&gt;
&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;최신 책인 만큼 fastapi, sqlalchemy 등 최신 버전 기준으로 학습할 수 있다는 점도 소소하지만 분명한 장점입니다.&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;+ 실습 환경 구축 파트는 보통 대충 훑고 넘어가는 편인데, 최근 Mac으로 기변할 일이 있어서 이 부분에서 정말 많은 도움을 받았습니다. fastapi 개발을 위한 환경 설정이 필요하신 분들에게 크게 도움이 될 부분...&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;추천 대상&lt;/h2&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;개발자 취업을 준비 중인 분&lt;/li&gt;
&lt;li&gt;FastAPI를 본격적으로 제대로 배워보고 싶은 분&lt;/li&gt;
&lt;li&gt;하나의 서비스를 기획부터 출시, 운영까지 직접 경험해보고 싶은 분&lt;/li&gt;
&lt;/ul&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;두께가 있는 편이라 FastAPI 문법만 빠르게 훑는 책을 찾는 분보다는, FastAPI를 탄탄하게 익히고 싶거나 &quot;실제 서비스 개발 경험&quot;을 한 번 제대로 해보고 싶은 분들께 특히 잘 맞는 책이라고 생각합니다.&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;a href=&quot;https://www.yes24.com/product/goods/162329199&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot;&gt;이 책이 궁금하다면-&amp;gt;&lt;/a&gt;&lt;/p&gt;
&lt;figure id=&quot;og_1768213775355&quot; contenteditable=&quot;false&quot; data-ke-type=&quot;opengraph&quot; data-ke-align=&quot;alignCenter&quot; data-og-type=&quot;book&quot; data-og-title=&quot;기획에서 출시까지 FastAPI 개발 백서 | 차경묵 | 길벗 - 예스24&quot; data-og-description=&quot;기획에서 출시까지! FastAPI로 실전 프로젝트 전 과정을 경험한다!실무 흐름 그대로 따라가며 &amp;lsquo;약속 잡기 웹 서비스&amp;rsquo; 만들어 보자.서비스 개발은 단순한 코드 작성이 아니라, 기획부터 배포까지&quot; data-og-host=&quot;www.yes24.com&quot; data-og-source-url=&quot;https://www.yes24.com/product/goods/162329199&quot; data-og-url=&quot;https://www.yes24.com/product/goods/162329199&quot; data-og-image=&quot;https://scrap.kakaocdn.net/dn/cQkRgQ/hyZRgINzAa/OW3DC37VvSvSdNIVKGsqG0/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/buT16s/hyZRplnM7U/s4Uma4v00Y59lP8eySg3y1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/bntJf1/hyZQV5f8Sx/shkQStH6ahQYYXP3P982y0/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200&quot;&gt;&lt;a href=&quot;https://www.yes24.com/product/goods/162329199&quot; target=&quot;_blank&quot; rel=&quot;noopener&quot; data-source-url=&quot;https://www.yes24.com/product/goods/162329199&quot;&gt;
&lt;div class=&quot;og-image&quot; style=&quot;background-image: url('https://scrap.kakaocdn.net/dn/cQkRgQ/hyZRgINzAa/OW3DC37VvSvSdNIVKGsqG0/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/buT16s/hyZRplnM7U/s4Uma4v00Y59lP8eySg3y1/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200,https://scrap.kakaocdn.net/dn/bntJf1/hyZQV5f8Sx/shkQStH6ahQYYXP3P982y0/img.jpg?width=934&amp;amp;height=1200&amp;amp;face=0_0_934_1200');&quot;&gt;&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;og-text&quot;&gt;
&lt;p class=&quot;og-title&quot; data-ke-size=&quot;size16&quot;&gt;기획에서 출시까지 FastAPI 개발 백서 | 차경묵 | 길벗 - 예스24&lt;/p&gt;
&lt;p class=&quot;og-desc&quot; data-ke-size=&quot;size16&quot;&gt;기획에서 출시까지! FastAPI로 실전 프로젝트 전 과정을 경험한다!실무 흐름 그대로 따라가며 &amp;lsquo;약속 잡기 웹 서비스&amp;rsquo; 만들어 보자.서비스 개발은 단순한 코드 작성이 아니라, 기획부터 배포까지&lt;/p&gt;
&lt;p class=&quot;og-host&quot; data-ke-size=&quot;size16&quot;&gt;www.yes24.com&lt;/p&gt;
&lt;/div&gt;
&lt;/a&gt;&lt;/figure&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> review/책</category>
      <category>fastapi</category>
      <category>길벗</category>
      <category>백엔드</category>
      <category>웹개발</category>
      <category>파이썬</category>
      <category>협찬</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/204</guid>
      <comments>https://monicx.tistory.com/204#entry204comment</comments>
      <pubDate>Mon, 12 Jan 2026 19:29:48 +0900</pubDate>
    </item>
    <item>
      <title>[책 리뷰] 스프링부트 개발자 온보딩 가이드</title>
      <link>https://monicx.tistory.com/203</link>
      <description>&lt;p data-ke-size=&quot;size16&quot;&gt;책 제목만 보고 처음에는 스프링부트를 이미 잘 아는 개발자들을 위한 실무/심화서라고 생각했다. &quot;온보딩 가이드&quot;라는게 회사에서 실무에 투입되는 개발자를 대상으로 한다는 느낌을 줬음.&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;blockquote data-ke-style=&quot;style1&quot;&gt;&lt;span style=&quot;font-family: 'Noto Serif KR';&quot;&gt;나는 리뷰어다 활동을 위해 한빛미디어에서 책을 제공받아 작성한 리뷰입니다.&lt;/span&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;개요&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링부트 개념을 깊게 파고드는 이론서라기보단, 실제 서비스를 만드는 흐름 속에서, 스프링부트 기능을 어떻게 조금 실무적으로 사용할 수 있을 지 보여주는 실습 중심의 책입니다.&lt;/p&gt;
&lt;blockquote data-ke-style=&quot;style3&quot;&gt;&lt;b&gt;목차&lt;br /&gt;Part1. 스프링부트 온보딩 가이드북 안내&lt;br /&gt;01. 온보딩 가이드의 목적과 활용법&lt;br /&gt;02. 스프링부트란 무엇인가요?&lt;br /&gt;&lt;br /&gt;Part2. 스프링부트 기능 실습&lt;br /&gt;03. 인메모리 기반의 To-Do 리스트 REST API 서버 만들기&lt;br /&gt;04. JPA 기반의 To-Do 리스트 REST API 서버 개발&lt;br /&gt;05. 고급 JPA 기반의 마이크로블로그 REST API 서버 개발&lt;br /&gt;06. Minilog에 인증 기능 추가하기&amp;nbsp;&lt;br /&gt;07. GraphQL 기반 마이크로블로그 API 서버 개발&lt;br /&gt;08. 도커를 이용한 애플리케이션 패키징 및 배포&lt;/b&gt;&lt;/blockquote&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링부트 기본 설정, API 구현, 인증/보안, 로깅과 헬스체크, 테스트, 패키징과 배포, 운영까지 하나의 서비스를 만들고, 배포하고, 운영하는 전 과정을 단계적으로 경험할 수 있도록 구성되어 있습니다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;400쪽이 채 되지 않는 얇은 책이지만, 설계부터 구현, 배포, 운영까지 개발 사이클을 전부 체험해볼 수 있습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;입문서같지만, 실무적인&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;전체적인 흐름은 입문서와 비슷합니다. 다만 여타 스프링부트 입문서들과 다른 점은, &quot;개념 설명&quot;보다는 &quot;실제로 이렇게 쓴다&quot;에 초점에 맞춰져 있다는 점입니다.&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;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;헬스체크&lt;/li&gt;
&lt;li&gt;로깅&lt;/li&gt;
&lt;li&gt;시큐리티 기반 인증&lt;/li&gt;
&lt;li&gt;RESTful API 구척&lt;/li&gt;
&lt;li&gt;QraphQL&lt;/li&gt;
&lt;li&gt;IoC/DI&lt;/li&gt;
&lt;li&gt;Auto Configuration&lt;/li&gt;
&lt;/ul&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;인메모리 API로 시작해 MySQL 연동으로 확장해 나가는 과정, 점점 복잡해지는 도메인 모델을 다루는 흐름이 인상적이었습니다. 엔티티와 DTO, DDD 등 개념들을 실제 코드 구조 안에서 이해해볼 수 있었던 점도 좋았습니다. 그리고 제일 인상적이었던 점!&amp;nbsp;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;RESTAPI뿐 아니라 GraphQL까지 다룬다는 점입니다. RESTAPI를 실습한 후, GraphQL를 실습해보며 REST API와의 차이를 비교할 수 있었습니다.&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;도커로 시작하는 온보딩 가이드&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;책 초반부터 도커 환경 설정을 다루고 시작합니다. WSL 등 컨테이너 기반 개발 환경을 만드는 과정을 비교적 상세히 안내하여 따라하기만 하면 환경 구축함에 어려움은 없지만, 컨테이너 개념, 리눅스 설정, 이미지 빌드와 실행 등등 완전 처음 개발을 시작하는 분들에게는 다소 난이도가 느껴질 수 있겠다는 생각도 들었습니다. 반대로 말하면, &quot;개발은 해봤는데 환경 구성이나 배포 쪽이 막연했다&quot;는 분들께는 굉장히 도움이 될 구성입니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;테스트와 배포, 운영&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;테스트 파트에서는 TestContainer를 활용한 테스트를 다룹니다. 로컬 환경에서만 테스트하는 것이 아니라, 실제 컨테이너 환경과 유사한 조건에서 테스트를 구성하는 흐름을 경험할 수 있었습니다. 테스트가 단순히 &quot;통과/실패&quot;를 확인하는 단계가 아니라 배포와 운영을 염두에 둔 과정이라는 것을 배울 수 있고, 테스트에 대한 관점과 경험을 한 단계 확장할 수 있었습니다.&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;배포를 다룰 때는 AWS ECR, ECS 등을 직접 다룹니다. 백엔드 배포는 경험이 많이 없는데, 이 책을 통해 배포 과정이 어떤 흐름으로 이루어지는지를 한 번에 경험할 수 있었습니다. 특히 좋았던 점은 배포하고 끝이 아니라, 운영 관점까지 이어진다는 점입니다. 헬스 체크, 로그 확인 등을 통해 서비스가 실제로 돌아가고 있는 상태를 확인하는 과정까지 포함되어 있어, 운영을 처음 접하는 입장에서 큰 도움이 되었습니다. 배포에 대한 어려움, 허들을 상당히 낮춰줄 수 있는 구성이었습니다.&lt;/p&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;&amp;nbsp;&lt;/p&gt;
&lt;h2 data-ke-size=&quot;size26&quot;&gt;높은 코드(실습) 비중&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;이 책은 코드 비중이 상당히 높습니다. 두 페이지, 세 페이지에 걸쳐 이어지는 코드도 자주 등장합니다. 하지만 하나의 서비스를 점진적으로 개선해 나가는 흐름 속에서 코드가 전개되어, 갑자기 복잡한 코드가 툭 튀어나오는 느낌은 적었습니다. 하이라이트 표시와 단계별 설명 덕분에 &quot;지금 이 코드가 왜 추가되었는지&quot;를 이해하며 읽을 수 있었습니다.&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;h2 data-ke-size=&quot;size26&quot;&gt;과제 소개&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;각 챕터 시작 전엔 &quot;과제 소개&quot; 섹션이 있습니다.&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;예상 소요 시간&lt;/li&gt;
&lt;li&gt;목표&lt;/li&gt;
&lt;li&gt;기능 요구 사항&lt;/li&gt;
&lt;li&gt;구현 요구 사항&lt;/li&gt;
&lt;/ul&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;h2 data-ke-size=&quot;size26&quot;&gt;추천대상&lt;/h2&gt;
&lt;p data-ke-size=&quot;size16&quot;&gt;스프링부트를 처음 접하는 완전 초보를 위한 책이라기보다는&lt;/p&gt;
&lt;ul style=&quot;list-style-type: disc;&quot; data-ke-list-type=&quot;disc&quot;&gt;
&lt;li&gt;스프링부트 입문서 한 번쯤 읽어봤고&lt;/li&gt;
&lt;li&gt;개념은 얼핏 아는데&lt;/li&gt;
&lt;li&gt;프로젝트에서 어떻게 활용하는지 잘 모르겠는 분들&lt;/li&gt;
&lt;/ul&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;</description>
      <category> review/책</category>
      <category>AWS</category>
      <category>나는리뷰어다</category>
      <category>도커</category>
      <category>스프링부트</category>
      <category>스프링부트개발자온보딩가이드</category>
      <category>온보딩가이드</category>
      <category>책 리뷰</category>
      <author>킁킁잉</author>
      <guid isPermaLink="true">https://monicx.tistory.com/203</guid>
      <comments>https://monicx.tistory.com/203#entry203comment</comments>
      <pubDate>Sun, 28 Dec 2025 22:34:29 +0900</pubDate>
    </item>
  </channel>
</rss>