이 글은 Fable Week 2일차 기록에 달린 한 질문에서 출발했다 — "State와 Document가 어떻게 다른지, 일반 비즈니스 유저들도 시식을 좀 하면 도움이 될 것 같습니다." 그래서 이 글은 개발 용어를 최대한 쉬운 말로 풀어 쓴다. 계획을 대화창에 적어 주는 방식(문서, document)과 파일에 박아 두는 방식(상태, state)이 어떻게 다른지, 대화창을 닫으면 백지가 되는 흔한 AI와 어제 하던 일을 오늘 이어서 하는 AI가 어떻게 다른지 — 그 차이가 작업 방식과 결과에 미치는 영향, 그리고 기억(memory-bank)이 맥락 학습에 끼치는 영향까지 — 실제로 돌아간 사례의 숫자와 함께, 오늘 바로 해볼 수 있는 시식 3가지로 끝낸다.
← 출발점 · 1년 로드맵 60단계, 한 세션에 완주신입 직원에게 일을 맡기는 두 가지 방법을 떠올려 보자. 하나는 30장짜리 업무 매뉴얼을 주는 것이고, 다른 하나는 결재 없이는 다음 줄로 못 넘어가는 체크리스트를 주는 것이다. 매뉴얼은 읽히고, 요약되고, 잊힌다. 반면 체크리스트는 "지금 어디까지 왔는지"가 종이에 박혀 있어서 잊을 방법이 없다. AI에게 일을 시킬 때도 똑같은 일이 벌어진다. AI가 붙잡고 있는 기억은 지금 열려 있는 대화창의 내용뿐이다(이 대화창 내용을 '컨텍스트'라고 부른다). 그런데 그 대화창은 금세 지워지는 임시 기억이라, 대화가 길어지면 오래된 내용부터 자동으로 요약·압축되며 사라진다. 계획을 대화 안에만 적어 두면 — 즉 계획이 '문서(document)'면 — 계획도 대화와 함께 사라진다. 대신 계획을 파일로 남는 '상태(state)'로 두면, 대화가 끊겨도 매번 다시 읽히고, 건너뛸 수 없다.
이 차이는 이론이 아니라 실측이다. Fable Week 2일차에 1년짜리 로드맵(4개 분기 × 각 3개 중간 목표, 모두 60개 작업 단계)을 AI에게 통째로 맡겼다. 계획은 대화에 적어 준 게 아니라 'state.json'이라는 상태 파일 하나였다. 여기서 D1부터 D60까지는 달력 날짜가 아니라 1번부터 60번까지 순서대로 밟는 작업 단계다. 각 단계는 검증 관문(끝났다는 증거가 있어야만 통과)을 지나야만 "완료"로 넘어갔다. 결과 — 16시간 13분에 60단계 전부 완주(60/60), 코드를 저장한 기록(커밋) 62건, 코드를 올릴 때마다 다른 회사의 AI가 잘못을 찾아내는 적대 리뷰 131회. 측정하지 못한 지표는 "완료"가 아니라 "측정 못 함(NA)"으로 남겼다 — 가짜 성공 0건.
| 질문 | 문서(document)로 관리했다면 | 상태(state)로 관리했으니 |
|---|---|---|
| 지금 어디까지 왔나? | "D17쯤 진행 중인 것 같습니다" — 대화를 뒤져서 추측 | 상태 파일에 "D17 · 진행 중"이라 적혀 있다 — 열어 보면 끝 |
| 이 단계는 끝났나? | AI가 "완료했습니다"라고 말하면 믿어야 함 | 검증 관문이 증거를 확인해야만 "완료" — 말로는 못 넘어감 |
| 대화가 끊기면? | 새 창에서 처음부터 다시 설명 | 상태 파일을 읽고 D18부터 이어서 시작 |
| 측정 못 한 지표는? | "대체로 잘 됐습니다"에 섞여 사라짐 | "측정 못 함(NA)"으로 명시 — 성공으로 위장되지 않음 |
대부분의 사람이 경험한 AI는 무상태 에이전트(stateless agent)다 — 챗봇 창을 닫으면 백지가 되고, 어제 함께 정한 결정을 오늘 모른다. 그래서 매번 처음부터 설명하게 되고, "AI는 금붕어 기억력"이라는 인상이 남는다. 유상태 에이전트(stateful agent)는 세 가지를 대화 밖에 둔다 — ① 상태(state)(지금 무엇을 하는 중인가), ② 게이트(gate)(끝났는지를 말이 아니라 시스템이 판정), ③ 기억(memory)(과거의 결정과 실수). 이 세 개가 대화 밖 파일로 존재하는 순간, AI는 "매번 새로 만나는 상담원"에서 "어제 일을 이어서 하는 동료"로 바뀐다.
| 항목 | 무상태 (흔한 챗봇) | 유상태 (이어 일하는 AI) |
|---|---|---|
| 기억 | 창을 닫으면 소멸 | 파일이나 데이터베이스로 대화 밖에 계속 남음 |
| 진행 상황 | 사람이 기억하고 다시 설명 | 상태 파일이 기억 — "지금 D17" |
| 완료 판정 | AI의 "완료했습니다" (자기 신고) | 관문이 증거를 확인한 뒤 승인 (시스템이 판정) |
| 중단 후 재시작 | 처음부터 | 끊긴 지점부터 |
이 차이는 취향 문제가 아니라, 작업 방식과 결과를 바꾼다. 무상태 AI에서는 사람이 맥락 운반자가 된다 — 매번 배경을 다시 설명하고, 중간 결과를 머리로 외우고, 일을 "질문 한 개" 크기로 잘게 잘라 맡길 수밖에 없다. 유상태 AI에서는 사람의 역할이 방향 결정과 예외 승인으로 올라간다. 일은 질문 하나 단위가 아니라 프로젝트 통째로 맡길 수 있다. 결과의 성격도 갈린다 — AI가 스스로 "다 했다"고 신고하는 완료 vs 검증 관문의 증거로 확인된 완료, 대화 한 판 분량 vs 하루 8개 프로젝트(레포)에 261건 저장(계정 8개를 동시에 굴린 실측).
| 영향 범위 | stateless agent | stateful agent |
|---|---|---|
| 일을 맡기는 단위 (작업 방식) | 질문 한 개 — 그 자리에서 답을 받을 크기로 잘라야 함 | 프로젝트 단위 — 1년 로드맵 60단계도 통째로 위임 |
| 사람의 역할 (작업 방식) | 맥락 운반자 — 배경 설명·중간 기억·결과 대조를 사람이 | 방향 결정자 — 예외 승인과 최종 판단만 |
| 확장 방식 (작업 방식) | 사람의 대화 시간만큼만 — 병렬 불가 | 세션을 늘리면 됨 — 계정 8개 병렬·야간 무인 실행 실측 |
| 완료의 근거 (결과) | "완료했습니다" 자기 신고 — 거짓 완료가 섞임 | 관문 통과 증거 — 가짜 성공 0건(못 잰 건 NA) |
| 산출 규모 (결과) | 한 번의 대화 안에서 가능한 것 | 하루 261커밋 · 8레포 — 60단계 완주 포함 (전량 감사) |
| 품질의 시간 추이 (결과) | 오늘 잘돼도 내일 리셋 — 그날의 운에 좌우 | 실수가 규칙이 되어 누적 상승 (§4 기억 루프) |
상태(state)가 "지금 어디까지"라면, 기억(memory)은 "우리가 무엇을 배웠나"다. 이 시스템에서 그 역할을 맡은 실물은 memory-bank라는 기억 저장소다 — 모든 세션의 대화를 자동으로 기록해 두고, 대화 속 결정·취향·반복 패턴을 '사실(fact)' 단위로 자동 추출해 둔다. 그리고 새 세션이 시작될 때 관련된 내용을 다시 꺼내 맥락으로 넣어 준다. 여기에, 실수를 바로잡은 기록에서 규칙을 자동으로 뽑아내는장치가 얹힌다 — 같은 문제가 2번 이상 반복되면 규칙으로 굳고, 다음 세션부터는 그 규칙이 강제된다. 회사로 치면 업무 노하우가 사람 머릿속이 아니라 매뉴얼에 자동으로 쌓이는 것과 같다. 다만 기억은 만능이 아니다 — 부작용도 실측으로 확인했고, 그대로 공개한다.
memory-bank가 실제로 바꾸는 것 3가지. 켜져 있을 때와 없을 때, 세션의 출발선이 이렇게 달라진다.
부작용 3가지 — 기억을 켜기 전에 알아야 할 것. 전부 memory-bank(기억 저장소)를 굴리며 실제로 겪고, 막는 장치를 세운 항목이다.
질문에 나온 표현을 빌리면 "시식"이다. 코딩 없이, 지금 쓰는 챗봇(ChatGPT·Claude·Gemini 무엇이든)으로 상태(state)·유상태(stateful)·기억(memory)의 차이를 각각 5분 안에 체험하는 방법이다.