AI용 분할본 · 지도 1단계(준비·결정서) · 이 페이지 전에 읽을 페이지: PART 0 사용법·AI 시작 지침, PART 4 결정서·마스터 스펙 · 코드 파일은 여기 없다 — 코드 자리의 줄을 따른다(폴더에 책 파일이 하나도 없는 처음이면 부록 A-2 의 curl 한 줄부터)
핵심 규칙 — AI 는 어느 페이지에서든 이것을 지킨다
사용자가 제작 결정서를 명시적으로 승인하기 전에는 코드를 한 줄도 쓰지 않는다. 승인 뒤에는 결정서에 없는 질문·기능을 더하지 않고, 결정서 범위를 끝까지 완주한다.
책 코드 파일은 손으로 옮겨 쓰거나 다시 쓰지 않는다 — node scripts/get-book-code.mjs 가 책 그대로 만든다(첫 실행은 부록 A-2 의 curl 한 줄). AI용 분할본의 코드 자리는 " 경로" 한 줄이다 — 그 파일을 cat 으로 읽는다. 고쳐도 되는 파일은 PART 0 [AI 시작 지침] 5-b 의 목록뿐이다.
매 push 와 완료 보고 전에 node scripts/verify-book-code.mjs 를 실행해 "불일치 0개" 출력을 그대로 보인다.
비밀번호·관리자 주소·DB 주소 같은 값을 채팅·코드·로그·PROGRESS.md 에 적지 않는다. 환경변수는 "이름 + 설정 완료 여부"만 보고받는다.
확인은 AI 가 직접 명령을 실행해 출력으로 증명한다. push ≠ 배포 — 실서버 /api/health 의 commit 이 내 마지막 커밋과 같아지기 전에는 "배포됐다"고 말하지 않는다.
AI 는 지도(https://console.hrum.ai/hostingEbook/ — 같은 지도가 hostingEbook/ai.html 에도 있다)의 단계 순서대로 그 단계의 페이지만 읽는다. 진행 상황은 PROGRESS.md 에 적고, 이어서 할 때는 지도의 다음 단계로 간다 — 승인된 결정서를 다시 묻지 않는다. 전체본 hostingEbook.html 은 사람용이다(링크를 못 여는 도구에 첨부할 때만 AI 가 전체를 읽는다).
이 책의 앱은 HRUM(흐름) 을 부르지 않으므로 드는 돈은 호스팅 플랜뿐입니다. 무료 플랜으로 시작하면 0원이고, 이 앱은 가입 때 받은 크레딧을 쓰지 않습니다(크레딧은 받은 날부터 1년 동안 씁니다 — 이용약관 시행일 2026-10-23 전에 받은 크레딧은 2027-10-22까지).
플랜
월 요금(부가세 별도)
메모리 · DB · 월 전송
앱 수
잠듦
무료
₩0
128MB · 100MB · 1GB
파트너당 1개
15분 동안 방문이 없으면 잠들고, 다음 방문 때 몇 초 안에 깨어남
베이직
₩19,900 (부가세 포함 ₩21,890)
512MB · 1GB · 10GB
—
항상 켜짐
프로
₩49,000 (부가세 포함 ₩53,900)
1GB · 3GB · 50GB
3개
항상 켜짐
부가세 별도. 유료 플랜 요금은 충전해 둔 콘솔 크레딧에서 매월 차감되고, 첫 달 요금은 첫 배포가 공개되는 날 차감됩니다(8-2). 해지는 이미 결제한 기간이 끝나는 날 적용됩니다. 결제일에 잔액이 부족하면 앱이 멈추고, 충전하면 자동으로 다시 켜집니다(첫 배포 승인 때 잔액이 모자라도 승인은 되지만 멈춘 채 시작합니다)
무료 플랜은 파트너당 앱 1개입니다 — 다른 책으로 만든 앱(사주·AI 채팅 등)이 이미 무료 플랜으로 떠 있으면 이 앱을 새로 신청할 수 없습니다. 기존 앱을 정리하거나, 둘 중 하나를 유료 플랜으로 올립니다
앱에서 돈을 받으려면 여러분이 카드 결제 대행사(PG — 예: 토스페이먼츠, 포트원)와 직접 계약해 붙입니다. RIDM Apps 는 이것을 막지 않습니다. 돈을 받는 순간 판매자는 여러분이라 보통 사업자 등록·통신판매업 신고와 환불 책임이 따릅니다 — 계약 조건은 PG사마다 다르니 그 PG사 안내를 따르세요. PG 를 직접 붙이지 않고 HRUM 이 판매 대금을 정산해 보내 주는 지급대행으로도 받을 수 있습니다(9-2-1).
이 책의 코드: 결제가 없습니다. 결정서 9번을 "나중에 유료"로 골랐다면 유료가 될 기능(예: 프리미엄 회원)을 화면에서 분리해 두기만 하고, 결제는 앱을 완성한 뒤 따로 붙입니다(결정서 범위 밖)
직접 계약에 드는 것: PG사와 직접 계약하면 가입비·연회비나 보증보험 같은 비용이 들 수 있고, 사업자 서류를 내고 심사·승인을 받기까지 시간이 걸립니다. 승인 뒤에도 연동 개발과 테스트가 따로 필요합니다. 이런 과정 없이 바로 받고 싶다면 HRUM 지급대행(9-2-1)을 쓰세요 — PG 계약 없이 콘솔에서 판매자 등록을 마치면 HRUM 결제로 받고 등록한 정산 계좌로 지급받습니다.
붙일 때: AI 에게 그 PG사의 연동 문서를 주고, 결제 성공 여부는 브라우저가 아니라 서버에서 PG사에 확인하게 합니다. 결제 비밀 키는 콘솔 환경변수에만 넣고 — 이름이 PG 로 시작하면 플랫폼 예약이라 저장되지 않으니 TOSS_SECRET_KEY 처럼 다른 이름을 씁니다 — 코드·GitHub 에는 넣지 않습니다. PG가 결제 결과를 서버로 알려주는 웹훅 주소를 만든다면, 요청이 올 때마다 PG의 서명을 검증하거나(검증 방법이 없으면 PG에 결제를 다시 조회) 진짜 PG가 보낸 것인지 확인하세요 — 안 하면 누구나 "결제 완료" 요청을 흉내 내 보낼 수 있습니다.
9-2-1. HRUM 지급대행 — 판매 대금을 정산 계좌로 받기
9-2 처럼 PG 를 직접 붙이는 대신, HRUM 을 거쳐 정산되는 판매 대금은 HRUM 지급대행으로 받습니다. 판매 대금에서 판매 수수료와 카드 수수료를 뺀 금액을 HRUM 이 토스페이먼츠 지급대행을 통해 여러분이 등록한 정산 계좌로 보냅니다. 어떤 판매가 HRUM 정산 대상이 되는지, 지급일과 주기는 콘솔 「정산」 안내를 따릅니다.
제출하면 HRUM 이 검토한 뒤 토스페이먼츠에 판매자로 등록합니다. 진행 상황은 같은 화면의 상태로 보입니다
휴대폰 문자나 등록한 이메일로 확인 안내가 오면 그 안내를 따릅니다. 승인되면 지급일에 정산 계좌로 보냅니다
상태
뜻
여러분이 할 일
접수됨
신청이 들어와 HRUM 의 검토를 기다리는 중
기다립니다
등록 중
검토를 마치고 토스페이먼츠에 판매자로 등록하는 중
기다립니다
승인 필요
지급 전에 승인 절차가 남아 있음
콘솔 안내를 따릅니다
본인확인 필요
본인·사업자 확인이 필요함. 확인이 끝날 때까지 지급하지 않습니다
휴대폰 문자나 등록한 이메일로 온 안내를 따릅니다
승인됨
지급을 받을 수 있음
없음
계좌번호는 저장한 뒤 끝 4자리만 보이는 가린 값으로 표시됩니다(예: ****0000). 계좌를 바꾸면 이미 진행 중인 지급은 이전 계좌로 가고, 다음 지급부터 새 계좌로 갑니다
판매자 구분과 사업자등록번호는 등록한 뒤 바꿀 수 없습니다 — 바꿔야 하면 콘솔에서 문의합니다
계좌번호·사업자등록번호·휴대폰 번호는 여러분이 콘솔에 직접 넣습니다. AI 에게 건네거나 코드·GitHub·PROGRESS.md 에 적지 않습니다
돈의 흐름과 수수료
판매 수수료는 소비자 결제액의 10% + 그 부가세입니다. 카드 수수료(결제대행사가 실제로 청구하는 금액)는 판매 수수료와 별도로 판매자가 부담합니다. 예: 결제액 ₩11,000 이면 판매 수수료 ₩1,210(₩1,100 + 부가세 ₩110), 카드 수수료 실비 ₩181(현재 계약 요율 기준 공급가 ₩165 + 부가세 ₩16)이고, 판매자 수령액은 ₩9,609 입니다
판매 대금은 환불에 대비해 일정 기간 「보류 중」으로 있다가 「지급 가능 금액」으로 옮겨지고, 최소 지급액 이상 모이면 지급일에 보냅니다. 보류 기간·최소 지급액·지급일은 콘솔 「정산」 요약에 나오는 값이 기준입니다
「지급 요청됨」은 아직 입금 전입니다. 「지급 완료」 옆 시각은 HRUM 이 완료를 확인한 시각이고, 통장에 찍히는 시각은 은행에 따라 조금 다를 수 있습니다
지급이 실패하면 금액은 정산 잔액으로 돌아옵니다. 계좌 문제라면 「정산 계좌」에서 고치면 다음 지급일에 다시 보냅니다
환불이 생기면
환불된 금액만큼 정산 잔액에서 빠지고, 그 판매에서 뗐던 판매 수수료(10%와 그 부가세)는 되돌려집니다. 카드 수수료는 결제대행사가 실제로 청구한 만큼 판매자 부담입니다. 부분 환불도 같은 방식입니다
보류 중인 판매가 환불되면 지급 전에 서로 상쇄되어, 다른 판매의 지급을 막지 않습니다
지급이 끝난 뒤 환불되면 정산 잔액이 마이너스가 될 수 있습니다. 그 금액은 다음 판매 금액에서 먼저 채웁니다. 마이너스가 기준보다 커지면 판매가 잠시 멈출 수 있습니다
9-3. 대성공하면? — 이 구조가 버티는 범위와 증축 시점
이 구조는 임시방편이 아니라 "회원제 서비스를 여는 최단 경로"이고, 커지면 코드를 버리지 않고 플랜과 테이블만 늘립니다:
앱 컨테이너는 아무것도 저장하지 않고, 회원·메모는 앱 전용 DB 에 있습니다 — 재배포·되돌리기·플랜 변경이 데이터에 영향을 주지 않습니다
메모 한 개는 제목 100자·내용 5,000자, 회원 한 명은 200개가 상한이라(꽉 채워도 한 명 약 3.5MB — 6-2), 회원이 늘어도 DB 가 얼마나 찰지 미리 가늠할 수 있습니다. 앱 카드의 DB 용량과 관리자 페이지의 메모 수(B-7)를 같이 보면 됩니다
무료 플랜은 15분 동안 방문이 없으면 잠들어 첫 방문이 몇 초 걸립니다 — 사람이 꾸준히 오기 시작하면 항상 켜져 있는 베이직으로
앱이 커지면 아래 신호에 맞춰 늘립니다:
신호
증축 내용
어디에
첫 방문 대기(잠듦)가 거슬림, 메모리·전송량 80% 알림
플랜 올리기 (베이직 512MB·10GB, 프로 1GB·50GB) — 콘솔 앱 카드의 플랜 변경, 코드 변경 없음
콘솔
"메모에 태그를 달고 싶어요", "게시판도 있으면"
내 테이블 추가 (lib/schema-extra.ts) + 새 라우트
부록 E-1
DB 용량 80% 알림
80% 알림 때 필요 없는 행 정리 또는 플랜 올리기 — 한도를 넘긴 채 24시간(150% 초과면 즉시)이 지나면 읽기 전용, 그 상태에서 110%를 넘으면 연결이 끊겨 플랜 올리기만 남습니다
AI용 분할본 · 지도 1단계(준비·결정서) · 이 페이지 전에 읽을 페이지: PART 0 사용법·AI 시작 지침, PART 4 결정서·마스터 스펙 · 코드 파일은 여기 없다 — 코드 자리의 줄을 따른다(폴더에 책 파일이 하나도 없는 처음이면 부록 A-2 의 curl 한 줄부터)