유튜브를 둘러보면 많은 영상들이 외친다.
"이제 개발자는 필요 없다. AI가 전부 해준다."
신입 개발자인 나에게는 마치 사형 선고처럼 들리는 영상이 하루가 다르게 올라온다. 그리고 항상 언급되는 용어가 있다. 바로 바이브 코딩이다. 이 단어에 관심이 없다고 하면 신입 개발자라고 말하기 어려울 것이다.
그래서 자연스럽게 여러 바이브 코딩 관련 책에 관심이 가게 되었고 이 책을 선택했다.
단순히 바이브 코딩을 '어떻게'하는 방법을 넘어서 AI 시대에 개발자가 갖춰야하는 사고 방식과 원리를 배우고 싶었기 때문이다.
책에서 바이브 코딩의 기원부터 원리까지 굉장히 세세하게 다룬다. 바이브 코딩이 더 이상 농담과 같은 말이 아닌 개발 방법 중 하나로 떠오를 수 있던 이유와 원리를 명확하게 설명해준다. 책을 읽으며 자연스럽게 '나도 할 수 있다'라는 자신감을 얻을 수 있었다.
반면에 나에게 조금 어려웠던 점도 많았다. LLM의 등장부터 시작해서 성장해온 역사를 GPT와 클로드를 비교하며 매우 자세하게 설명해준다. 또한 바이브 코딩에서 사용되는 도구들에 대해서도 매우 자세하게 설명해주는데 IDE를 비롯해 각 AI들의 장단점을 넘어 요금제까지 꼼꼼히 다룬다. 내용은 표면적으로 이해하였지만 당장 사용하기에는 어려운 내용들이었다.
실습에 앞서 바이크 코딩을 하는 방식에 대해서 설명하는데 굉장히 마음에 들었다. 보통 이런 책은 실습하는 방식에 맞춰 설명을 이어나가는 방식이 많은데, 이 책은 현재 시점의 기술의 발전을 고려하여 설명해왔다. '1달 단위로 기술이 발전하여 이전의 기술이 구식이 된다.'는 관점에 따라 시간이 지나도 변하지 않을 원리를 기반으로 설명해왔다.
‘단순함 안정성 가시성’의 기술 철학을 강조하며 바이브 코딩에서 사용할 도구들을 선택하는 방식들을 설명한다. 예측 가능하고 통제 가능한 기술들을 선택하는 것이 확률적인 측면에서 유리한 점을 잘 설명해왔다. 이런 관점에서 재미있었던게 보수적인 기술을 선택하는 측면이 더 유리하다는 것이었다. ORM보다는 단순한 SQL이 유리한 것과 MCP는 최후의 보루로 사용하는 것이 좋다는 등 AI에게 최신 기술을 붙여야 좋을 것이라는 나의 인식을 바꿔주었다.
또한 AI 기반 코드를 신뢰하지 않는 것을 기반으로 바이브 코딩을 시작한다는 관점을 가지고 있기에 테스트와 리뷰의 중요성을 여러 번 말한다. 특히 로깅과 피드백 시스템은 AI의 '눈과 귀'가 되어준다는 점을 강조했다. AI는 실수하기에 개발자가 이런 실수를 알아차리는 것이 중요하기에 개발자의 역량 또한 중요하지 않은 점 또한 강조한다.
드디어 대망의 실습이다. 책의 중반이나 되어서 책의 실습을 시작한다는 점이 매우 신선하게 다가왔다. 그래도 그 만큼 앞의 원리 부분을 통해 잘 배웠기에 실습을 따라하는 데 큰 문제는 없었다. 책에서는 아래의 단계를 밟아 가며 바이브 코딩을 하는 방식을 설명해준다.
각 문서들을 작성하는 방법이나 실제 작성된 문서들을 보면서 드는 생각은 내가 개발 방법 중 하나를 배우는 느낌보다는 프로젝트를 기획, 설계하는 방법을 배우고 있다고 생각하였다. 그러다 보니 책에서 강조한 개발자는 방향을, AI는 구현을이라는 철학에 깊게 공감하게 되었다.
또한 이런 문서를 나 혼자 작성하는 것이 아닌 AI와 함께 만드는 과정까지 겪어보니 개발자에게 필요한 역량이 코드 작성이 아니게 되었다는 점이 와닿게 되었다.
이후에는 마법처럼 내가 만든 문서를 통해 프로젝트가 완성되었다. 내가 코드 한 줄 제대로 작성하지 않았지만 멀쩡히 돌아가는 웹 애플리케이션이 완성된 것이다. 거기다가 TDD까지 적용되었다. 앞의 규칙을 정하고 문서를 작성하는 긴 시간에 비해 구현은 허무할 정도의 짧은 시간이 걸렸다. 정말 무섭다는 말이 떠오를 정도의 파괴력이었다.
이후에는 AI와 소통하는 방식에 대해서 자세하게 배운다. 프롬프트 엔지니어링과 패턴 언어를 어떻게 사용해야 효율적으로 사용할 수 있는 지 명확하게 알려준다. 프롬프트 엔지니어링은 평소 관심이 있어 공부를 하여 사용하고 있었지만 이 책처럼 명확하게 배워본 적은 없어 나의 부족한 점들을 많이 보완할 수 있었다.
패턴 언어는 개발자들이 이제까지 만들어온 용어들(디자인 패턴과 같은)과 비슷한 용어였다. 나는 기존에 GPT와 같은 AI에게 프로젝트 코드의 도움을 받을 때 장황한 설명으로 만들어줄 구조에 대해서 설명해왔다. 설명이 길어질수록 결과물이 좋아지다가 어느 시점 이상으로 길어지면 결과물에 대한 오류가 줄어들지 않았는데, 이런 점들을 보완할 수 있는 방법들을 알려주었다. 그리고 나에게 개발 방법론과 같은 이론 공부의 중요성 또한 잘 알려주었다.
MCP에 대해서는 의외로 기본적인 설명에 굉장히 담백한 원리를 알려주었다. 많은 유튜브나 책들에서 MCP를 만능 기술로 알려주는 대신 이 책에서는 현재 부상하고 있는 기술이지만 결국 AI에게 추가 실패 지점을 만들 수 있는 점을 명시하며 CLI를 기반으로 MCP를 보조 수단으로 사용할 것을 권해왔다. 이 책을 읽기 전에는 공감하지 못할 내용이었지만 여기까지 책을 읽어온 나는 매우 완벽한 설명이라고 생각한다.
그렇다고 MCP에 부정적인 입장을 취하는 것은 아니었다. MCP는 발전하고 있는 기술이고 CLI에서 다루지 못할 기술도 점점 다루기 시작하며 언젠가 MCP를 적극 활용할 시대가 올 것이라고 얘기도 하였다. 그리고 많은 양의 양질의 MCP 서버들을 추천해주었다. 나는 눈으로 보고 넘겼지만 MCP를 적극 도입하고 있는 사람이라면 굉장히 만족할만한 정보들이라고 생각한다.
앞에서 AI의 코드를 믿지 않기에 리뷰가 매우 중요하다고 말한 것처럼 리뷰에 대해서 자세하게 다룬다. 굉장히 마음에 들었던 점이 리뷰가 형식적으로만 이루어지고 제대로 활용되지 못한 점을 꼬집으면서 시작하고 있다. '현실에서 리뷰는 속도와 효율의 압박과 동료의 코드를 지적하는 심리적 요인에 의해 제대로 시행되기 힘들다.'
리뷰를 단순한 방법으로 설명하지 않고 인간의 심리학과 연결하여 설명하여 어떻게 하면 좋은 리뷰 문화를 만들 수 있을 지 고민한 흔적이 보여 좋았다. 또한 AI가 가지는 강점을 활용한 리뷰 방식을 다룬 점도 마음에 들었다. 또한 리뷰를 어느 시점에서 하는 것이 좋은 지 각각의 체크 포인트들(설계 리뷰, 코드 리뷰)에 맞춘 리뷰에 대한 설명 또한 마음에 들었다.
책 저자는 이 리뷰에 대해서 굉장히 중요성을 강조하며 '리뷰 잘하는 개발자'가 곧 '성공적인 개발자'인 시대가 열리고 있다고 한다
사실 이 책의 내용을 전부 이해하고 적용하는 것은 완전 무리였다. 거기다가 실전 프로젝트 실습 파트는 실습 자체는 해보았지만 지금은 내 실력으로는 충분히 활용하기 어려웠다. LLM의 원리나 책에서 도구들의 세세한 차이점들을 설명하는 부분들도 실제 내 삶에 적용하기에는 어려움이 있었다.
하지만 이 한계는 나의 현재 경험치 때문이지, 책의 문제는 아니라고 느꼈다.
이 책을 읽으며 많은 것을 얻었고 많은 것을 느끼게 되었다. 특히 규칙을 세우고, 요구사항을 만들고, 설계 문서를 기반으로 방향을 정하는 개발자의 역할은 앞으로 내가 어떤 개발자가 되어야 할 지에 대한 큰 기준이 되었다.
또한 AI시대에 맞춰 개발자가 어떻게 반응하고 어떻게 해야 살아남을 수 있는지 깊이 생각하게 되었다.
이 책은 나에게 중요한 '방향'을 남겨준만큼 기회가 된다면 읽어보기를 추천한다.