尚未偵測到更新。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하면 프로덕션 자동 배포가 실행됩니다.