Claude Code를 이용해서 막연하게나마 개발을 해보고 싶다, 하지만 무엇을 개발해야 할지 떠오르지 않는다, 와 같은 고민을 하고 계시지는 않나요?
이번에는 "안티 아키네이터(Anti-Akinator)", 즉 자신의 기분을 2가지 선택지로 답변해 나가면서 심층적인 이상향을 끌어내는 듯한, Claude와의 인터랙티브(Interactive)한 게임 앱을 만들어 보려고 합니다.
이러한 문답은 소크라테스식 문답(Socratic Method)
이라고 부르는 것 같습니다.
(소크라네이터라고 하기에는 조금 어색해서)
-
굳이 구체적인 "만들고 싶은 것"은 생각하지 않는다
-
Plan 모드로 진행하며, 내용이 구체화되면 한꺼번에 게임 앱을 작성한다
-
프로그래밍 언어를 잘 모르기 때문에 html만으로 구현한다
-
토큰(Token) 고갈을 방지하기 위해 Claude Sonnet 4.6을 사용한다
심플한 3단계로 압축하겠습니다.
스텝 1: Claude Code를 기동합니다.
스텝 2: Plan 모드로 전환합니다.
스텝 3: 진행 방식을 지시합니다.
❯ html 언어를 이용하여 브라우저에서 이용 가능한 게임을 작성합니다.
나의 요구사항이 명확해질 수 있도록, 3지선다(예, 아니오, 모르겠음)로 선택지를 계속 제시하고,
요건이 구체화되면 정리를 해서 작성할 게임을 제시해 주세요.
이것뿐!
Slay the Spire와 같은 로그라이크(Roguelike) 요소를 도입한다는 어느 쪽이든 상관없음으로.
이 시점에서 제가 Slay the Spire를 좋아한다는 사실이 들통났지만,
쑥스러움을 감추기 위해 어느 쪽이든 상관없음으로 선택했습니다.
카드의 테마에 대해서는, 이 부분만은 Type something을 선택하여, 레거시 시스템(Legacy System)을 모던한 시스템으로 리뉴얼하는 시스템 개발이 테마라고 입력했습니다.
(이 부분의 문답을 Yes/No로만 진행하면 매우 길어질 것 같았기 때문에)
image.png
image.png
안티 아키네이터의 결과로서, 다음과 같은 게임에 관한 제안이 이루어졌습니다.
● 감사합니다! 테마가 결정되었습니다. 요건이 갖춰졌으므로 정리하여 게임 개요를 제시합니다.
---
작성할 게임: "Legacy Burst"
...
이를 승인하여 완성된 것이 아래의 브라우저 게임, LEGACY BURST입니다.
한정된 예산으로 행동을 취하며, 기술적 부채(Tech Debt)와 인시던트(Incident)를 해소하면서, 모던화를 진행하며 스프린트(Sprint)를 진행하는 식의 게임입니다.
image.png
게임 개요: "Legacy Burst"
세계관
당신은 프로젝트 매니저(Project Manager). 거대한 레거시 시스템을 안고 있는 기업에서,
...
곧바로 플레이해 본 결과, 게임 시스템은 의외로 탄탄하며 또한 시스템 개발이라는 측면에서의 위트(Esprit)도 살아있어서, 어설프게 스펙 주도 개발(Spec-driven Development)을 하는 것보다 훨씬 괜찮은 것이 만들어져 버렸다는 느낌이 들었습니다.
(절대로 게임 클리어를 할 수 없고, 시스템 개발에 실패하여 종료된다는 점이 가장 마음에 듦)
게임 시스템 자체는 좋았지만, 무한히 게임이 끝나지 않는다(계속될 수 있다)와 같은 난이도에 관한 과제나, 역시 마우스 조작도 하고 싶다와 같은 요구사항이 나왔습니다.
플레이(인간) & 코멘트(인간)와 리팩터링(Refactoring, Claude)을 진행하여, 일단 그럴싸해진 버전의 소스 코드는 다음과 같습니다.
리팩터링 내용 목록
● 다음은 초기 버전(r1)에서 현재 버전으로의 개선점 전체 리스트입니다.
---
기능 개선 포인트 목록
...
html 파일은 이쪽입니다
<!DOCTYPE html>
<html lang="ja">
<head>
...
생각나는 대로 시작한 내용이지만, 예상보다 생성 AI의 질문 구성이나 대화 컨텍스트(Context)의 통합이 뛰어나서, 반복되는 말이지만 어설프게 스펙 주도 개발을 하는 것보다 훨씬 괜찮은 것이 만들어져 버렸다는 느낌이 들었습니다.
다만, 전면적으로 무엇이 어떻게 돌아가는지 근본적으로는 아무것도 모르는 프로그램 구현이 되어 있어서, 책임이 따르는 상황에서는 설명을 해낼 수 없는 것이 됩니다.
그런 관점에서는 **"생성 AI는 이용자의 지식/경험을 넘어서는 것을 작성할 수 없다"**라는 원리 같은 것은 남아있을 것이라고 생각하기 때문에, (무슨 말을 하고 싶냐면) **생성 AI도 용법과 용량을 지켜서 올바르게 사용합시다!**라는 것이었습니다.