이 영상은 Matt Pocock과의 대화를 통해 AI 에이전트 활용의 핵심은 모델 자체가 아니라, 모델을 최적으로 활용할 수 있는 '하네스(Harness)'에 있다는 점을 강조합니다. Matt는 AI를 효율적으로 사용하기 위한 전략적 프로그래밍의 중요성을 역설하며, AI에게 작업을 위임하는 방식, 개인화된 학습 시스템, 그리고 AI 시대에 비즈니스를 구축하는 방법 등 다양한 주제에 대한 깊이 있는 통찰을 공유합니다. 특히, AI가 가져올 변화에 대한 현실적인 시각과 함께 개발자들이 갖춰야 할 기본적인 역량과 사고방식에 대해 설명하며, AI 시대에 성공하기 위한 구체적인 조언을 제공합니다.
1. AI 활용의 핵심은 '하네스'에 있다 🛠️
영상은 AI 모델 자체보다 모델을 얼마나 잘 활용할 수 있는지 결정하는 '하네스'의 중요성을 강조하며 시작합니다. Matt는 AI 모델의 성능 향상에만 집중하는 것은 잘못된 접근이라고 지적합니다. 그는 올바른 프롬프트 제공, 적절한 스킬 부여, 그리고 모델이 작동하는 환경 개선을 통해 하네스를 최적화하는 것이 훨씬 더 중요하다고 설명합니다.
"모두가 모델에 집착하지만, 저는 하네스에 더 관심을 가져야 한다고 생각합니다. 하네스를 최대한 활용하기 위해 무엇을 할 수 있을까요? 올바른 프롬프트를 제공하고, 올바른 스킬을 부여하며, 모델이 실행되는 환경을 개선해야 합니다. Fable에 대해 말했듯이, 모델은 유용하지만 하네스도 동등하게 중요하며, 모델보다 하네스에 대한 통제력이 훨씬 더 큽니다."
Matt는 사람들이 30-40년 동안 효과가 입증된 기본에 집중해야 한다고 조언합니다. 토큰 사용을 최적화하는 방법을 묻는 질문에 그는 "변경하기 쉬운 코드베이스를 가지라"고 답하며, 기본적인 소프트웨어 설계 원칙의 중요성을 다시 한번 강조합니다.
2. 전략적 프로그래밍과 AI 시대의 개발자 🧠
Matt는 AI 시대에 성공하려면 전술적 프로그래밍(Tactical Programming)이 아닌 전략적 프로그래밍(Strategic Programming)에 능숙해야 한다고 설명합니다. 존 애스터아웃의 소프트웨어 설계 철학에서 영감을 받은 이 개념은 AI가 이미 전술적 프로그래밍, 즉 코드 작성, 버그 수정과 같은 일상적인 작업을 효율적으로 수행할 수 있게 되었기 때문에 더욱 중요해졌습니다.
- 전술적 프로그래밍: 코드를 직접 작성하고, 구문을 다루며, 버그를 해결하는 일상적인 작업. AI가 이 영역을 거의 잠식했다.
- 전략적 프로그래밍: 장기적인 관점에서 코드베이스의 구조, 개발 속도 향상 전략, 모듈 간의 인터페이스 설계 등 큰 그림을 그리는 작업.
"AI는 기본적으로 전술적 프로그래밍을 먹어치웠습니다. 이제 사라졌죠. AI는 당신보다 전술적 프로그래밍을 더 잘합니다. 왜냐하면 더 저렴하게 할 수 있기 때문입니다. 따라서 당신은 이 무한한 전술 프로그래머 집단을 최대한 활용하기 위해 전략적 프로그래밍에 능숙해야 합니다."
AI를 효과적으로 활용하기 위해서는 훌륭한 위임 능력이 필요하며, 이는 소프트웨어 설계의 기본 원칙과 밀접하게 연결됩니다.
- 미리 어려운 부분을 설계하고,
- 작업 범위를 명확하게 정의하며,
- 모듈 간의 인터페이스를 고려하고,
- 좋은 테스트를 작성하며,
- AI가 효과적으로 변경할 수 있도록 충분한 문서를 제공해야 합니다.
Matt는 AI가 시니어 개발자들의 역량을 10배 이상 향상시키는 반면, 주니어 개발자들에게는 상대적으로 작은 향상만을 가져온다고 언급합니다. 이는 개인의 기술이 AI가 할 수 있는 일의 한계를 결정한다는 그의 주장을 뒷받침합니다.
"AI는 시니어 개발자들을 10배 더 뛰어나게 만듭니다. 이제 그렇게 많은 주니어를 고용하는 것이 의미가 없습니다. 왜냐하면 주니어는 AI로부터 약간의 도움을 받지만, 시니어는 AI로부터 엄청난 도움을 받아 훨씬 더 많은 일을 할 수 있기 때문입니다. 당신의 기술이 AI가 할 수 있는 일의 한계입니다. 당신의 기술이 낮으면 AI도 그 이상을 할 수 없습니다."
3. 개인화된 학습 도구: Teach Skill 시연 🎓
Matt는 자신이 개발한 'Teach Skill'을 시연하며 개인화된 AI 학습의 가능성을 보여줍니다. 이 스킬은 사용자의 목표와 현재 수준에 맞춰 맞춤형 학습 자료를 제공하며, 마치 실제 선생님과 대화하는 듯한 상호작용을 통해 학습을 진행합니다.
-
배경: Matt는 10년간 노래와 개발을 가르친 경험을 바탕으로, 교육 원칙을 AI 스킬에 접목했습니다.
-
작동 방식: Teach Skill은 사용자의 '미션(Mission)'을 이해하고, 목표 달성에 필요한 지식, 기술, 지혜를 통합적으로 교육합니다. 예를 들어, Matt는 자신의 과거 경험을 예시로 들어 "저는 보컬 코치인데, 학생 스케줄 관리 및 노트 작성을 위한 앱을 만들고 싶다"고 입력합니다.
-
개인화된 교육: 스킬은 사용자의 현재 작업 환경(빈 디렉토리)을 확인하고, "Vibe Coder"(코드만 작성하고 기초는 부족한 개발자)를 위한 맞춤형 학습 경로를 제안합니다. 초기 학습 주제로는 Git의 기본 사용법을 제시합니다.
"Vibe Coder가 코드를 읽고 기본적인 터미널을 사용할 수 있다면, 가장 중요한 지식 격차는 거의 항상 더 많은 문법이 아닙니다. 그것은 두려움 없이 출시할 수 있게 해주는 코드 주변의 것들입니다."
-
학습 과정: HTML 파일로 제공되는 레슨은 Git 명령어 실습과 함께 퀴즈를 통해 학습 내용을 점검합니다. 퀴즈는 기억력 강화를 위한 효과적인 교육 기법으로 활용됩니다.
"퀴즈는 무언가가 저장되는 강도를 높이는 데 비정상적으로 효과적입니다."
-
상태 저장: Teach Skill은 스테이트풀(stateful) 스킬로, 사용자의 학습 진행 상황(미션, 시작점, Git 학습 결정, 근접 발달 영역 등)을 로컬에 저장하여 지속적인 맞춤형 교육을 제공합니다. 이는 마치 훌륭한 선생님이 학생의 학습 이력을 기억하고 다음 단계를 안내하는 것과 같습니다.
Matt는 이 스킬을 통해 자신이 루빅스 큐브를 외워서 풀 수 있게 되었다고 자랑하며, 개발자 교육에 이 스킬이 매우 효과적이라고 강조합니다. 이 스킬은 Matt Pocock의 GitHub 저장소에서 npx skills latest add mattskils 명령어를 통해 설치할 수 있습니다.
4. 좋은 에이전트 스킬이란 무엇인가? 🤖
Matt는 좋은 에이전트 스킬을 두 가지 유형으로 나눕니다.
-
절차(Procedures) 스킬: 사용자가 직접 호출하여 모델의 특정 행동을 유도하는 스킬. Matt는 자신이 주로 사용하는 방식이며,
grill me스킬이 대표적인 예시입니다.grill me스킬은 AI를 반대 심문하는 인터뷰어로 변신시켜 사용자의 아이디어를 점검하고, 예상치 못한 문제점을 발견하는 데 도움을 줍니다."제
grill me스킬이 가장 인기 있는 스킬 중 하나인데, 기본적으로 모델을 적대적인 인터뷰어로 바꿉니다. 당신에게 질문하고, 인터뷰하며, 공통된 이해에 도달할 때까지 당신이 고려하지 못했을 아이디어를 제시합니다." -
능력(Abilities) 스킬: 모델이 스스로 호출하도록 의도된 스킬. 예를 들어, 코드 작성 시 코딩 표준을 자동으로 확인하는 스킬 등이 있습니다.
Matt는 자신이 통제권을 가지고 절차 스킬을 활용하는 것을 선호한다고 밝힙니다. 이는 AI에게 사고를 위임하는 것이 아니라, AI를 도구로 활용하여 자신의 역량을 강화하는 방식입니다.
5. Agentic Engineering Setup 및 "Bitter Lesson" 논쟁 🏎️
Matt는 자신의 에이전트 엔지니어링 환경에 대해 설명하며, 주로 Claude Code(Opus 4.8, 중간 수준 노력)를 사용하여 계획 수립 및 로컬 구현 작업을 수행한다고 말합니다.
- AFK(Away From Keyboard) 작업: Matt는 Sand Castle이라는 자체 개발 도구를 통해 에이전트를 샌드박스에서 실행하여, 개발자가 키보드에서 떨어져 있어도 에이전트가 작업을 수행할 수 있도록 합니다. 이는 보안상의 이점을 제공하며, 여러 에이전트를 병렬로 실행할 수 있게 하여 생산성을 크게 향상시킵니다.
- GitHub Actions 통합: Sand Castle을 GitHub Actions와 결합하여 PR(Pull Request) 검토, 코드 분석 등 반복적인 작업을 자동화합니다.
Matt는 모델 자체보다는 하네스(Harness), 즉 AI를 둘러싼 시스템을 최적화하는 데 더 큰 가치를 둡니다. 그는 AI 모델에 집착하는 것을 Formula 1 자동차의 엔진에만 집중하는 것에 비유하며, 차체, 공기역학 등 전체 시스템을 고려해야 한다고 주장합니다.
"모두가 모델에 집착합니다. 모두가 Formula 1 자동차의 엔진에 집착하지만, 사실 엔진은 전체 시스템의 일부일 뿐입니다. 전체 섀시가 있고, 공기 중을 어떻게 움직이는지 등 여러 요소가 있습니다. 모두가 모델에 집착하지만, 저는 하네스에 더 관심을 가져야 한다고 생각합니다. 하네스를 최대한 활용하기 위해 무엇을 할 수 있을까요? 올바른 프롬프트를 제공하고, 올바른 스킬을 부여하며, 모델이 실행되는 환경을 개선하고, 코드베이스 등을 개선해야 합니다."
호스트인 David Ondrej는 더 나은 모델이 사용되면 모든 것이 즉시 더 좋아지지 않겠냐며 "Bitter Lesson(비터 레슨)"에 대한 질문을 던집니다. 비터 레슨은 머신러닝 연구에서 아무리 정교한 최적화를 해도 결국 컴퓨팅 파워의 증가가 모든 것을 압도한다는 개념입니다. Matt는 자신이 이 비터 레슨에 빠져 있는 것일 수도 있지만, 여전히 하네스 최적화와 견고한 코드베이스 구축의 중요성을 믿는다고 말합니다.
"저는 여전히 하네스를 최적화하고 에이전트가 잘 작동할 수 있는 좋은 코드베이스를 만드는 것에 집중함으로써 얻을 수 있는 것이 많다고 생각합니다. 시작하기도 전에 에이전트의 발목을 잡지 않고요."
그는 모델에 초점을 맞추는 대신 30-40년간 유효했던 소프트웨어 개발의 기본 원칙에 집중해야 한다고 강조합니다. 잘 설계된 코드베이스는 덜 강력한 모델로도 동일한 작업을 수행할 수 있게 하여 토큰 비용을 절감하는 효과를 가져옵니다.
6. 에이전틱 루프(Agentic Loops)와 큐(Queue) 🔁➡️📦
Matt는 최근 트위터에서 화제가 된 '에이전틱 루프'에 대한 자신의 견해를 밝힙니다. 그는 에이전틱 루프가 AI 연구실에서 더 많은 토큰 사용을 유도하려는 목적도 있지만, 그 이면에 AFK(Away From Keyboard) 작업의 가치가 있다고 설명합니다.
- Human in the loop (인간 개입) 작업: 기획이나 복잡한 구현 등 인간과 에이전트가 함께 논의해야 하는 작업.
- AFK (Away From Keyboard) 작업: 에이전트에게 특정 작업을 위임하고 개발자가 자리를 비워도 작업이 진행되도록 하는 방식. Matt는 AFK 작업이 자신의 생산성을 혁신적으로 증가시켰다고 말합니다.
Matt는 '루프' 개념 대신 '큐(Queue)' 개념을 제안합니다. 개발은 본질적으로 작업 큐(백로그)를 처리하는 과정이며, 에이전트는 이 큐에서 작업을 가져와 수행하는 노드 중 하나라는 것입니다.
"저는 주로 이 모든 것을 큐(queues)로 생각합니다. 루프가 아니라요. 큐는 제가 완료해야 할 작업의 백로그입니다. ... 이것은 루프가 아닙니다. 큐는 결국 해결됩니다. 풀 리퀘스트가 병합되면 이 작업은 큐에서 사라집니다. 개발은 기본적으로 완료해야 할 작업 큐일 뿐입니다."
그는 팀 개발 환경에서 단일 루프가 모든 작업을 무한정 수행하는 것은 현실과 맞지 않다고 지적합니다. 대신, 인간이 여전히 최종 결정권자로서 큐를 관리하고 우선순위를 지정해야 한다고 강조합니다. AI는 자동화된 방식으로 작업을 수행하고, 최종 검토를 위해 인간에게 결과를 제시하는 역할을 합니다.
7. AI 시대의 비즈니스 및 인재 채용 💼
Matt는 AI 시대에도 비즈니스 구축의 기본 원칙은 변하지 않는다고 말합니다.
- 고객과 대화하고 그들의 니즈를 파악하는 것이 가장 중요합니다.
- AI는 아이디어를 구현하는 데 큰 도움을 주지만, 어떤 아이디어를 구현할지 결정하는 데는 인간의 역할이 필수적입니다.
"솔직히 말해서 크게 변한 것은 없다고 생각합니다. ... 비즈니스를 구축하려면 기본에 충실해야 합니다. 고객과 이야기하고 그들이 무엇을 필요로 하는지 파악해야 합니다. 그리고 그들이 필요로 하는 것처럼 보이는 것을 만들고 실제 문제를 해결해야 합니다. 여기서 아무것도 변하지 않았다고 생각합니다."
인재 채용에 있어서는 AI 도구를 적극적으로 활용하는 젊고 열정적인 개발자와 탄탄한 소프트웨어 개발 기본기를 가진 시니어 개발자 간의 균형을 강조합니다.
- 주니어 개발자: AI에 대한 열정과 새로운 도구에 대한 깊은 이해를 바탕으로 AX(Agent Experience)를 향상시킬 수 있습니다.
- 시니어 개발자: 좋은 DX(Developer Experience)를 만드는 방법을 알고 있으며, 이는 좋은 AX로 이어집니다. 시니어 개발자들은 AI가 코드를 이해하고 작업하기 쉬운 환경을 구축하는 데 기여합니다.
Matt는 AI가 개발자의 전술적 프로그래밍 역할은 대체하지만, 전략적 사고와 문제 해결 능력은 여전히 인간의 고유한 영역으로 남아있다고 결론짓습니다.
8. AI 활용을 위한 실용적인 조언 ✨
Matt는 AI 활용을 시작하려는 사람들을 위한 두 가지 실용적인 조언을 제공합니다.
-
모든 스킬, 플러그인, 에이전트 설정을 초기화하고 '빈 슬레이트'에서 시작하세요.
"제가 가장 먼저 할 일은 모든 스킬, 모든 플러그인, 모든 MCP 서버를 삭제하는 것입니다. 클로드 MD를 삭제하고, 에이전트 MD를 삭제하고, 아무것도 없는 상태로 돌아가서 에이전트가 무엇을 하는지 관찰하는 것입니다."
너무 많은 설정은 오히려 컨텍스트 창을 복잡하게 만들어 AI의 효율성을 떨어뜨릴 수 있습니다. 기본 상태에서 AI가 어떻게 작동하는지 이해한 후, 필요한 것들을 절차 스킬(procedure skills) 위주로 추가해 나가야 합니다.
-
AFK(Away From Keyboard) 에이전트를 활용하여 구현 작업을 위임하는 것에 집중하세요. Matt는 AFK 방식의 자동화가 엄청난 생산성 향상을 가져올 수 있다고 강조합니다. 초기 설정에는 약간의 노력이 필요하지만, 일단 구축되면 매우 효과적입니다.
마치며 💡
Matt Pocock과의 대화는 AI 시대에 개발자들이 가져야 할 현실적인 시각과 실용적인 접근 방식을 제시합니다. 그는 AI 모델의 성능 자체보다는 모델을 효과적으로 활용하기 위한 '하네스'의 중요성을 거듭 강조하며, 기본적인 소프트웨어 설계 원칙과 전략적 사고 능력이 곧 AI 시대의 경쟁력이 될 것임을 보여줍니다. AI를 단순한 도구가 아닌, 자신의 역량을 확장하는 '승수(multiplier)'로 이해하고, 스스로의 기술과 지혜를 끊임없이 발전시키는 것이 중요하다고 말합니다.
