/// 실습 · 만들면서 배우기 · 06

삼한 「다섯 거점」 — 바이브 코딩 한 바퀴

지금까지는 한 번 말하고 한 번 받았다. 이번에는 계획서 → 첫 판 → 다듬기 → 돌아가기를 한 바퀴 돈다. 만드는 일은 Cowork, 숫자를 다듬는 일은 VS Code. 삼한연대기가 만들어진 순서 그대로다. 요점은 하나 — 한 번에 하나씩, 되돌릴 자리를 남기면서.

걸리는 시간90분 (나눠서 해도 된다 — 계획서까지 30분, 첫 판 30분, 다듬기 30분)
요금제유료 요금제(Pro 이상) — Cowork 와 Claude Code 를 쓴다
준비물실습 05 를 해 본 것, Claude 데스크톱 앱, VS Code 와 Claude Code 확장
먼저 볼 편Claude 과정의 STEP 10 Cowork · STEP 14 VS Code 설치 · STEP 15 프로그램으로 키우기 를 먼저 본다
이 페이지의 화면은

IC Infinite LAB 이 2026-09-27 에 이 순서 그대로 해 보며 찍었다. 채팅 목록 · 계정 · 이름 · 즐겨찾기 줄 · 내 컴퓨터 경로는 흐리게 가렸다. 계획서의 질문, 단계 수, 숫자는 시킬 때마다 다르게 나온다. 우리 판에서 나온 것을 그대로 보여 준다.

시작 전에 — 삼한연대기는 이렇게 만들어졌다

삼한연대기 는 거점 121개, 세력 12개, 시나리오 7장짜리 실시간 전략 게임이다. 혼자 만들었고, 처음부터 설계해서 한 번에 만든 것이 아니다. 두 자리를 오가며 조금씩 붙였다. 이번에 만들 「다섯 거점」 은 그것을 거점 5개 · 세력 2개로 줄인 것이다. 크기만 다르고 뼈대는 같다 — 시간이 흐르고, 군량이 줄고, 병력을 보내 빼앗는다.

삼한연대기 본편 화면 — 위쪽 국고·군량·병력·민심·영토 표시줄, 가운데 거점 지도, 오른쪽 거점 상세와 명령 단추
완성된 삼한연대기의 한 장면. 위 줄에 국고 351 · 군량 443 · 병력 2,530 · 민심 68 · 영토 23/121, 오른쪽에 고른 거점(졸본)의 주둔 병력·인구·민심·성벽·경제와 출병 · 징병 · 내정 개발 · 성벽 강화 명령. 이 화면도 처음엔 지도 한 장뿐이었다 — 하나씩 붙은 것이다.
Cowork 무엇을 만들지 정하고 계획서를 쓰고 첫 판을 만든다 VS Code 열어서 돌려 보고 숫자를 하나씩 고치고 바로 확인한다 1~5절 · 계획서와 첫 판 7절 · 막히면 되돌아가 원인 찾기 · 다시 계획 6절 한 번에 끝나지 않는다 — 왕복한다
두 자리는 잘하는 일이 다르다 — 넓게 보는 쪽과 좁게 파는 쪽. 이 편의 절 번호도 이 왕복을 따라간다
Cowork 가 잘하는 것VS Code 가 잘하는 것
보는 범위폴더 전체를 한 번에지금 이 파일, 이 줄
맞는 일계획 세우기, 처음부터 만들기, 원인 찾기고치고 바로 돌려 보기
왕복 속도한 번에 크게 움직인다작게 여러 번 움직인다
결과물문서와 파일이 폴더에 생긴다고친 코드와 확인한 화면
먼저 한 판씩 해 본다

위의 두 링크 — 이 편에서 만든 판과 본편 — 를 열어 한 판씩 해 보고 시작한다. 군량이 줄어드는 속도, 적이 치고 들어오는 때, 졌을 때의 기분 — 이걸 겪어 봐야 계획서에 무엇을 적을지가 떠오른다.

삼한연대기도 그랬다. 0.4 판에는 지도만 있었고, 실제로 해 보면서 "군량이 안 줄면 긴장이 없다", "길이 안 이어지면 답답하다" 를 알게 됐다. 해 보기 전에는 무엇이 필요한지 모른다.

왜 게임인가

왕복을 연습하기에 이만한 게 없다. 결과가 눈에 보이고, 규칙이 분명하고, 무엇보다 한 번에 안 끝난다. 군량이 너무 빨리 줄면 재미가 없고, 너무 천천히 줄면 긴장이 없다. 이 균형 잡기가 "고치고 → 돌려 보고 → 또 고치고" 를 자연스럽게 시킨다.

Pro 가 아니라면

Cowork 없이 채팅창 하나로도 끝까지 갈 수 있다. 하는 말은 이 편의 글을 그대로 쓰고, 다른 점은 파일을 내가 만든다는 것뿐이다.

  • 1~5절 — 계획서와 코드가 폴더에 생기지 않고 화면에만 뜬다. 복사해 메모장에 붙이고 PLAN.md · CLAUDE.md · index.html 로 저장한다(모든 파일 · UTF-8 — STEP 13 에서 한 그대로). 채팅창은 폴더를 못 보니 CLAUDE.md 의 규칙은 새 대화를 열 때마다 첫 말에 붙여 준다.
  • 되돌릴 자리 — Cowork 가 해 주던 복사를 탐색기에서 직접 한다. backups 폴더에 붙여 넣고 "파일명-버전-before-무엇" 으로 이름을 바꾼다.
  • 6절 — VS Code 에서 숫자를 직접 고치고 F5 하는 부분은 그대로 된다. Claude Code 대화창은 유료 요금제가 있어야 하므로, 시키는 부분은 채팅창에 고칠 부분을 붙여 묻는다.

1. 폴더를 맡기고 계획서부터 받는다

  1. 문서 › AI실습 안에 mini-samhan 폴더를 새로 만든다. 비워 둔다.
  2. Claude 데스크톱 앱 → 새로 생성 → Cowork → 프로젝트 또는 폴더 → 폴더 추가로 mini-samhan 을 맡긴다 (실습 05 4단계와 같다. 허용은 이번에도 "항상" 말고 그때그때).
Cowork 가 골라져 있고 입력칸 아래에 C:\OneDrive\문서\AI실습\mini-samhan 폴더가 붙은 모습
① Cowork · ② 맡긴 폴더 — 이번 편 내내 이 폴더 하나만 쓴다

아래 글을 붙여 넣고 보낸다. 규칙은 내가 정해서 준다 — "재미있는 전략 게임" 이라고만 하면 남의 취향이 나온다. 그리고 바로 만들지 말고 계획서부터.

이 폴더에 아주 작은 실시간 전략 게임을 만들려고 한다.
HTML 파일 한 장으로 되는 것.

[규칙]
· 거점 5개가 한 줄로 이어져 있다. 이웃끼리만 오갈 수 있다.
· 나는 맨 왼쪽, 상대는 맨 오른쪽에서 시작한다. 가운데 셋은 중립이다.
· 1초에 한 번씩 시간이 흐른다.
  - 주인이 있는 거점은 병력이 조금씩 는다
  - 군량은 내 전체 병력에 비례해서 줄어든다
  - 군량이 0이 되면 병사가 흩어진다
· 내 거점을 누르고 옆 거점을 누르면 병력의 60%를 보낸다.
  보낸 병력이 수비 병력보다 많으면 차지한다.
· 다섯 거점을 모두 차지하면 이기고, 모두 잃으면 진다.
· 진행/멈춤 버튼이 있고, 무슨 일이 일어났는지 글로 남는다.

[먼저 할 일]
바로 만들지 말고, 어떻게 만들지 계획서를 PLAN.md 로 써 줘.
· 파일 구성과 각 파일이 하는 일
· 어떤 순서로 만들 것인지 (한 번에 하나씩)
· 내가 나중에 바꾸고 싶어질 만한 숫자들을 어디에 모아 둘 것인지
· 이 계획에서 애매하거나 내가 정해 줘야 할 것이 있으면 질문으로
Cowork 입력칸에 규칙과 먼저 할 일을 붙여 넣은 모습
① 마지막 줄 "내가 정해 줘야 할 것이 있으면 질문으로" 가 이 글에서 가장 값진 줄이다

2. 질문에 답한다

1~2분 뒤 폴더에 PLAN.md 가 생기고, 답에는 질문이 온다. 우리 때는 열두 개였다. 그중 넷은 "게임 성격이 달라지는 것" 이라며 먼저 답해 달라고 했다.

Claude 의 답. 먼저 답해 주셔야 할 4가지 — 군량이 다시 채워지나요, 상대도 군량 규칙을 똑같이 적용받나요, 상대는 어떻게 움직이나요, 군량이 0일 때 얼마나 흩어지나요. 나머지 8가지는 문서에 제안을 붙여 두었다는 설명
① 규칙에 없던 구멍 네 개 — "군량이 다시 채워지나?" 는 우리가 생각도 못 한 것이었다 · ② 나머지는 "제안대로" 로 답해도 된다

"군량은 줄어든다" 고만 적었더니, 채워지지 않으면 제한 시간이 있는 게임이 된다는 것을 Claude 가 짚었다. 코드가 없을 때 고치면 비용이 거의 0이다. 짧게 답한다.

계획서 좋다. 질문에 답할게.
· Q1 (나) 거점마다 1초에 조금씩 보급 — 땅을 넓힐수록 유리하게
· Q2 (가) 상대도 같은 규칙
· Q3 제안대로
· Q4 (가) 1초마다 10%씩
· Q5~Q10 제안대로
· Q11 "거점 1~5"로 담백하게
· Q12 네모 5개 + 연결선이면 충분
저장 기능과 소리는 넣지 않는다. 나중에 할게.
답을 반영해서 PLAN.md 를 다시 써 줘. 아직 만들지는 마.
질문에 대한 답을 입력칸에 넣은 모습
① 번호로 답하면 짧다. "아직 만들지는 마" 를 잊지 않는다
고친 계획서에 대한 설명. 여쭤보지 않고 제가 정한 세부 사항 3가지 — 흩어지는 병력은 올림, 상대 AI 는 한 번에 한 곳만 공격, 군량은 소수까지 계산하고 화면엔 정수로
① "여쭤보지 않고 제가 정한 세부 사항" — 이런 줄은 꼭 읽는다. 마음에 안 들면 지금 말한다
계획서에서 볼 것 넷

코드를 읽는 것이 아니라 구성을 읽는다. 프로그래밍을 몰라도 판단할 수 있다. PLAN.md 는 VS Code 로 열어도 되고 Cowork 화면에서 읽어도 된다.

  1. 내가 말한 규칙이 다 들어 있나. 빠진 것은 그 자리에서 말한다 — "군량이 0일 때 병사가 흩어지는 부분이 빠졌다."
  2. 나중에 바꿀 숫자가 한곳에 모여 있나. 군량 소모, 병력 증가, 보내는 비율, 적의 공격 기준 — 여기저기 흩어져 있으면 6절에서 고생한다.
  3. 단계가 너무 크지 않나. "전부 만든다" 한 덩어리면 쪼개 달라고 한다. 우리 판은 여덟 단계였다.
  4. 안 시킨 것이 들어가 있지 않나. 저장, 소리, 애니메이션 — 지금은 필요 없다. 위 답의 "저장 기능과 소리는 넣지 않는다" 가 그 줄이다.
삼한연대기에서는계획서의 한 줄이 화면 한 장이 된다
삼한연대기 출정 명령 확인 창 — 출정 비율 60퍼센트 조절대, 출정 66명 대 적 병력 65명, 성벽 포함 방어력 78, 군량 14
본편의 출정 창. 출정 비율 60% 조절대, 출정 66명 / 적 병력 65명 / 성벽 포함 방어력 78, 그리고 "현재 병력으로는 수비 전력을 넘지 못합니다" 경고까지 — 전부 1절 규칙의 두 줄("60%를 보낸다", "수비 병력보다 많으면 차지한다")에서 자라 나온 것이다. 맨 아래 "확인 중에는 시간이 멈춥니다" 는 계획 때 없던 줄로, 해 보다가 붙었다.

그래서 중요한 것은 줄의 개수가 아니라 줄의 분명함이다. "60%" 처럼 숫자가 박힌 줄은 그대로 화면이 되고, "적당히 보낸다" 같은 줄은 나중에 통째로 다시 만들게 된다.

숫자를 한곳에 모으는 것도 그렇다. 본편의 거점 121개 자료는 코드가 아니라 따로 둔 자료 파일에 있고, 시나리오 일곱 장도 데이터만 더하면 붙게 되어 있다. 처음부터 그랬던 것이 아니라 고치다가 아파서 옮긴 것이다. 계획 단계에서 미리 말하면 그 고생을 한 번 건너뛴다.

3. 일하는 규칙을 적어 둔다 — CLAUDE.md

계획서가 "무엇을 만들지" 라면 CLAUDE.md 는 "어떻게 일할지" 다. 이 폴더에서 일할 때마다 Claude 가 먼저 읽는다.

CLAUDE.md 도 하나 만들어 줘. 내용은 이렇게:
- 나는 프로그래밍 초보다. 코드 설명은 짧게, 무엇을 바꿨는지는 한국어로.
- 파일을 고칠 때는 전체 코드를 한 덩어리로 준다. 조각으로 주지 않는다.
- 숫자 조정은 파일 맨 위 설정 부분에서만 한다.
- 큰 변경을 하기 전에는 backups 폴더에 "파일명-버전-before-무엇" 형식으로 한 벌 복사해 둔다.
- 고친 뒤에는 실제로 한 판 돌려 볼 방법을 알려 준다.
CLAUDE.md 를 만들었다는 답. 백업 이름 예시를 넣고, 빈 backups 폴더도 미리 만들어 두었다는 설명
① 적어 준 다섯 줄 + 덧붙인 것 · ② "시작하라고 하시면 1단계부터" — 아직 코드는 한 줄도 없다

4. 한 단계씩 만들게 한다

PLAN.md 대로 진행하자.
1단계부터 만들어 줘. 한 단계가 끝나면 멈추고 내가 확인할 수 있게 해 줘. 다음 단계로 바로 넘어가지 마.
파일 이름은 index.html 로.
다 만들면 어떻게 열어서 확인하는지 알려 줘.

단계가 끝날 때마다 Claude 가 무엇이 보이면 정상인지를 적어 준다. 그대로 열어서 확인한다.

1단계 뒤 열어서 확인하는 방법 — 네모 5개가 한 줄, 거점 1은 파란색 20, 2~4는 회색 10/15/10, 5는 빨간색 20, 위쪽 경과 시간 0초 군량 100 멈춤
① 정상일 때 보이는 것 · ② "확인하고 괜찮으면 2단계 진행이라고 해 주세요"
Chrome 으로 연 1단계 화면. 거점 1~5 네모가 선으로 이어져 있고, 진행과 다시 시작 단추, 아래 기록 창
① 말한 그대로 20 · 10 · 15 · 10 · 20 · ② 아직 눌러도 아무 일이 없는 게 정상

확인했으면 "1단계 좋다. 2단계 진행." 이렇게 한 단계씩 간다. 우리 계획서는 여덟 단계였고, 7단계(상대 AI)까지 만들게 했다. 3단계(출병)에서는 Claude 가 눌러 보면 나올 숫자까지 미리 적어 주었다.

3단계 확인 방법 — 거점 2를 누르면 거점 1은 8, 거점 2는 파란색 2가 된다, 기록은 12명 출병 거점 2 점령
① "거점 1은 8, 거점 2는 2" — 해 보기 전에 답을 알고 있으면 확인이 쉽다
거점 1을 누르고 거점 2를 누른 뒤. 거점 1은 8, 거점 2는 나의 것 2, 기록 창에 거점 1 → 거점 2 : 12명 출병, 거점 2 점령
① 적어 준 숫자 그대로 · ② 기록 창에도 남는다
한 단계씩 하는 까닭

여덟 단계를 한 번에 만들면 뭔가 이상할 때 어디서 틀어졌는지 알 수 없다. 단계마다 눌러 보고 가면, 이상한 것은 방금 만든 단계에 있다. 우리 폴더를 보니 Claude 는 CLAUDE.md 의 넷째 줄대로 단계마다 index-v1-before-config.html 같은 사본을 알아서 남겨 두었다.

제목 화면부터 만들고 싶어질 때처음 만들 때 가장 흔한 함정
삼한연대기 제목 화면 — CHRONICLES OF SAMHAN 로고와 새 원정 시작·이어하기·저장 불러오기·설정·도움말 단추
본편의 제목 화면 — 새 원정 시작 · 이어하기 · 저장 불러오기 · 설정 · 도움말. 그럴듯해 보이지만 가장 나중에 붙었다

제목 화면 · 설정 · 도움말은 눈에 잘 띄고 만들기도 쉬워서 자꾸 먼저 손이 간다. 그런데 그걸 다 만들어 놓고 보면 정작 게임은 아직 한 판도 못 해 본 상태다. 순서는 반대다 — 돌아가는 것 하나 → 해 본다 → 재미없는 데를 고친다 → 껍데기. 「다섯 거점」 에는 제목 화면이 아예 없다. 그래도 게임은 된다.

5. 한 판 하고, 느낀 것을 적어만 둔다

7단계까지 되면 진행을 누르고 한 판 한다. 우리는 1분 남짓 해 보고 세 가지를 느꼈다.

66초째 화면. 내 군량 157 (+1.8/초), 상대 군량 40 (-4.4/초), 거점 1~3은 나, 거점 4는 상대 11, 거점 5는 상대 73
① 내 군량은 늘기만 한다(+1.8/초) · ② 상대는 거점 5에 병력을 73까지 쌓아 두고 있다

지금은 고치지 않는다. 적어만 둔다. 고치는 일은 6절의 VS Code 가 더 빠르다 — 숫자 하나 바꾸고 새로고침해서 바로 보는 일이라, 오가는 왕복이 짧을수록 좋다.

7단계 확인하고 한 판 해 봤다. 느낀 것:
· 내 군량은 늘기만 한다(+1.8/초). 군량 걱정을 할 일이 없다
· 상대는 거점 5에 병력을 70 넘게 쌓아 두다가 군량이 바닥나 병사가 흩어진다
· 거점 4를 뺏고 뺏기느라 1분이 넘어도 끝나지 않는다
지금은 고치지 말고, 이 세 가지를 PLAN.md 아래에 "다듬을 것" 목록으로 적어만 둬.
다듬을 것을 적었다는 답. 7-2 상대가 거점 5에 병력을 쌓아 둠의 원인 — 상대에게는 자기 거점끼리 병력을 옮기는 기능이 없다. CONFIG 숫자만 바꾸면 되는 것과 규칙을 바꿔야 하는 것은 구분해 두었다는 설명
① 원인 추정까지 붙여 적었다 · ② 숫자로 되는 것과 규칙을 바꿔야 하는 것을 나눠 두었다 — 다음 두 단계가 이 구분대로 간다

그리고 다듬기 전에 지금 상태를 한 벌 남긴다.

지금 상태를 backups 폴더에 index-0.1-before-tuning.html 로 한 벌 복사해 줘.
앞으로도 큰 변경 전에는 같은 형식으로 남겨 줘. "파일명-버전-before-무엇" 형식.
백업했다는 답. backups/index-0.1-before-tuning.html 로 복사하고 원본과 내용이 같은 것도 확인했다, 그 전에 만든 index-v1~v6 백업 6개도 그대로 두었다
① 복사하고 같은지까지 확인했다 · ② 단계마다 남긴 사본도 그대로 있다

6. VS Code 에서 숫자를 다듬는다

  1. VS Code → 파일 › 폴더 열기로 mini-samhan 을 연다(탐색기에서 폴더를 오른쪽 클릭 → Code 로 열기도 된다).
  2. 위쪽에 "제한 모드" 띠가 뜨면 관리 → 신뢰. 내가 만든 폴더이므로 믿어도 된다.
  3. index.html 을 열고, 편집기 탭 줄 오른쪽의 Claude 아이콘(주황 별)을 누른다. 오른쪽에 Claude Code 대화창이 열린다.
VS Code 작업 영역 신뢰 창. 신뢰할 수 있는 폴더에서 / 제한 모드에서 두 칸, 왼쪽 아래 신뢰 단추
① 신뢰 — 모르는 사람이 준 폴더라면 누르지 않는다
VS Code 에 index.html 을 연 모습. 탭 줄 오른쪽에 주황 별 모양 Claude 아이콘, 편집기에 CONFIG 의 군량 숫자 FOOD_START 100, FOOD_INCOME_PER_NODE 2, FOOD_PER_TROOP 0.1
① Claude 아이콘 · ② 다듬을 숫자들 — 계획서 때 "숫자를 한곳에" 라고 한 덕에 파일 맨 위에 모여 있다

처음 쓸 때는 대화창 아래 모드 단추(오른쪽 아래)를 눌러 Manual 로 둔다. 파일을 고치기 전에 무엇을 바꿀지 보여 주고 묻는 모드다. 익숙해지면 다른 모드를 써도 되지만, 처음에는 고치는 것을 눈으로 보는 편이 배우는 게 많다.

모드 메뉴. Manual — 고치기 전마다 승인을 묻는다, Edit automatically, Plan, Auto, Bypass permissions
① Manual — 고칠 때마다 묻는다 · ② Auto — 안전해 보이는 것은 묻지 않고 한다(우리 PC 는 이것이 켜져 있었다)

"다듬을 것" 의 첫 줄(숫자로 되는 것)부터 하나만 시킨다.

PLAN.md 의 "다듬을 것" 7-1 만 하자. 내 군량이 늘기만 해서 군량 걱정을 할 일이 없다.
거점 2~3개를 가져도 군량이 천천히 줄어서, 2~3분쯤 지나면 걱정이 되게 조정해 줘.
· CONFIG 숫자만 바꾸고 다른 건 건드리지 마
· 무엇을 얼마에서 얼마로 바꿨는지 알려 줘
Claude Code 대화창 입력칸에 7-1 을 고쳐 달라는 글, 아래에 Manual 모드 표시
① 보낼 글 · ② Manual 인지 한 번 더 본다

보내면 Claude 가 먼저 백업부터 하겠다며 허락을 구한다. CLAUDE.md 에 적어 둔 규칙을 읽은 것이다.

Allow this PowerShell command? — Copy-Item index.html backups/index-0.2-before-food-tuning.html, Back up index.html before tuning. 1 Yes, 2 Yes allow access for this session, 3 No
① 무슨 명령인지 읽는다 — index.html 을 backups 에 복사하는 것 · ② Yes(이번 한 번만)

그다음 고칠 곳을 빨강(지울 것) · 초록(넣을 것)으로 편집기에 보여 주고 묻는다.

편집기에 바뀌는 줄이 표시된 모습. FOOD_INCOME_PER_NODE 2 가 빨강, 1 이 초록. 오른쪽에 Make this edit to index.html? Yes / Yes allow all edits this session / No / Tell Claude what to do instead
① 2 → 1, 딱 한 줄 · ② 괜찮으면 Yes. 아니면 맨 아래 칸에 "그 대신 이렇게" 라고 적을 수 있다
답 — FOOD_INCOME_PER_NODE 2 에서 1, FOOD_PER_TROOP 0.1 과 FOOD_START 100 은 그대로. 이렇게 정한 이유 — 거점 하나가 병사 20명을 먹여 살렸는데 이제 10명, PLAN 의 예시로 보면 +1.8 에서 -0.2
① 무엇을 얼마에서 얼마로 · ② 왜 그 값인지 계산까지
한 판 돌려 보는 방법 — 백업 파일 이름, F5 로 새로고침, 내 군량 옆이 마이너스면 정상, 너무 빨리 바닥나면 FOOD_START 를 100 에서 150 으로, 잘 안 줄면 FOOD_PER_TROOP 를 0.1 에서 0.12 로
① 백업한 파일 이름 · ② 해 보는 방법과, 결과에 따라 어느 숫자를 어느 쪽으로 바꾸면 되는지

브라우저에서 F5 를 누르고 한 판 한다.

73초에 승리했지만 내 군량 0, 기록 창에 나의 군량이 바닥나 병사들이 흩어진다 (-8), (-9), (-10) 이 이어진다
① 이번엔 내 군량이 0 · ② 이긴 판인데도 끝 무렵 내 병사가 계속 흩어졌다

방향은 맞는데 지나쳤다. Claude 가 앞에서 "너무 빨리 바닥나면 FOOD_START 를 100 에서 150 으로" 라고 알려 주었다. 이런 한 숫자는 내가 직접 고치는 편이 빠르다. 편집기에서 160번 줄의 100 을 150 으로 바꾸고 Ctrl + S.

편집기에서 FOOD_START 를 150 으로 고친 모습. index.html 탭에 저장 안 됨 동그라미
① 탭 이름 옆 동그라미 = 아직 저장 안 됨. Ctrl + S 를 누르면 사라진다 · ② 100 → 150
83초에 승리. 내 군량 16 (-3.5/초)
① 83초에 16 남기고 이겼다 — 끝까지 군량이 신경 쓰였다 · ② 7-1 은 여기서 멈춘다
시키기 · 직접 고치기 — 둘 다 쓴다

"무엇을 바꿔야 할지 모를 때" 는 Claude 에게 시키고, "어느 숫자를 몇으로" 가 이미 보이면 직접 고친다. 같은 일을 Claude 에게 시키면 대화 한 번, 직접 하면 5초다. 어느 쪽이든 backups 에 사본이 있으니 겁낼 것은 없다.

대화창 대신 글자 화면이 뜬다면

Claude Code 는 같은 일을 터미널(글자 화면) 모양으로도 할 수 있다. VS Code 설정에서 Claude Code: Use Terminal 이 켜져 있으면 그쪽으로 열린다. 이 페이지처럼 대화창을 쓰려면 그 설정을 끈다. 하는 일은 같다.

다듬다 보면 "이건 앞으로도 지켜야겠다" 싶은 것이 생긴다. 그때마다 CLAUDE.md 에 한 줄씩 보탠다.

CLAUDE.md 에 한 줄 추가해 줘.
- 균형 관련 숫자를 바꿀 때는 한 번에 하나만 바꾼다.
  바꾼 뒤에는 실제로 한 판 돌려 본 결과를 함께 적는다.
삼한연대기에서는숫자 하나하나가 다듬기의 손잡이
삼한연대기 거점 상세 창 — 징병 금 60·군량 50 에 병력 45명, 내정 개발 금 100, 성벽 강화 금 80 같은 비용 표시
본편의 거점 창. 징병 = 금 60 · 군량 50 → 병력 +45명, 내정 개발 = 금 100, 성벽 강화 = 금 80. 징병을 싸게 하면 병력 싸움이 되고, 비싸게 하면 내정부터 키우는 게임이 된다. 위 줄의 군량 +16.5 처럼 늘고 주는 속도도 전부 이런 숫자다

이 숫자들도 처음부터 이 값이 아니었다. 해 보고 → 바꾸고 → 또 해 보고를 수십 번 돌아 지금 자리에 왔다. 그 사이에 배운 것이 둘 있다.

  1. 사람이 기억하게 하지 않는다. 본편에는 원본 폴더를 고친 뒤 한 장짜리 파일을 다시 만드는 단계가 있다. 이걸 깜빡하면 "고친 게 반영이 안 된다" 가 된다. 실제로 한 판에서 겪었고, 지금은 미리보기 서버가 뜰 때 낡은 파일을 경고한다.
  2. 확인을 명령 한 줄로 만들어 둔다. 시나리오를 건드리면 npm run selftest 를 돌린다 — 무대 연결 · 목표 판정 · 저장 복원을 한 번에 점검한다. 규칙을 문장으로 적어 두면 잊히지만, 명령으로 만들어 두면 깨진다.

규칙 문서도 이렇게 자랐다. "저장 형식 번호는 한 곳만 고친다", "설치 방식을 예전 것으로 되돌리지 않는다" — 전부 한 번 당하고 나서 적은 것들이다.

7. 숫자로 안 되는 것은 Cowork 로 돌아간다

다듬다 보면 반드시 한 번은 고쳐도 고쳐도 안 되는 지점이 온다. VS Code 에서 계속 붙들고 있으면 시간만 간다. 자리를 옮길 때다 — 폴더를 통째로 보는 쪽으로.

Cowork 로 돌아갈 신호 셋
  1. 같은 곳을 세 번 고쳤는데 여전히 이상하다. 고치는 위치가 틀렸을 가능성이 높다. 원인이 다른 곳에 있다.
  2. 고치면 다른 데가 망가진다. 구조를 손봐야 하는 단계다. 숫자 조정으로는 안 된다.
  3. 무엇을 만들지가 흔들린다. "이 기능을 넣을까 말까" 는 코드 문제가 아니라 계획 문제다. 계획서를 다시 쓸 자리다.

"다듬을 것" 7-2(상대가 뒤에 병력만 쌓는다)는 숫자가 아니라 상대 AI 의 규칙 문제였다. 숫자를 이리저리 만지기 전에 Cowork 로 돌아간다. 이번에는 고치지 말고 원인부터.

7-1 은 VS Code 에서 숫자로 맞췄다.
7-2 는 숫자로는 안 되는 문제 같다. 이 폴더를 처음부터 다시 읽어 줘.
· 고치지 말고 원인부터 찾아 줘
· 어디를 보고 그렇게 판단했는지 파일과 부분을 알려 줘
· 고치는 방법이 여러 가지면 각각의 장단점을 알려 줘
원인 4번 — 상대 AI 는 군량을 보지 않는다(index.html 349~373행). 군량 변화량 함수는 있는데 AI 가 쓰지 않아서 -4/초로 줄어드는 중에도 병력을 쌓아 둔다
① "상대 AI 는 군량을 보지 않는다" — 파일 이름과 줄 번호까지 짚었다. VS Code 에서 그 줄을 열어 확인할 수 있다
숫자로는 안 되는 이유 — AI_ATTACK_MARGIN 을 낮춰도 거점 5에는 공격할 대상이 없다, NODE_CAP 을 낮추면 내 상한도 같이 낮아진다. 그리고 고치는 방법 표 A 상대 증원 추가(추천), B 군량을 보는 AI 와 장점 단점
① 왜 숫자로는 안 되는지 · ② 고치는 방법마다 장점과 단점
추천 순서 — A 만 먼저 넣고 한 판 해 보길 권한다. 정해 주시면 먼저 backups 로 백업하고 PLAN.md 의 상대 AI 규칙을 고친 다음 작업하겠다
① 하나만 먼저 넣고 해 보자는 권유, 그리고 고치기 전에 백업부터 하겠다는 약속 — CLAUDE.md 에 적은 대로다

여기서 어느 방법을 고를지는 내 몫이다 — 게임이 어떤 느낌이길 바라는지는 Claude 가 아니라 내가 정한다. 우리는 이 편을 여기서 멈췄다. A 를 골라 시켜 보는 것은 아래 "해 볼 것" 에 남겨 둔다.

왜 "고치지 말고 원인부터" 인가

원인을 모른 채 고치면 증상만 사라지고 문제는 남는다. 그리고 대개 한 달 뒤에 다른 모습으로 다시 나온다. 이 한 줄이 그것을 막는다. (STEP 13 에서 숫자가 안 맞을 때 쓴 것과 같은 문장이다.)

삼한연대기에서 실제로 있었던 일원인이 엉뚱한 곳에 있던 두 번

저장 불러오기가 조용히 깨진 일. 어느 판부터 저장한 원정을 불러올 수 없게 됐다. 증상은 "불러오기가 안 된다" 하나뿐이었다. 원인은 엉뚱한 곳에 있었다 — 저장 형식 번호를 한 판에서 올렸는데, 불러오는 쪽 코드가 옛 번호를 그대로 보고 있었다. 저장은 새 번호로 쓰고 불러오기는 옛 번호만 받으니, 자기가 만든 파일을 자기가 거절한 것이다. 두 파일을 같이 놓고 봐야 보이는 종류였다. 한 파일만 들여다보면 둘 다 멀쩡해 보인다. 그래서 지금은 규칙 문서에 "저장 형식 번호는 한 곳만 고친다" 가 박혀 있다.

삼한연대기 저장·불러오기 창 — 자동 저장과 저장칸 세 개, 저장 파일 내보내기·파일 불러오기·불러오기 전 상태 복구 단추
그 일을 겪은 뒤의 저장 창. 맨 아래 「불러오기 전 상태 복구」 가 그 사건의 흔적이다 — 불러오기가 잘못돼도 직전으로 되돌아갈 자리를 하나 만들어 둔 것. 이 편의 backups 와 같은 생각이다

설치 프로그램이 죽던 일. 게임은 멀쩡한데 설치 프로그램을 만들면 중간에 죽었다. 코드를 아무리 봐도 나올 리가 없었다 — 원인은 아이콘 파일의 내부 형식이었다. 코드가 아니라 만들어 낸 결과물 쪽이라, 범위를 넓혀 폴더 전체를 봐야 찾힌다. 지금은 설치본을 만들기 전에 아이콘을 자동으로 검사한다. 한 번 당한 것을 검사로 바꿔 둔 것이다.

8. 되돌릴 자리 — backups

VS Code 탐색기에서 backups 폴더를 연 모습. index-0.1-before-tuning, index-0.2-before-food-tuning, index-v1-before-config 부터 index-v6-before-ai 까지
① 한 바퀴 동안 쌓인 사본 — 이름만 읽어도 무엇을 언제 했는지 보인다

이번에는 한 번도 꺼내 쓰지 않았다. 하지만 이것이 있어서 숫자를 겁 없이 바꿀 수 있었다. 망가졌다면 이렇게 한다.

  1. 먼저 "방금 고친 것을 되돌려 줘" 라고 한다. 대개 이것으로 끝난다.
  2. 화면이 하얗게 뜨거나 아무것도 안 눌리면, 브라우저에서 F12 → Console 탭의 빨간 글씨를 캡처해 그대로 보여 준다. "안 된다" 보다 이 한 장이 빠르다.
  3. 그래도 이상하면 "backups 의 index-0.1-before-tuning.html 로 index.html 을 되돌려 줘. 되돌리기 전에 지금 것도 한 벌 남기고."
  4. Claude 없이도 된다 — 탐색기에서 사본을 복사해 index.html 자리에 덮어쓰면 끝이다.
삼한연대기의 backups 폴더이름 붙인 파일 복사가 전부다

본편 폴더에는 이런 사본이 스물아홉 개 쌓여 있다.

game-0.6.0-before-multihop.js        ← 다단계 행군 넣기 전
game-0.7.0-before-persona.js         ← 자동 진행 성격 넣기 전
game-0.9.0-before-reach-attack.js    ← 원거리 공격 넣기 전
style-0.8.0-before-sheet.css         ← 모바일 조작 시트 넣기 전
main-0.9.2-before-squirrel.cjs       ← 설치 방식 바꾸기 전

거창한 도구가 아니다. 그런데 이름만 읽어도 무엇을 언제 시도했는지 그대로 읽힌다 — 제목 화면도, 자동 진행도, 원거리 공격도 모두 지도와 출병이 돌아간 뒤에 얹혔다는 것까지. 되돌릴 수 있다는 사실이 다음 단계에서 과감하게 만든다.

이렇게 되면 한 바퀴를 돈 것이다

폴더에 PLAN.md(무엇을 · 다듬을 것) · CLAUDE.md(어떻게 일할지) · index.html(돌아가는 판) · backups/(되돌릴 자리)가 있고, 숫자를 한 번은 시키고 한 번은 직접 고쳐 가며 맞춰 봤고, 숫자로 안 되는 것은 원인부터 물었다. 삼한연대기 는 이 한 바퀴를 수백 번 돈 결과다 — 0.4 판에는 지도만 있었다.

막히면

계획서 대신 바로 코드를 만들어 버렸다 → "코드는 두고, 먼저 계획서를 PLAN.md 로 써 줘. 내가 읽고 답할 때까지 더 만들지 마."
한 단계 확인에서 말한 숫자와 다르다 → 다음으로 넘어가지 않는다. 화면을 그대로 적는다 — "거점 2가 2가 아니라 10 그대로다. 고치지 말고 왜 그런지부터."
VS Code 에서 고쳤는데 브라우저가 그대로다 → 저장했는지(탭 이름 옆 동그라미), F5 를 눌렀는지 본다.
숫자를 세 번 바꿨는데도 이상하다 → 숫자 문제가 아니다. 7절처럼 Cowork 로 돌아가 원인부터 묻는다. 돌아갈 신호 셋은 7절 첫머리에.

9. 남에게 주기

HTML 파일 한 장이므로 그대로 보내면 된다. 설치도 계정도 필요 없다. 사용법을 같이 붙이면 좋다.

이 게임을 처음 받는 사람이 읽을 사용법을 써 줘.
· 프로그래밍을 모르는 사람 기준
· 어떻게 열고, 무엇을 누르고, 어떻게 이기는지
· README.txt 로 폴더에 저장

휴대폰에서도 열린다. 화면이 좁아 불편하면 한 번 더 부탁한다 — "휴대폰 세로 화면에서 거점이 잘린다. 좁은 화면에서는 세로로 쌓이게 해 줘." 이것도 큰 변경이니 backups 에 한 벌 남기는 것부터다.

10. 되돌아보기 — 이 편에서 쓴 것

한 바퀴 동안 한 일은 전부 Claude 과정에서 한 번씩 나온 것이다. 도구 쪽이 궁금하면 오른쪽 편으로 간다.

이 편에서 한 일어디서 나온 것
규칙을 내가 정해서 넘겼다STEP 05 다섯 칸 — 특히 자료와 제약
폴더를 좁게 하나만 맡겼다STEP 10 폴더는 좁게
코드보다 계획서를 먼저 받아 읽었다STEP 15 계획을 먼저
단계마다 멈추고 직접 눌러 확인했다STEP 13 숫자로 확인
"파일명-버전-before-무엇" 으로 남겼다STEP 15 되돌릴 수 있게
지켜야 할 것을 CLAUDE.md 에 모았다STEP 15 규칙을 폴더에 박아 두기
막혔을 때 "고치지 말고 원인부터"STEP 13 · 18 믿는 근거
자리마다 맞는 일을 나눠 썼다STEP 02 손에 쥔 것이 다르다

이게 이 편의 요점이다. 도구를 아는 것이 아니라 맡기되 확인할 수 있는 형태로 맡기는 습관. 거점 다섯 개짜리 게임이든 백스물한 개짜리 게임이든 순서는 같다.

11. 다음 과제 — 쉬운 것부터

  1. 거점을 늘린다. 다섯 개를 여덟 개로, 한 줄을 가지 모양으로. "거점 자료를 코드에서 분리해 위쪽에 표로 빼 줘" 부터 시키면 훨씬 쉬워진다. (20분)
  2. 내정을 넣는다. 거점마다 개발 단계를 두고, 높을수록 병력이 빨리 늘게. (30분)
  3. 세력을 셋으로. 적이 둘이 되면 서로도 싸운다. 균형이 확 어려워진다. (40분)
  4. 저장을 붙인다. 브라우저에 저장하고 파일로 내보내기. 불러오기는 되돌릴 수 없는 동작이므로 불러오기 전에 지금 상태를 백업하는 것까지 — 본편의 「불러오기 전 상태 복구」 처럼. (30분)
  5. 지도를 그린다. 네모 칸 대신 실제 좌표에 점을 찍고 선으로 잇는다. 여기부터는 삼한연대기가 간 길과 같아진다. (한 시간 이상)

정리 — 세 줄

  1. 계획서부터 받고 질문에 답한다. 코드가 없을 때 고치는 게 가장 싸다.
  2. 한 단계씩 만들고 눌러 본다. 해 보고 느낀 것은 먼저 적어만 둔다.
  3. 숫자는 VS Code 에서 하나씩(시키거나 직접), 숫자로 안 되는 것은 Cowork 에서 원인부터. 늘 backups 를 남기면서.
해 볼 것 · 30분
  1. 7절의 표에서 방법 하나를 골라 Cowork 에 시킨다 — 예: "A 로 하자. 약속한 대로 먼저 백업하고, PLAN.md 도 같이 고쳐 줘."
  2. backups 에 새 사본이 생겼는지 먼저 본다.
  3. 한 판 해 보고 "다듬을 것" 7-3(거점 4 주고받기)이 나아졌는지 적는다. 더 나빠졌으면 8절대로 되돌린다.

더 가고 싶으면 11절 다음 과제 — 거점 늘리기 · 내정 · 세 세력 · 저장 · 지도.

확인 질문 눌러서 답 보기
"바로 만들지 말고 계획서부터" 를 넣으면 무엇이 좋은가?

규칙의 구멍이 코드 전에 드러난다. 우리 때는 "군량이 다시 채워지나?" 같은 질문 열두 개가 왔고, 답하는 데 1분이면 됐다. 다 만든 뒤에 알았다면 다시 만들어야 했다.

해 보고 느낀 것을 왜 바로 고치지 않고 적어만 두나?

숫자를 고치는 일은 VS Code 에서 고치고 F5 누르는 쪽이 훨씬 빠르다. 그리고 적어 두면 숫자로 되는 것과 규칙을 바꿔야 하는 것을 나눠서, 맞는 자리에서 하나씩 할 수 있다.

숫자를 몇 번 바꿔도 안 풀리면 어떻게 하나?

Cowork 로 돌아가 고치지 말고 원인부터 찾게 한다. 어디를 보고 판단했는지(파일 · 줄)와 고치는 방법별 장단점까지 받고, 고르는 것은 내가 한다.

VS Code 에서 Cowork 로 돌아갈 신호 셋은?

같은 곳을 세 번 고쳐도 이상하다 · 고치면 다른 데가 망가진다 · 무엇을 만들지가 흔들린다.

한 번 당한 사고는 어떻게 남기나?

규칙 문서(CLAUDE.md)나 검사로 바꿔 둔다. 다음에는 사람이 기억하는 게 아니라 도구가 막는다.