만들 줄 아는 것과 굴릴 줄 아는 것은 다른 기술이다. 그리고 오래 살아남는 건 후자다.
이 글 3줄 요약
- AI의 기억은 책상 크기와 같다. 대화가 길어지면 오래된 내용부터 책상 밖으로 떨어지고, 그래서 한 달 뒤엔 AI도 나도 뭘 했는지 까먹는다.
- 중요한 결정은 대화창이 아니라 파일에 산다. RESUME.md 한 장에 목표, 확정 결정, 건드린 파일, 다음 액션 네 덩어리만 적어두면 대화가 통째로 사라져도 이어서 일할 수 있다.
- 매일 5분 마감 청소가 대청소를 막는다. 만든 걸 오래 굴리는 습관이 몸에 배면, AI가 바뀌어도 프로젝트는 끊기지 않는다.
이 글은 AI 바이브코딩 강의 12부작 시리즈의 마지막 편이다. 첫 편이 궁금하다면 1편부터 보고 오면 흐름이 훨씬 잘 잡힌다. 지금까지 우리는 AI에게 말로 시켜 프로그램을 만드는 법을 하나씩 익혀왔다. 마지막인 오늘은 조금 다른 이야기를 한다. 만드는 법이 아니라, 만든 걸 계속 굴리는 법이다.
오늘의 질문 — 다 만들었는데, 왜 못 이어가나
아주 흔한 장면이 있다. 프로그램은 다 만들었다. 그런데 한 달 뒤에 뭔가 고치려고 다시 열어보니, AI도 나도 그동안 뭘 어떻게 했는지 하나도 기억이 안 난다. 어디까지 했는지, 왜 이렇게 만들었는지, 다음에 뭘 하려던 참이었는지가 통째로 안개 속이다.
원인은 딱 하나다. 그동안의 결정을 전부 대화창에만 두었기 때문이다. 대화는 사라지고, 파일은 남는다. 이 한 문장이 오늘 이야기의 전부라고 해도 된다. 그래서 오늘 답할 질문은 이것이다. AI와 오래 일하려면, 무엇을 어디에 남겨야 하는가.
왜 AI는 아까 한 말을 잊을까 — 기억은 책상 크기다
먼저 왜 이런 일이 벌어지는지부터 이해해야 한다. 여기서 컨텍스트라는 말이 등장한다. 컨텍스트(context)란 지금 대화에서 AI가 동시에 기억하고 있는 내용의 총량을 말한다. 이게 무한하지 않다는 게 핵심이다.
컨텍스트를 책상 크기라고 생각하면 쉽다. AI는 한 번에 자기 책상 위에 펼쳐놓을 수 있는 만큼만 본다. 책상은 넓지만 무한하지 않다. 대화가 길어지면 서류(대화 내용)가 책상에 쌓이고, 넘치기 시작하면 오래된 것부터 바닥으로 떨어진다. 그래서 긴 대화 끝에 "아까 말한 대로 해줘"라고 하면, AI는 그 '아까'가 이미 책상 밖으로 떨어진 뒤라 못 찾는 것이다.
여기서 오해하면 안 되는 게 있다. AI가 갑자기 멍청해진 게 아니다. 세 마디 전 것도 까먹는 금붕어가 된 게 아니라, "책상이 좁은 유능한 직원"이라고 보는 게 정확하다. 일 자체는 잘한다. 다만 책상에서 떨어진 서류는, 미리 서랍(파일)에 넣어둔 것만 다시 꺼내볼 수 있다. 이 차이를 아는 것과 모르는 것이 장기 협업의 성패를 가른다.
결정은 대화가 아니라 파일에 산다 — 기억의 3층 구조
그렇다면 무엇을 어디에 넣어둬야 다시 꺼낼 수 있을까. AI의 기억은 크게 3층 구조로 나뉜다고 보면 정리가 된다.
| 층 | 무엇인가 | 성질 |
|---|---|---|
| 1층 · 대화창 | 지금 이 세션의 대화 | 가장 잘 휘발됨. 길어지면 잊고, 창을 닫으면 끝 |
| 2층 · 메모리 파일 | 세션이 바뀌어도 AI가 다시 읽는 개인 노트 | 모든 프로젝트에 공통으로 따라다님 |
| 3층 · 프로젝트 문서 | 폴더 속 RESUME.md 같은 파일 | 누가, 어떤 AI가 읽어도 복구 가능. 오늘의 주인공 |
1층은 지금 당장 대화하는 창이다. 편하지만 가장 먼저 사라진다. 2층은 AI가 세션이 바뀌어도 다시 읽어오는 개인 메모 같은 것이고, 3층은 프로젝트 폴더 안에 딱 박혀 있는 문서다. 초보가 가장 많이 겪는 사고가 여기서 나온다. 대화(1층)로만 이런저런 걸 합의해놓고 다음 날 "AI가 어제 정한 걸 까먹었어요" 하는 것이다. 당연한 결과다. 1층에만 적었으니 하룻밤 사이에 책상 밖으로 떨어진 것이다. 중요한 결정은 2층과 3층 파일로 옮겨두어야 살아남는다.
RESUME.md — 프로젝트의 블랙박스이자 인수인계 노트
3층 문서의 대표 선수가 RESUME.md다. 이름은 어렵지 않다. 프로그래머들이 진행 상황을 적어두는 파일에 흔히 붙이는 이름 정도로 생각하면 된다. 중요한 건 이름이 아니라 안에 무엇을 담느냐다. RESUME.md에는 딱 네 덩어리를 적는다.
가게에 새 직원이 왔을 때 건네주는 인수인계 노트를 떠올리면 정확히 같은 구조다. 뭘 파는 가게인지, 지금까지 정해둔 규칙은 뭔지, 어디까지 해뒀는지, 다음에 할 일은 뭔지. 예를 들어 손님 예약을 카톡으로 받아 자동으로 표에 정리하는 프로그램을 만든다면, RESUME.md는 이렇게 생겼다.
- 목표: 손님 예약을 카톡으로 받아 자동으로 표에 정리
- 확정 결정: 저장은
Supabase사용 / 화면은 나중에 / 카톡 채널은 A안으로 확정 - 건드린 파일:
server.py(예약 받기),db.sql(표 구조) - 다음 액션: 중복 예약 막는 검사 추가, 그다음 테스트
여기서 잠깐, 체크포인트라는 말도 알아두면 좋다. 체크포인트란 작업을 잠시 멈춘 지점의 기록이다. 게임에서 세이브 지점과 똑같다. RESUME.md의 마지막 줄이 곧 마지막 체크포인트다. 대화 기록이 통째로 사라져도, 새 AI에게 이 파일 하나만 읽히면 마지막 체크포인트부터 정확히 이어서 일한다. 새 알바가 와도 인수인계 노트 한 장만 있으면 가게가 안 멈추는 것과 같다.
AI와 장기 협업 3원칙 — 몸에 배면 평생 간다
RESUME.md를 실제로 굴리는 습관은 세 가지 원칙으로 압축된다. 이 세 개가 몸에 배면 어떤 프로젝트든 오래 끌고 갈 수 있다.
첫째, 결정이 나면 그 자리에서 즉시 파일에 적는다. 뭔가 확정하는 순간 "이거 RESUME.md에 적어줘" 한 마디면 된다. 지금 한 줄 적는 수고는, 나중에 그 결정을 되찾는 비용의 100분의 1이다. 대화에만 있는 결정은 가장 먼저 사라진다는 걸 잊지 말자.
둘째, 긴 작업은 진행 파일부터 만들고 시작한다. 세 단계가 넘는 일이면 코드보다 RESUME.md를 먼저 만든다. 목표, 결정, 건드린 파일, 다음 액션 네 덩어리를 만들어두고 단계마다 갱신한다. 집을 짓기 전에 설계도부터 벽에 붙여놓는 것과 같다.
셋째, 새 세션은 "진행 파일 읽기"로 시작한다. 이어서 일할 땐 "RESUME.md 먼저 읽고 이어서 하자" 한 마디로 문을 연다. 그러면 AI가 마지막 지점부터 알아서 복구한다. 그리고 어디에 저장할지 헷갈릴 땐 판단 기준이 하나다. "이 결정이 어디까지 적용되나?" 이 프로젝트에만 해당하면 3층 프로젝트 문서에, 모든 작업에 두루 해당하면 2층 메모리에 둔다.
실전 예시 — 이 강의 자료가 바로 그렇게 만들어졌다
말로만 하면 와닿지 않으니 실제 사례를 하나 든다. 지금 이 글이 속한 바이브코딩 강의 자료 자체가 이 방식으로 만들어졌다.
이 강의 자료는 하루 만에 끝나지 않았다. 세션이 여러 번 끊겼고, 대화 기록도 중간중간 압축되어 사라졌다. 보통이라면 매번 "지난번에 뭘 어떻게 하기로 했더라" 하고 처음부터 다시 설명해야 했을 것이다. 그런데 그러지 않았다. 매번 새 세션에서 RESUME.md 하나만 읽고, AI가 "표준 템플릿은 이거, 규칙은 이거(1280 고정 화면, 이모지 금지, 비유 필수), 다음은 모듈 11" 하며 정확히 이어서 작업했다.
결정을 파일에 남겨두면, AI가 바뀌어도 프로젝트는 끊기지 않는다. 이게 이 모듈이 스스로 증명하는 증거다. 여러분이 지금 읽고 있는 이 글이, 그 습관의 결과물인 셈이다.
유지보수 루틴 — 매일 5분 마감 청소가 대청소를 막는다
만든 걸 오래 굴리려면 딱 네 가지 작은 루틴이면 충분하다. 매장 마감 청소와 정확히 같은 원리다. 매일 조금씩 치우면 대청소할 일이 안 생긴다.
| 루틴 | 무엇을 | 효과 |
|---|---|---|
| 한 덩이 끝나면 RESUME.md 갱신 | 기능 하나 마칠 때마다 다음 액션 한 줄만 고쳐둔다 | 다음에 열었을 때 "어디까지 했더라" 5분이 0분으로 |
| 대화 길어지면 먼저 저장하고 비우기 | 책상이 차기 전에 결정을 파일로 내보내고 대화를 정리한다 | AI가 앞부분을 헷갈리기 시작하면 그게 청소 신호 |
| 망가지기 전에 저장 지점 남기기 | 잘 돌아갈 때 Git으로 한 번 저장해둔다 | 새 기능이 망쳐도 어제로 되돌린다 |
| 다음 액션은 항상 한 줄 남기기 | 일을 멈출 땐 "다음에 뭐부터"를 반드시 적는다 | 재개 비용이 극적으로 줄어든다 |
세 번째 줄의 Git은 앞선 편에서 다룬 저장 지점(백업) 도구다. 잘 돌아가는 순간에 한 번 저장해두면, 새 기능이 프로그램을 망쳐도 어제 상태로 되돌릴 수 있다. 게임에서 세이브하고 보스전에 들어가는 것과 똑같다. 죽어도 다시 시작하면 된다.
흔한 오해 — 운영 단계에서 버려야 할 생각 둘
마지막으로 초보가 가장 자주 걸려 넘어지는 오해 두 가지를 짚어둔다.
첫 번째 오해는 "AI가 어제 대화를 다 기억하겠지"다. 아니다. 기본값은 세션마다 백지다. 파일에 남기지 않은 결정은 존재하지 않는 것과 같다. 기억은 오직 파일에서만 산다. RESUME.md나 메모리에 적어둔 것만 다음 세션의 AI가 이어받는다. 이걸 뒤집으면, 남기고 싶은 건 반드시 파일로 옮겨야 한다는 뜻이 된다.
두 번째 오해는 "안전하게 결정을 여기저기 다 적어두자"다. 이것도 함정이다. 같은 결정을 여러 파일에 중복 저장하면, 나중에 서로 어긋났을 때 뭐가 진짜인지 알 수 없게 된다. 정본(진짜 원본)은 딱 한 곳에 두고, 다른 곳에는 "저기를 봐라"는 안내만 둔다. 원본 하나, 나머지는 링크. 이 규칙 하나가 나중의 대혼란을 막는다.
3줄 정리
딱 세 줄만 가져가면 된다.
첫째, AI의 기억은 책상 크기다. 넘치면 오래된 것부터 떨어진다. 그래서 중요한 결정은 대화가 아니라 파일에 산다.
둘째, RESUME.md는 프로젝트의 인수인계 노트이자 블랙박스다. 목표, 확정 결정, 건드린 파일, 다음 액션 네 덩어리를 적고, 새 세션은 이걸 읽는 것으로 시작한다.
셋째, 매일 5분 마감 청소가 대청소를 막는다. 만들 줄 아는 것과 굴릴 줄 아는 것은 다른 기술이고, 오래 살아남는 건 후자다.
12부작의 끝에서 — 여기까지 온 당신에게
이제 12편의 여정이 모두 끝났다. 우리는 0편에서 "AI는 직원, 나는 사장"이라는 마음가짐으로 출발했다. 컴퓨터와 말로 대화하는 법, Git이라는 안전벨트, 코드가 도는 곳, API로 바깥과 대화하기, 데이터를 저장하고 화면에 띄우고 세상에 내보내기, 에러를 읽는 법, 자동화, AI 도구 생태계, 보안과 비용을 하나씩 지나왔다. 그리고 마지막으로 오늘, 만든 걸 오래 굴리는 법까지 왔다.
이제 당신은 AI를 그저 쓰는 사람이 아니라, AI로 만들고 운영하는 사람이다. 완벽하게 다 외웠을 필요는 없다. 막히면 그때그때 다시 꺼내 보면 된다. 시작은 늘 작다. 첫 프로젝트의 RESUME.md 한 줄부터 적어보자. 거기서부터 당신의 프로젝트는 끊기지 않고 계속 굴러간다.