『프로페셔널 AI 구동 개발』은 저자 중 한 분이신 사카모토님께 기증받은 책이다. 다른 저자인 마츠모토님도 SNS에서 자주 뵙는 분인데, 두 분 모두 나와 상당히 비슷한 분야에 있는 분들인 것 같다.
이 책은 8월에 발매되었다.
이미 베스트셀러라고 할 만큼 평가가 높은 책이라, 조금 이제 와서 읽기에는 좀 아닐까 하는 생각도 들었다. 하지만 최근 X(구 트위터)에도 독후감을 포스팅했지만, 다시 처음부터 끝까지 모든 문장을 꼼꼼히 읽어보았기에, 그것을 바탕으로 더 자세한 리뷰를 정리하고 싶다.
기증받은 책이라는 성격상 기본적으로 이 책의 좋았던 점들을 써 내려가게 된다. 다만, 너무 찬양만 하게 되면 오히려 이 글을 읽는 사람에게 유익하지 않을 것 같다는 생각이 든다. 그래서 '이 부분은 좀 궁금하다'라는 내용까지 포함하여 최대한 솔직한 감상을 적어보려 한다.
이 책은 기본적으로 평소 AI를 사용해 개발하는 사람이나, 바이브 코딩(Vibe Coding)을 해본 경험이 있는 사람들을 전제로 하고 있다.
나 역시 매일 AI에게 코드를 작성하게 하는 입장이지만,
- 전체의 50%: 이미 알고 있거나 실천하고 있어 깊이 공감할 수 있는 내용이었다.
- 30%: 지금까지 몰랐으며, 내일부터 바로 시도해보고 싶은 내용이었다.
- 20%: 기회가 있다면 한번 시도해보고 싶은 정도였다.
특히 코딩 에이전트(Coding Agent)에 대해서는, 지난 1~2년 사이에 AI 에이전트가 상당히 보급되면서, 그동안의 프로그래밍 방식이나 개발 방식에 대한 상식이 완전히 바뀌고 있다. 나를 포함해 매일 AI를 사용하는 사람들은 여러 시행착오를 거치며 '이렇게 하면 잘 된다', '이렇게 하면 잘 안 된다'와 같은 현장의 '공통 경험(あるある)'이 있다고 생각한다.
이 책은 그러한 것들을 깔끔하게 언어화해주고 있다. 최근의 AI 개발에 대해 잘 모르는 사람이라면, 일단 이 책 한 권을 읽어보면 'AI 개발이 지금 이런 상태구나'라는 것을 알 수 있을 것 같다.
이 책에서 반복적으로 나오는 것이 바로 Y = F(X) 라는 표현이다.
여기서 입력 X는 LLM(대규모 언어 모델)에 전달하는 컨텍스트(Context), F는 LLM의 모델 등으로 결정되는 부분, Y는 아웃풋을 의미한다. 이 X, F, Y 각각을 어떻게 개선할 수 있을지라는 지점에서부터 시작하여 실천적인 이야기로 나아간다. 그 부분이 상당히 명확하고 이해하기 쉬웠다.
읽으면서 특히 '아, 맞다'라고 생각했던 부분은 X를 어떻게 할 것인가 하는 부분이었다. 정말 초기 ChatGPT의 경우라면 입력은 기본적으로 프롬프트(Prompt)만이었다. 그래서 입력을 어떻게든 하려고 하면 프롬프트 엔지니어링(Prompt Engineering)을 어떻게 열심히 하느냐라는 이야기로 귀결되었다. 하지만 지금은 제공하는 자료나 외부 정보, 규칙이 정해진 텍스트 등 모든 것이 컨텍스트가 된다.
따라서 최소한의 정보이면서도 정말 필요한 컨텍스트를 어떻게 전달하느냐가 중요하다는 이야기가 나온다.
예를 들어, 코드 외부에 관리하는 자료가 있다면, 제대로 거기에 접근할 수 있도록 해두어야 한다. 나 자신이 '이것도 하고 있네'라고 느낀 것은 미팅의 트랜스크립트(Transcript)를 텍스트로 변환하여 AI에게 읽히게 하는 형태를 갖추는 것이었다.
또한, 다시 한번 중요하다고 느낀 부분은 '컨텍스트에 어느 정도까지의 정보를 담을 것인가'라는 점이다. 나는 CLAUDE.md나 AGENTS.md 같은 파일에 해당 리포지토리 설명을 막연하게 길게 적어두는 경우가 많았다. 하지만 이것들은 무엇을 할 때든 반드시 컨텍스트에 올라오게 된다.
즉, AGENTS.md에 방대한 양을 쓰면 컨텍스트를 압박해 버린다. 따라서 특정 작업을 할 때만 사용하는 부분은 규칙으로 삼아 매번 전부 읽히지 않도록 하거나, 사용 가능한 것은 스킬(Skill)로 모아두고, AGENTS.md에는 최대한 정말 최소한의 것만 적으려고 노력해야 한다.
오히려 AGENTS.md는 AI가 리포지토리 전체의 디렉터리 구조를 파악하여 필요한 파일을 읽어 가기 쉽게 정돈하는 것이 좋다.
무엇이든 문맥을 주면 되는 것이 아니라, 필요할 때 필요한 정보를 전달할 수 있는 구성으로 갖추는 것이 중요하다는 것을 다시 한번 느꼈다. Y 부분은 AI를 사용하기 전부터 시스템 개발이나 프로그래밍을 해왔던 사람에게는 상당히 납득하기 쉬운 부분이 많다고 느꼈다.
결국 Y를 어떻게 제어할지 고민할 때 중요한 것은 테스트입니다. AI가 무언가를 출력하면, 그 결과가 정말 올바른지 제대로 테스트해서 확인해야 합니다. 테스트는 지금까지도 테스트 주도 개발(TDD) 등에서 당연하게 수행되어 왔기 때문에, 이 부분이 AI 시대에도 사람이 작성하는 것과 크게 다르지 않을까 생각했습니다.
차이점이라면, 인간이 아닌 AI가 그것을 수행할 경우 어떻게 최적화해 나갈지에 대한 부분입니다. AI를 전제로 테스트를 어떻게 진행해야 하는지는 상당히 세밀하게 설명되어 있었습니다.
제가 가장 몰랐고 '아, 그렇구나'라고 느꼈던 부분이 바로 F를 어떻게 제어하느냐는 점이었습니다. 여기서 F란 본질적으로 LLM(대규모 언어 모델) 중 어떤 모델을 선택할 것인가에 대한 이야기입니다.
제가 지금까지 해왔던 것은 무겁고 어려운 작업을 하고 싶을 때는 Opus 5.5 같은 것을 사용하고, 그렇게 어렵지 않을 때는 가벼운 모델을 사용하는 정도였습니다. 어디서 어떻게 서브 에이전트(sub-agent)를 사용할지에 대해서도 상당히 감에 의존하는 부분이 있었습니다. 이 부분을 어떻게 제어할지가 매우 자세하게 담겨 있었습니다.
이 F 부분뿐만 아니라, 책 전체에서 좋다고 느낀 점은 가능한 한 구식이 되지 않는 정보로 만들려고 굉장히 의식하고 있다는 점입니다.
예를 들어, '이런 프롬프트를 쓰면 정확도가 조금 올라간다'와 같은 프롬프트 테크닉이나, 'OpenAI의 이 모델은 여기가 강하니 이걸 사용합시다'라는 이야기는 지금 당장은 유용할 수 있습니다. 하지만 1개월, 2개월이 지나면 바로 업데이트되어 구식이 되어버립니다.
서적이라는 매체에서는 그 부분이 특히 위험 요소가 됩니다.
이 책에서는 구체적인 모델 이름이나 프롬프트 테크닉은 최대한 언급하지 않고, 좀 더 실용적인 부분에 초점을 맞추고 있습니다.
예를 들어, 모델을 사용할 때는 최소한의 비용으로 가장 높은 아웃풋을 낼 수 있는 선택을 해야 합니다. 또한, LLM은 원리적으로 확률에 따라 흔들릴 수 있기 때문에, 그 흔들림을 어떻게 제어할지에 대한 이야기도 나옵니다.
각각의 LLM은 확률적으로 흔들리지만, 서브 에이전트를 활용하여 병렬로 구동하거나 강점 분야별로 할당함으로써 최종적인 태스크 성공 확률을 높여나갑니다.
그 부분은 제가 잘 알지 못했던 영역이라 매우 참고가 되었습니다.
AI로 여러 가지를 할 수 있게 되면, '어디까지는 AI에게 맡기고 무엇은 인간이 해야 하는가'에 대해 크게 고민하게 됩니다. 저 역시 아직 가끔 혼란을 느낍니다.
이 책은 그 부분도 다루고 있습니다. 코드를 작성시키는 부분이나 리뷰 루프(review loop) 같은 부분 등, AI가 할 수 있는 곳, 잘하는 곳은 최대한 AI에게 맡깁니다. 그 외의 비즈니스적인 판단이나 영향력 등 인간만이 할 수 있거나 해야 한다고 간주되는 지점만을 짚어서 사람이 개입한다는 생각입니다.
결국 구체적인 리포지토리(repository) 구성이나 스킬, 그리고 어떤 상황에서 서브 에이전트를 사용할지에 대한 부분까지 포함하여 상당히 세밀하게 쓰여 있었습니다. 아까 말씀드린 F 부분과 마지막의 리포지토리 전체 설정이나 '이렇게 시작하면 좋다'는 부분은 바로 시도해 볼 수 있을 것 같았습니다.
한 가지 지적할 점을 꼽자면, 전반적으로 글이 생성형 AI가 쓴 것 같은 느낌을 받았습니다.
예를 들어 'A보다는 B'와 같은 표현이나, '~에 효과적이다', '~가 고장 난다'와 같이 상당히 특유의 문체가 있습니다.
하지만 그것은 어디까지나 작성 형식(format)의 문제일 뿐, 쓰여진 내용 자체는 정말 유익하다고 생각해서 읽을수록 크게 신경 쓰이지 않게 되었습니다. 앞으로는 역시 생성형 AI로 글을 쓰는 것이 당연해질까 싶기도 합니다.
(솔직히 말하면, 이 기사도 거의 전부 생성형 AI가 작성했습니다.)
페이지 수는 300페이지가 채 안 되어 비교적 가볍게 읽힙니다. 그에 비해 이 책 한 권만 읽으면 현재 AI 개발의 정말 최전선에 설 수 있다는 의미에서 엄청나게 좋은 책이라고 생각했습니다.