바이브 코딩의 다섯 가지 개념 — 컨텍스트, 스킬, 에이전트, 훅, 플러그인
앞선 글에서 첫 시스템을 만들 때 한 번 되돌린 이야기를 썼습니다. 화면은 다 만들어져 있는데 뒷단이 비어 있었던 일입니다.
그때는 제가 도구를 잘 몰라서 그런 줄 알았습니다. 지금 보면 도구 사용법의 문제가 아니었습니다. 개념을 몰랐던 것입니다.
바이브 코딩에는 알아야 할 개념이 다섯 개 있습니다. 도구마다 이름이 조금씩 다르지만 하는 일은 같습니다. 이것을 알기 전과 후가 결과에서 확실히 달랐습니다.
1. 컨텍스트 — 지식의 책장
AI가 작업할 때 참고하는 사전 정보와 환경입니다.
이것이 왜 중요한지는 제 실패가 정확히 보여줍니다. 저는 "요청 관리 시스템을 만들어줘"라고 말했습니다. AI는 우리 회사가 어떤 데이터베이스를 쓰는지, 기존 시스템이 어떻게 생겼는지, 데이터를 어디에 저장해야 하는지 몰랐습니다.
모르면 AI는 추측합니다. 그리고 추측한 결과를 자신 있게 내놓습니다. 일반적인 웹 화면을 만들어주는 것은 잘합니다. 우리 환경에 맞는 뒷단을 만드는 것은 알 방법이 없었습니다.
여기서 중요한 것은 AI가 "모르겠다"고 말하지 않는다는 점입니다. 그럴듯한 것을 만들어냅니다. 그래서 컨텍스트가 비어 있으면 틀린 결과가 아니라 그럴듯하게 틀린 결과가 나옵니다. 이쪽이 훨씬 위험합니다.
컨텍스트를 채운다는 것은 시험을 오픈북으로 바꾸는 일입니다. 우리 시스템 구조, 데이터 스키마, 코딩 규칙, 기존 코드를 미리 읽게 해두는 것입니다. 다섯 개 개념 중에서 결과에 미치는 영향이 가장 큽니다.
2. 스킬 — 업무 레시피
특정 작업을 어떻게 해야 하는지 적어둔 매뉴얼입니다.
같은 종류의 작업을 반복하다 보면 매번 같은 설명을 하고 있다는 것을 알게 됩니다. "목록 화면을 만들 때는 검색과 정렬을 넣고, 페이지당 20건으로, 권한 체크를 앞에 두고..." 이런 설명입니다.
이것을 문서로 만들어두면 그다음부터는 "목록 화면 만들어줘"만 말하면 됩니다. 결과물의 수준이 고정됩니다. 매번 설명하다 보면 어떤 날은 빠뜨리는데, 문서로 있으면 안 빠집니다.
두 번째 시스템을 2주에 만들 수 있었던 이유의 상당 부분이 여기 있습니다. 첫 번째에서 반복해서 설명한 것들이 남아 있었기 때문입니다.
3. 에이전트 — 분야별 전문가
특정 역할을 맡아 독립적으로 일하는 개체입니다.
왜 필요한지는 해보면 알게 됩니다. 하나의 대화에 모든 것을 담으면 뒤로 갈수록 무너집니다. 앞에서 정한 것을 잊고, 지금 무엇을 하는 중인지 헷갈립니다. 사람도 그렇습니다.
그래서 역할을 나눕니다. 데이터베이스 설계를 보는 쪽, 화면을 만드는 쪽, 코드를 검토하는 쪽을 따로 둡니다. 각자 자기 일에 필요한 컨텍스트만 들고 있으면 되니 정확해집니다.
그리고 에이전트는 스킬을 불러다 씁니다. 전문가가 매뉴얼을 참고하는 것과 같습니다.
4. 훅 — 자동화 규칙
작업 단계마다 자동으로 작동하는 규칙입니다.
사람이 매번 확인해야 하는 것들이 있습니다. 코드를 저장하기 전에 검사를 돌렸는지, 데이터를 건드리는 부분에 권한 체크가 들어갔는지. 잊으면 나중에 문제가 됩니다.
훅은 이것을 규칙으로 박아두는 것입니다. 어떤 단계가 끝나면 자동으로 다음 것이 실행되거나, 조건이 안 맞으면 멈추게 합니다. 예를 들어 화면 코드가 만들어질 때마다 연결된 뒷단이 실제로 있는지 확인하게 만들 수 있습니다. 제가 겪은 문제는 이런 규칙 하나로 막을 수 있는 종류였습니다.
사람의 주의력에 의존하던 것을 시스템에 넘기는 일입니다.
5. 플러그인 — 종합 확장팩
스킬과 에이전트와 훅을 하나로 묶은 묶음입니다.
이것이 왜 중요한지는 혼자 쓸 때는 잘 안 보입니다. 팀으로 넘어갈 때 드러납니다.
앞선 글에서 팀원 각자가 자기 과제를 만들고 있다고 썼습니다. 그러면서 문제가 하나 생긴다고도 했습니다. 각자 만든 것을 각자만 안다는 것, 속인화입니다.
플러그인이 그 답입니다. 제가 시행착오로 만든 컨텍스트와 스킬과 규칙을 하나로 묶어두면, 다음 사람은 그 시행착오를 반복하지 않습니다. 설치하고 바로 씁니다.
노하우를 사람 머릿속에서 꺼내 옮길 수 있는 형태로 만드는 일입니다. 이것이 되면 개인의 역량이 팀의 역량이 됩니다.
한 문장으로 정리하면
컨텍스트(책장)를 관리하고, 플러그인(묶음)으로 스킬(매뉴얼)을 불러오면, 에이전트(전문가)가 훅(규칙)에 따라 업무를 완성합니다.
다섯 개에 순서가 있습니다
다섯 개를 한꺼번에 하려고 하면 안 됩니다. 순서가 있고, 앞의 것이 뒤의 것보다 훨씬 중요합니다.
컨텍스트가 거의 전부입니다. 여기에 쓰는 시간이 나머지 넷을 합친 것보다 결과를 크게 바꿉니다. 에이전트를 여러 개 만들고 훅을 정교하게 걸어도, 참고할 정보가 부실하면 정교하게 틀린 결과가 나옵니다.
그래서 시작하는 순서는 이렇습니다. 먼저 컨텍스트를 갖춥니다. 반복되는 설명이 보이면 스킬로 뽑아냅니다. 대화가 무거워지면 에이전트로 나눕니다. 매번 확인하는 것이 생기면 훅으로 만듭니다. 그리고 남에게 넘길 때가 되면 플러그인으로 묶습니다.
대개 필요할 때 자연스럽게 다음 단계로 넘어갑니다. 필요 없는데 미리 만들면 관리할 것만 늘어납니다.
결국 같은 이야기입니다
다섯 개 개념을 정리해놓고 보면 하나로 모입니다. AI에게 무엇을 어떻게 해야 하는지 정확히 알려주는 방법에 관한 것입니다.
컨텍스트는 우리 환경을 알려주는 것이고, 스킬은 작업 방식을 알려주는 것이고, 훅은 지켜야 할 규칙을 알려주는 것입니다.
그리고 이것은 결국 우리가 우리 일을 얼마나 정확히 설명할 수 있는가의 문제입니다. 코드를 만드는 일이 쉬워질수록 이쪽이 병목이 됩니다. 제가 겪은 실패도 도구를 못 다뤄서가 아니라 설명이 부족해서였습니다.
다음 글에서는 이 흐름이 최근 몇 년 동안 어떻게 바뀌어왔는지 정리해보겠습니다. 프롬프트에서 컨텍스트로, 그리고 지금은 다시 다른 곳으로 옮겨가고 있습니다.
댓글
댓글 쓰기