尚未检测到更新。GitHub 发布版本后会显示在这里。
个人 GitHub 账号下公开仓库的所有者可以登录并验证所有权,自行管理介绍,无需管理员批准。
登录并生成验证文件,在 30 分钟内将其提交到此仓库的默认分支。其他分支或分叉仓库中的文件无效。然后在下方检查文件,即可无需管理员批准直接管理项目。请保留文件以维持管理权限。
如需登录,将前往登录页面。登录后请回到此处,再次点击所选的验证按钮。
在项目文件夹中运行 /nomorevibe verify,即可验证所有权并自行管理介绍。
一分钟完成验证이기정 202204243 — Next.js와 Neon Postgres 미니 방명록
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
로그인 없이 이름, 메시지, 글 비밀번호를 입력해 인사를 남기는 방명록입니다. 글을 수정·삭제할 때 작성 시 정한 비밀번호를 서버에서 검증합니다. • 작성: 이름(1~30자), 메시지(1~1,000자), 비밀번호(4~128자). • 조회: 전체 글을 최신 작성 순으로 표시. 이름·메시지·작성 시각(KST)을 함께 표시. • 수정: 올바른 비밀번호로 메시지만 변경. 이름·작성 시각·정렬 순서는 유지. • 삭제: 확인창에서 비밀번호를 검증한 뒤 삭제. • 비밀번호 오류: 수정·삭제 모두 HTTP 403과 한국어 안내. 기존 글은 유지. • UI: 개발자 이름과 학번, 반응형 화면, 키보드로 조작 가능한 대화상자. • 프로젝트 이름: GitHub·Vercel·Neon 모두 guestbook-202204243.查看完整 README ↗
개발자: 이기정 · 학번: 202204243
로그인 없이 이름, 메시지, 글 비밀번호를 입력해 인사를 남기는 방명록입니다. 글을 수정·삭제할 때 작성 시 정한 비밀번호를 서버에서 검증합니다.
guestbook-202204243.Next.js App Router · TypeScript · React · Neon Postgres · Vercel. ORM 없이 parameterized SQL을 사용합니다. 비밀번호는 무작위 salt와 scrypt 해시로 저장하며 조회 API는 해시·salt·비밀번호를 반환하지 않습니다. 생성/수정/삭제는 서버에서 입력을 검증하고 동일 출처 및 요청 횟수 제한을 적용합니다.
npm ci
cp .env.example .env.local
npm run dev
.env.local의 DATABASE_URL에 Neon pooled 연결, DATABASE_URL_UNPOOLED에 direct 연결을 설정하세요. 실제 이름·학번은 기본값 이기정·202204243이며 환경변수로도 지정할 수 있습니다.
npm run db:migrate
DB 연결이 없으면 로컬에서만 .local-data/guestbook에 PGlite(Postgres WASM)를 생성합니다. Vercel에서는 반드시 Neon 연결을 사용합니다. 로컬 파일 DB는 배포 대체 수단이 아닙니다.
npm test # 실제 Postgres 엔진을 이용한 서비스 동작 테스트
npm run lint
npm run typecheck
npm run build
npx playwright install chromium
npm run test:e2e # 별도 로컬 DB, PC·모바일 CRUD와 비밀번호 거부
실제 Neon 검증은 운영과 분리된 임시 브랜치에서 scripts/verify-database.ts로 실행합니다. 실행 후 검증 글을 삭제합니다. API는 GET/POST /api/entries, PATCH/DELETE /api/entries/:id이며 변경 요청은 JSON입니다.
사용자 요청에 따라 Codex로 진행했습니다. Claude Code 실행 이력으로 표현하지 않습니다.
Matt Pocock의 grill-with-docs → to-spec → to-tickets → implement → code-review 스킬을 사용합니다. 최초 구현에서는 정식 grilling 인터뷰를 생략했습니다. 이후 Codex에서 인터뷰를 진행해 사용자 답변을 기록했으며, 보완 명세·티켓은 사용자 요청으로 개발을 제외하여 보류했습니다. 이를 전체 절차의 소급 완료로 표현하지 않습니다. 실제 진행 기록을 참고하세요. 공식 스킬은 Codex용 .agents/skills와 기존 .claude/skills에 보존했습니다.
Vercel 프로젝트의 production 환경변수로 DATABASE_URL, NEXT_PUBLIC_DEVELOPER_NAME, NEXT_PUBLIC_STUDENT_ID를 등록합니다. 마이그레이션은 직접 연결로 실행한 후 배포합니다. DATABASE_URL_UNPOOLED는 마이그레이션용이며 브라우저로 전달하지 않습니다.
비밀번호·토큰이 있는 .env.local, 로컬 데이터, Neon 연결 파일, Vercel 로컬 설정은 Git에서 제외합니다. 별도 운영자 계정/비밀번호는 없으며 각 글의 비밀번호로 해당 글만 관리합니다.
Vercel 프로젝트에 GitHub 저장소가 연결되어 있습니다. main 브랜치에 push하면 프로덕션 자동 배포가 실행됩니다.