사람들은 Vibe Code 게임을 시도하고 있습니다. 처음에는 작동하긴 합니다. 하지만 프로젝트가 커지면 문제가 발생합니다. 왜일까요? 그리고 우리는 무엇을 할 수 있을까요?
문제를 논의하고, 어떻게 해결했는지, 그리고 앞으로 나아가야 할 곳을 이야기하겠습니다.
먼저, Vibe Coding이란 무엇인가요? 원래 Andrej Karpathy 가 viral tweet 에서 코인한 것으로, "완전히 vibes 에屈服하여, exponentials 을 수용하고 code 를 잊어버리다"로 정의됩니다.
하지만 이후에는 다양한 의미로 사용되며, 단순히 "코딩할 때 AI 를 사용하는 것"부터 "code 를 전혀 생각하지 않는 것"까지 다양합니다. 이 블로그 포스트에서는 이를 다음과 같이 정의하겠습니다: AI 를 고수준 프로그래밍 언어로 사용하여 무언가를 구축하는 것입니다. 다른 프로그래밍 언어와 마찬가지로, 내부 작동 원리를 이해하는 것이 도움이 되지만 반드시 필요하지는 않습니다.
이 해석에 따르면 code 를 이해하지 않고 게임을 만들 수 있습니다. 기본 개념을 아는 것이 여전히 도움이 됩니다.
앞서 "프로젝트가 커지면 문제가 발생한다"고 언급했습니다. 이는 context window 가 채워짐에 따라 model performance 이 저하되기 시작한다는 증거가 있기 때문입니다. 이는 특히 게임 개발에서 매우 빠르게 커질 수 있는 context 를 고려할 때 더욱 그렇습니다.
이 문제를 해결하기 위해, LLM-specific context 을 프로젝트 파일에 직접 작성하는 등 개인적인 ad-hoc 솔루션과 Claude Code Development Kit 과 같은 대규모 context 관리용 더 포괄적인 솔루션이 있습니다.
저는 가벼운 접근 방식이면서 중요한 도메인 지식을 필요로 하지 않는 접근 방식을 찾을 수 없었습니다. 그래서 하나를 만들었습니다: 🧅 Shallot, Claude Code 를 위한 단순하고 가벼운 편견 없는 context 관리 시스템입니다. 두 가지 기본 명령어를 사용합니다:
/peel [prompt]
대화 시작 시 context 를 로드합니다.
/nourish
대화 종료 시 context 를 업데이트합니다.
우연히 잘 작동합니다. 하지만 프로젝트가 가볍고 잘 조직화되어 있을 때 가장 잘 작동하며, 모든 관련 context 가 model 의 context window 에 쉽게 들어갈 수 있어야 합니다. Claude Code 는 여기에서 사용되지만, 동일한 원리는 다른 모델에도 일반화됩니다.
context 관리 도구 외에도 플랫폼 선택은 중요합니다. 플랫폼은 고수준 추상화를 통해 프로젝트가 자연스럽게 가볍게 유지되도록 해야 하며, AI 모델이 잘 이해해야 하는 것이어야 합니다. 따라서 기존 플랫폼 중 Vibe Coding 에 가장 적합한 것은 무엇인가요?
저는 Vibe Coding 게임을 시도하기 위해 3 가지 다른 접근 방식을 시도했습니다: Roblox MCP, Unity MCP, 그리고 웹입니다. 각각에 대해 Grass Cutting Incremental 을 영감을 받은 간단한 incremental 게임을 Claude Code 로 구축하려고 했습니다.
그 결과는 다음과 같습니다:
Roblox 의 공식 MCP 서버. 이는 AI 가 Roblox Studio 와 상호작용하여 코드를 실행하는 명령어를 보내도록 허용합니다.
장점:
- 내장 게임 메커니즘을 갖춘 훌륭한 추상화 수준
- AI 는 syntax 를 매우 쉽게 이해하고 지시를 코드로 변환할 수 있습니다
단점:
- 파일 없음, 데이터 읽기만 하는 코드로 context 관리가 제한됨
- AI 가 작업할 수 있는 runtime 정보의 한계
- 독점적인 walled garden
Roblox 는 codebase 를 가볍고 관리하기 쉽게 유지하는 데 훌륭한 추상화 레이어를 제공합니다. 이는 Vibe Coding 에 완벽합니다. 하지만 walled garden 과 context 의 부재로 인해, Roblox 내부에서만 가능하지 않는다면 Vibe Coding 을 할 수 없습니다.
Unity 의 비공식 MCP 서버. 이는 AI 가 Unity Editor 와 상호작용하도록 허용합니다: 콘솔 읽기, 자산 관리, 스크립트 검증.
장점:
단점:
- Unity 에서는 모든 것을 수행하는 방법이 많으며, 버전 간에 자주 변경되어 AI 를 혼란스럽게 합니다
- Unity 에게 어떻게 해야 하는지 알려주기 위해 상당한 도메인 지식이 필요합니다. what을 알려주는 것이 아니라 how를 알려야 합니다 - AI 성능은 일관적이지 않고 신뢰할 수 없습니다
- 독점적인 엔진 (Roblox 보다 훨씬 투명함)
Unity 는 많은 기능을 가진 강력한 엔진입니다. 하지만 엔진의 복잡성과 변동성은 AI 가 일관된 좋은 결과를 생성하기 어렵게 만듭니다.