AI 코딩 도구라면: 아래 '단계 지도'부터 따른다. 이 위쪽은 사람을 위한 소개다.

HRUM RIDM MEMORY · 바이브코딩 시리즈 · 무료 공개 전자책

나를 기억하는
AI 캐릭터 채팅을, 코드 없이

캐릭터를 고르면 그 말투로 대화하고, 여러분이 고른 방식으로 지난 대화를 기억하는 채팅 서비스. AI 코딩 도구에게 시작 문장 한 줄을 건네면, AI 가 이 책을 단계별로 읽으며 앱을 만들고 RIDM Apps(앱 호스팅)에 올려 내앱.ridm.ai 주소로 공개합니다.

읽지 마세요. AI에게 바로 주세요

복잡하게 읽으실 필요 없이 AI에게 주시면 '딸칵'

AI 코딩 도구에 붙여넣을 시작 문장 (예시 — 말은 달라도 링크만 들어가면 됩니다)
https://console.hrum.ai/aiEbook/ 을 열고, 그 지도의 단계 순서대로 해당 페이지만 읽으며 [AI 시작 지침]대로 나와 함께 기억하는 AI 캐릭터 채팅 앱을 만들어줘. 코드는 내가 제작 결정서를 승인한 뒤에만 써.
GPT Codex, Claude Code, Cursor 처럼 웹을 읽을 수 있는 도구에 붙여넣습니다. 이미 만들던 중이면 같은 문장을 그 프로젝트 폴더에서 보내면 PROGRESS.md 를 보고 이어 갑니다.
01

만들어지는 앱

  1. 캐릭터와 대화내가 정한 캐릭터가 반말·다정한 존댓말·격식체 중 정한 말투로 대화합니다. 캐릭터를 여럿 두면 사용자가 고릅니다. PART 3·6
  2. 고른 방식의 기억① 세션형(가장 저렴, 대화는 내 DB) · ② RIDM 무한세션(캐릭터마다 끝없이 이어지며 기억) · ③ RIDM 세션 단위(새 대화마다 새 기억) 중 하나. 4-1
  3. 지난 대화·새 대화폰을 바꿔도 로그인하면 지난 대화가 20개씩 이어서 보입니다. ①·③은 "새 대화" 버튼과 대화 목록이 생깁니다. PART 6
  4. 관리자 페이지회원 목록·정지·요약 숫자. 회원의 대화 내용은 관리자도 볼 수 없습니다. 선택 기능입니다. B-7
02

세 단계로 진행됩니다

  1. 1시작 문장 한 줄위 문장을 AI 코딩 도구에 붙여넣습니다.
  2. 2제작 결정서 승인AI 가 기억 방식·캐릭터·하루 대화 상한·앱 이름·디자인을 추천값과 함께 한 번에 묻고 결정서로 정리합니다. 승인하기 전에는 코드를 한 줄도 쓰지 않습니다.
  3. 3AI 가 만들고 배포책 코드를 받아 만들고 점검을 통과시킨 뒤 RIDM Apps 에 올립니다. 빌드가 성공하면 첫 배포도 바로 공개됩니다.

HRUM·GitHub(고른 경우) 가입, 약관 동의, API 키 같은 비밀값 입력은 여러분이 직접 합니다. AI 가 대신 가입하거나 결과를 보장하지는 않습니다. AI 도구에 HRUM MCP 를 등록하면 가입 신청과 키 저장은 AI 가 하고, 여러분은 메일로 온 승인 화면에서 숫자 하나를 눌러 승인합니다(1-1).

03

책 코드로 들어 있는 것

채팅 서버
모델·캐릭터 지시문·답변 길이·기억 키를 서버가 정하는 전용 라우트. 세 기억 방식이 설정 한 줄로 바뀝니다
비용 방어
로그인 필수, 회원별 하루 대화 상한, 같은 메시지 두 번 과금 방지, 메시지 길이 제한
로그인
아이디·비밀번호 가입, 복구 코드로 비밀번호 재설정, 로그인 실패 횟수 제한, 회원 탈퇴(HRUM 기억까지 삭제). API 키는 서버에만
테스트·점검
npm run check 한 번에 책 코드 대조 → 빌드 → 테스트(세 기억 방식 포함) → npm audit. 배포 뒤 실서버에서 가입·대화·재로그인·회원 격리를 항목마다 PASS/FAIL

AI 는 이 코드를 옮겨 쓰지 않고 책 그대로 받습니다. 여러분이 고치는 것은 캐릭터 목록·채팅 설정·화면 모양뿐입니다.

04

필요한 것

1
필수 계정 — HRUM 콘솔(API 키). GitHub 는 지금 가입하거나 웹 배포 직전(8-1)에 가입(코드 백업용이고, PART 8 웹 배포에는 꼭 필요). AI 모델·기억·호스팅·DB가 HRUM 안에 있습니다
1000크레딧
HRUM 콘솔 가입 무료증정. 채팅은 쓴 만큼 차감. 호스팅 무료 플랜은 파트너당 앱 1개
3가지
고를 수 있는 기억 방식 — 비용 기준·"새 대화" 동작·기록 위치가 다릅니다(4-1)

여기부터 AI용 지도 — AI 코딩 도구는 이 아래를 따른다

핵심 규칙 — AI 는 어느 페이지에서든 이것을 지킨다

  1. 사용자가 제작 결정서를 명시적으로 승인하기 전에는 코드를 한 줄도 쓰지 않는다. 승인 뒤에는 결정서에 없는 질문·기능을 더하지 않고, 결정서 범위를 끝까지 완주한다.
  2. 책 코드 파일은 손으로 옮겨 쓰거나 다시 쓰지 않는다 — node scripts/get-book-code.mjs 가 책 그대로 만든다(첫 실행은 부록 A-2 의 curl 한 줄). AI용 분할본의 코드 자리는 " 경로" 한 줄이다 — 그 파일을 cat 으로 읽는다. 고쳐도 되는 파일은 PART 0 [AI 시작 지침] 5-b 의 목록뿐이다.
  3. 매 push 와 완료 보고 전에 node scripts/verify-book-code.mjs 를 실행해 "불일치 0개" 출력을 그대로 보인다.
  4. API 키·비밀번호 값을 채팅·코드·로그·PROGRESS.md 에 적지 않는다. 환경변수는 "이름 + 설정 완료 여부"만 보고받는다.
  5. 확인은 AI 가 직접 명령을 실행해 출력으로 증명한다. push ≠ 배포 — 실서버 /api/health 의 commit 이 내 마지막 커밋과 같아지기 전에는 "배포됐다"고 말하지 않는다.
  6. AI 는 지도(https://console.hrum.ai/aiEbook/ — 같은 지도가 aiEbook/ai.html 에도 있다)의 단계 순서대로 그 단계의 페이지만 읽는다. 진행 상황은 PROGRESS.md 에 적고, 이어서 할 때는 지도의 다음 단계로 간다 — 승인된 결정서를 다시 묻지 않는다. 전체본 aiEbook.html 은 사람용이다(링크를 못 여는 도구에 첨부할 때만 AI 가 전체를 읽는다).
  7. 기억 방식은 결정서에서 고른 하나 — ① 세션형 · ② RIDM 무한세션 메모리형 · ③ RIDM 세션 단위 메모리형 — 이고, lib/chat-settings.ts 의 CHAT_MODE 한 줄('session' · 'ridm-infinite' · 'ridm-session')로만 정한다. RIDM 기억 범위는 HRUM 에 보내는 user 키가 정하며, 그 키는 서버가 로그인 세션의 회원 id 로 만든다(lib/app-hooks.ts) — 브라우저가 보낸 값으로 만들지 않는다. "기억"이라고 말할 때는 어느 방식의 기억인지 함께 말한다.

AI용 지도 — 기억하는 AI 캐릭터 채팅 서비스

이 지도는 AI 코딩 도구가 읽는 분할본의 첫 페이지입니다. 아래 단계 순서대로, 지금 단계에 적힌 페이지만 열어 읽습니다. 다음 단계 페이지는 지금 단계의 "끝났다는 증거"(명령 출력)를 사용자에게 보인 뒤에 엽니다. 각 페이지 머리에 핵심 규칙과 "이 페이지 전에 읽을 페이지"가 있습니다.

단계 지도

단계읽을 페이지끝났다는 증거(명령 출력)다음
0. 규칙PART 0 사용법·AI 시작 지침명령 없음 — 핵심 규칙과 [AI 시작 지침] 0~7 을 읽었다(사용자에게 보낼 첫 메시지는 1단계 페이지를 읽은 뒤의 4-0 질문)1단계
1. 준비·결정서PART 1 계정 준비
PART 2 기본기
PART 3 컨셉·캐릭터
PART 4 결정서·기억 방식 3종
PART 9 원가·크레딧·결제
4-0 결정 항목을 한 메시지로(기억 방식은 4-1 표로 세 가지를 나란히) → [제작 결정서]에 대한 사용자의 명시적 승인("승인"·"이대로 진행")과 PROGRESS.md 의 결정서 사본(기억 방식 ①/②/③ 과 CHAT_MODE 값 포함). 유료화는 9-4 대로 결정서에 적는다. 계정 게이트(PART 1)는 사용자의 "완료" 답(MCP 경로면 hrum_issue_key 의 saved: true·gitignored: true 출력)2단계
2. 코드 받기부록 A 스펙·코드 받기(A-2)node -v → v22.12 이상 · 새 프로젝트 폴더(1단계 PROGRESS.md 만 있어도 됨)에서 A-2 의 curl 한 줄 → 마지막 줄 "[완전 코드] N개 — 새로 만듦 N · 책 원문으로 되돌림 0 · 책과 다름 0" · git init -b main · 1-2 키 저장(git check-ignore .env.local 이 경로 출력) · npm install 오류 없음 · node scripts/verify-book-code.mjs → "[완전 코드] N개 확인 — 불일치 0개"3단계
3. 채팅PART 5 채팅 서버
PART 6 채팅 화면·지난 대화·탈퇴
부록 C HRUM 채팅 API 요약
결정서대로 lib/chat-settings.ts(CHAT_MODE·DAILY_CHAT_LIMIT·MODELS)·lib/persona-list.ts·화면 파일만 고친 뒤 grep -n "CHAT_MODE: ChatMode" lib/chat-settings.ts 가 결정서의 기억 방식 · npm run build 에러 0 · npx vitest run 전부 통과 · node scripts/verify-book-code.mjs → "불일치 0개"4단계
4. 보안·테스트PART 7 보안
PART 7 테스트·로컬 실행
npm run check 전부 통과 + DB 테스트 한 줄(5-f — 테스트 DB 가 있으면 세 기억 방식 테스트까지 skipped 0) · 7-6 대로 앱을 띄우고 node scripts/smoke-live.mjs http://localhost:3000 --quick 실패 0개(3000 이 쓰이면 띄운 포트의 주소) · grep -r "float_live_" app/ components/ lib/ 출력 없음5단계
5. 배포PART 8 배포curl -s -A "Mozilla/5.0" https://이름.ridm.ai/api/health 의 commit = git rev-parse HEAD · 콘솔에 FLOAT_API_KEY 설정 완료 뒤 node scripts/smoke-live.mjs https://이름.ridm.ai 실패 0개("대화 방식" 항목 = 결정서의 기억 방식)6단계(결정서에 선택 기능이 없으면 완료 보고 5-f)
6. 선택 기능 — 결정서에 고른 것만부록 B 선택 기능 B-4·B-7고른 레시피마다 그 레시피의 완료 기준 · 다시 npm run check 통과 · push 뒤 health commit 일치 · node scripts/smoke-live.mjs https://이름.ridm.ai 실패 0개(B-7 을 켰으면 --admin)완료 보고(PART 0 5-f)
7. 운영·개정 — 필요할 때만부록 D 트러블슈팅
부록 E 앱 DB 테이블 늘리기
개정: verify 가 "다름"이면 PART 0 지침 5-b 의 네 단계 → npm run check 통과 → push. 막힘: 부록 D 조치 뒤 그 단계의 증거를 다시 보인다. 테이블 추가: 부록 E 뒤 npm run check(테스트 DB 가 있으면 TEST_DATABASE_URL 과 함께)해당 단계로 돌아간다

섹션 번호 → 페이지

본문이 "5-4 참조"처럼 다른 섹션을 가리키면 이 표로 페이지를 찾는다. [AI 시작 지침] 0~7(5-b 수정 허용 파일·개정 절차, 5-f 완료 보고 포함)은 PART 0 사용법·AI 시작 지침 에 있다.

번호섹션페이지
1-1HRUM 콘솔 가입과 API 키 발급PART 1 계정 준비
1-2HRUM 키를 안전하게 저장 — 값은 사용자만 입력PART 1 계정 준비
1-3도구 선택 — 셋 중 하나면 충분PART 1 계정 준비
1-4코드 보관 고르기 — GitHub 는 선택PART 1 계정 준비
1-5RIDM Apps — 여러분 앱이 올라갈 곳 (미리 알아두기)PART 1 계정 준비
2-1바이브코딩이 실패하는 세 가지 이유PART 2 기본기
2-2마법의 문장들 (불평 사전)PART 2 기본기
3-1컨셉 한 줄 공식PART 3 컨셉·캐릭터
3-2캐릭터(페르소나) 설계 공식PART 3 컨셉·캐릭터
3-3완성 캐릭터 예시 3종 (그대로 써도 됨)PART 3 컨셉·캐릭터
3-4디자인 고르기 — 갤러리에서 훔쳐오는 법PART 3 컨셉·캐릭터
4-0개발 전 필수 결정 — AI가 코드를 치기 전에 반드시 물어야 하는 것들 (기술 + 창작 4 + 코드 보관)PART 4 결정서·기억 방식 3종
4-1기억 방식 3종 — 무엇이 다르고 누구에게 맞나PART 4 결정서·기억 방식 3종
4-2붙여넣기 전에 채울 것 (4-0의 결정서 하나에서 그대로 옮겨 담기)PART 4 결정서·기억 방식 3종
4-3마스터 스펙 프롬프트 (부록 A에 전문 — 여기선 실행)PART 4 결정서·기억 방식 3종
4-4나왔는지 검증 (완료 기준 체크)PART 4 결정서·기억 방식 3종
5-1세 기억 방식이 HRUM에 보내는 것PART 5 채팅 서버
5-2서버가 고정하는 값 — lib/chat-settings.ts · lib/chat.tsPART 5 채팅 서버
5-3/api/chat 한 번의 흐름 — 관문과 순서PART 5 채팅 서버
5-4requestId·중복·하루 상한·오류PART 5 채팅 서버
5-5기억 키와 내 기능 — lib/app-hooks.tsPART 5 채팅 서버
5-6흔한 함정PART 5 채팅 서버
6-1지난 대화 — 방식마다 어디서 읽나PART 6 채팅 화면·지난 대화·탈퇴
6-2새 대화 — ① 세션형과 ③ RIDM 세션 단위만PART 6 채팅 화면·지난 대화·탈퇴
6-3채팅 화면PART 6 채팅 화면·지난 대화·탈퇴
6-4캐릭터 목록 — lib/persona-list.tsPART 6 채팅 화면·지난 대화·탈퇴
6-5회원 탈퇴 — 기억 방식마다 지워지는 것PART 6 채팅 화면·지난 대화·탈퇴
6-6흔한 함정PART 6 채팅 화면·지난 대화·탈퇴
7-1실화 하나PART 7 보안
7-23중 방어선PART 7 보안
7-3셀프 보안 점검 (배포 전 3분)PART 7 보안
7-3-1배포 전 보안 점검표 — 프록시·입력·한도 (3분)PART 7 보안
7-3-2AI에게 코드를 시킬 때 같이 붙여 넣을 보안 지시문 · 검수 체크리스트PART 7 보안
7-4그래도 유출됐다면 (1분 응급처치)PART 7 보안
7-5자동 테스트 — 세 기억 방식·중복 요청·하루 상한·로그인 (브라우저 쓰로틀 금지)PART 7 테스트·로컬 실행
7-6로컬에서 앱 띄우기 — 스모크·스크린샷용PART 7 테스트·로컬 실행
7-7배포 전 기록·격리 체크 (3분)PART 7 테스트·로컬 실행
8-0배포 파일 — 저장소 루트에 둔다PART 8 배포
8-1GitHub에 올리기 — 웹 배포에 필요PART 8 배포
8-2RIDM Apps 신청과 연결PART 8 배포
8-3배포 후 스모크 테스트PART 8 배포
8-4앱 운영하기PART 8 배포
8-5출시 방법 고르기 — 웹 · 앱 · 토스 미니앱 (선택 · 결정서 범위 밖)PART 8 배포
8-6내 도메인으로 열기 — 연결 또는 구매 (선택 · 결정서 범위 밖)PART 8 배포
9-1대화 1회 원가 — 기억 방식별로 무엇이 과금되나PART 9 원가·크레딧·결제
9-2크레딧 관리PART 9 원가·크레딧·결제
9-3수익화 아이디어 3단계PART 9 원가·크레딧·결제
9-4결제 붙이기 — PG사와 직접 계약PART 9 원가·크레딧·결제
9-5대성공하면? — 이 구조가 버티는 범위와 증축 시점PART 9 원가·크레딧·결제
A-2나머지 뼈대 파일 ([완전 코드] — 한 화면형 예시)부록 A 스펙·코드 받기(A-2)
B-4캐릭터 갈아끼우기·추가하기 (같은 코드, 다른 서비스)부록 B 선택 기능 B-4·B-7
B-7관리자 페이지 (회원 관리·정지·요약 숫자)부록 B 선택 기능 B-4·B-7
E-1대화 기록은 이미 어디 있나 — 기억 방식별부록 E 앱 DB 테이블 늘리기
E-2용량과 점검부록 E 앱 DB 테이블 늘리기
E-3이 구조의 숨은 장점부록 E 앱 DB 테이블 늘리기