AI용 분할본 · 지도 1단계(준비·결정서) · 이 페이지 전에 읽을 페이지: PART 0 사용법·AI 시작 지침 · 코드 파일은 여기 없다 — 코드 자리의 줄을 따른다(폴더에 책 파일이 하나도 없는 처음이면 부록 A-2 의 curl 한 줄부터)
핵심 규칙 — AI 는 어느 페이지에서든 이것을 지킨다
node scripts/get-book-code.mjs 가 책 그대로 만든다(첫 실행은 부록 A-2 의 curl 한 줄). AI용 분할본의 코드 자리는 " 경로" 한 줄이다 — 그 파일을 cat 으로 읽는다. 고쳐도 되는 파일은 PART 0 [AI 시작 지침] 5-b 의 목록뿐이다.node scripts/verify-book-code.mjs 를 실행해 "불일치 0개" 출력을 그대로 보인다.AI가 먼저 할 일: 브라우저 기능이 있으면 공식 로그인 페이지 console.hrum.ai/login.html을 직접 엽니다. 브라우저 기능이 없으면 이 링크를 사용자에게 줍니다. 사용자가 OAuth 승인·이메일·비밀번호·메일 인증을 직접 마칠 때까지 기다리고, 로그인된 콘솔 화면이 보이면 다음 단계로 갑니다.
이 책의 프롬프트는 어느 도구에서든 동작하도록 작성되어 있습니다.
코드를 어디에 보관할지는 결정서 14번에서 고릅니다. GitHub Private 저장소(추천): 컴퓨터가 고장 나도 코드가 남고, PART 8 웹 배포에 바로 연결됩니다. 내 컴퓨터 git 만: 가입 없이 PART 7 까지 끝까지 만들고 로컬에서 테스트할 수 있습니다. 단 RIDM Apps 는 GitHub 저장소에서만 코드를 가져가 빌드하므로, 웹에 공개하는 PART 8 에서는 GitHub 저장소가 필요합니다 — 그때(8-1) 이 절의 절차대로 가입합니다. 그때까지는 컴퓨터 고장에 대비해 프로젝트 폴더를 가끔 다른 곳에 복사해 둡니다. 어느 쪽이든 GitHub 저장소는 반드시 Private 입니다 — Public 이면 코드와 설정이 누구에게나 보입니다.
결정서에서 GitHub 를 골랐다면 지금 아래대로 가입하고 Private 저장소를 만듭니다. 내 컴퓨터 git 만 골랐다면 이 절을 건너뛰고 8-1 에서 합니다. 8-1 에서 이 절로 왔다면 아래 절차대로 가입하고 Private 저장소를 만든 뒤 8-1 로 돌아갑니다. AI는 브라우저 기능이 있으면 GitHub 가입을 직접 엽니다. 사용자가 계정 입력·메일 인증·약관 동의를 직접 하고 "완료"라고 답하면 계속합니다. 브라우저 기능이 없으면 같은 공식 링크와 지금 해야 할 입력, 완료 뒤 보여야 할 화면을 안내합니다.
my-notes-app, Private 필수(Public 이면 코드와 설정이 누구에게나 보입니다)RIDM Apps는 HRUM 콘솔 안에 있는 앱 호스팅입니다. 신청은 PART 8에서 하지만, 만드는 방식에 영향을 주는 규칙이라 AI가 코딩 전에 알고 있어야 합니다.
| 항목 | 내용 | 코드에 미치는 영향 |
|---|---|---|
| 신청 자격 | 이메일 인증을 마친 HRUM 콘솔 파트너 계정(1-1) | 없음 |
| 주소 | <이름>.ridm.ai — 신청할 때 정하고, 한 번 정하면 바꿀 수 없습니다 | 없음 |
| 플랜 | 무료: 메모리 128MB·DB 100MB·월 전송 1GB, 파트너당 앱 1개, 15분 동안 방문이 없으면 잠들고 다음 방문 때 몇 초 안에 깨어납니다 · 베이직(₩19,900/월, 부가세 별도 · 부가세 포함 ₩21,890): 512MB·DB 1GB·10GB, 항상 켜짐 · 프로(₩49,000/월, 부가세 별도 · 부가세 포함 ₩53,900): 1GB·DB 3GB·50GB·앱 3개. 콘솔 크레딧에서 매월 차감 | 이 책의 앱은 무료 플랜으로 시작합니다. 무료 플랜 앱이 이미 하나 있으면(다른 책으로 만든 앱 포함) 새 앱을 신청할 수 없습니다 — PART 9 |
| 빌드 | 저장소 루트의 Dockerfile로 빌드(linux/amd64, 20분 한도). 저장소를 연결하면 바로 첫 빌드, 이후 push 마다 자동 빌드 | Dockerfile 필수 — 8-0의 책 코드 |
| 첫 배포 공개 | 빌드가 성공하면 첫 배포도 바로 공개됩니다. 빌드 검사(외부 접속 호스트·위험 코드 패턴·npm audit·이미지 취약점)는 매번 그대로 돌고, 문제가 확인되면 운영자가 나중에 공개를 중지할 수 있습니다 | npm audit 결과는 package.json을 고치지 말고 보고(8-0) |
| 실행 환경 | 포트 3000, 사용자 1000(비루트), 읽기 전용 파일시스템(쓰기는 /tmp·/app/.next/cache 만, 둘 다 재시작 시 사라짐), 시작 후 10초 안에 / 응답 | 파일에 저장하지 말고 DB에. output: 'standalone' |
| DB | 앱마다 전용 PostgreSQL. 접속 정보 DATABASE_URL 자동 주입, 인증서 검증 TLS(인증서는 컨테이너에 설치돼 있어 코드 설정 불필요), 연결 3개 한도, 쿼리 10초 한도, 용량 한도를 넘긴 채 24시간이 지나면(150%를 넘으면 즉시) 읽기 전용, 그 상태에서 110%를 넘으면 연결 차단 | pg 1개, Pool({ max: 2 }) — 5-1의 lib/db.ts |
| 쿠키 | 관문이 쿠키를 앱 주소에만 묶습니다: 서버 응답의 Set-Cookie는 브라우저에 __Host-이름으로 저장되고, 앱에는 원래 이름으로 돌아옵니다. 브라우저 JS(document.cookie)로 만든 쿠키는 서버에 전달되지 않습니다 | 세션 쿠키는 평범한 이름(session)으로 서버에서만 설정 |
| 환경변수 | 콘솔 → 내 앱 → 환경변수(암호화 저장, 저장하면 앱이 새 값으로 다시 시작). PORT·HOSTNAME·NODE_OPTIONS·DATABASE_URL, RIDM_·PG로 시작하는 이름은 플랫폼 몫이라 설정할 수 없습니다 | 기본 뼈대는 여러분이 넣는 값이 없습니다(관리자 페이지 B-7 을 켜면 ADMIN_PATH·ADMIN_PASSWORD 두 개). NEXT_PUBLIC_ 변수 없음 |
| 결제 | 결제는 여러분이 카드 결제 대행사(PG)와 직접 계약해 붙입니다(보통 사업자 등록 필요). 이 책의 코드에는 결제가 없습니다 | 9-2 |
자세한 규칙은 콘솔의 호스팅 문서와 요금 페이지가 기준입니다. 이 표와 다르면 그쪽이 맞습니다.
AI용 분할본 · 지도 1단계(준비·결정서) · 이 페이지 전에 읽을 페이지: PART 0 사용법·AI 시작 지침 · 코드 파일은 여기 없다 — 코드 자리의 줄을 따른다(폴더에 책 파일이 하나도 없는 처음이면 부록 A-2 의 curl 한 줄부터)