尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證스냅 작가용 사진 셀렉 웹서비스 — 링크 하나로 보고, 별점 매기고, 제출
翻譯準備中
取自儲存庫 README
正在載入完整 README。
檢視完整 README ↗스냅 작가가 사진을 올리고 링크를 보내면, 모델이 휴대폰에서 사진마다 별점을 매기고, 그 결과를 작가가 어도비 브릿지의 원본에 바로 적용하는 셀렉 서비스입니다.
저는 한강과 웨딩 스냅을 찍습니다. 촬영이 끝나면 1차로 고르고 남은 사진을 카카오톡으로 30장씩 끊어서 보냈고, 모델은 마음에 드는 사진을 저장해서 다시 저에게 보냈습니다. 저는 그 사진을 원본과 하나씩 맞춰야 했습니다. 에필레고는 이 과정을 링크 하나로 줄입니다.
| 사용자 | 하는 일 | 로그인 |
|---|---|---|
| 작가 (1명) | 앨범을 만들고 사진을 올린 뒤 링크를 보냄, 결과 확인 | 필요 |
| 모델 | 카톡으로 받은 링크를 열고 별점을 매긴 뒤 "다 골랐어요" | 없음 |
public/bridge/epilego-apply-ratings.jsx)로 원본에 별점을 적용합니다. 파일명이 같으면 RAW와 JPEG 모두에 들어갑니다.npm install
cp .env.example .env.local # Supabase URL과 publishable 키를 넣는다
npm run dev
Supabase 프로젝트에 supabase/migrations의 SQL을 순서대로 적용하고, 작가 계정은 Supabase 대시보드에서 하나 만듭니다(회원가입은 막아 둠).
기술 스택: Next.js, Tailwind CSS, Supabase(데이터베이스, 저장소, 로그인), Vercel(배포), Pretendard 폰트.
| 날짜 | 한 일 |
|---|---|
| 10/18 | 문제와 범위를 정하고 CLAUDE.md 작성, 스택 결정, 업로드부터 별점, 완료, 결과, 브릿지 적용까지 핵심 기능 |
| 10/18 | 다른 에이전트(코덱스)로 교차 리뷰, 별점 저장 신뢰성 보강 |
| 10/19 | 별점 골라 보기, 셀렉을 마친 뒤 화면, 앨범 지우기 |
| 10/20 | Vercel 배포, 서비스 이름 확정 |
| 10/22–10/27 | 작가 화면 크게 보기, 별점 골라 보기, 버그 수정 |
코딩 경험이 거의 없어서, 규칙과 범위를 CLAUDE.md에 적어두고 Claude Code와 작업했습니다. 큰 결정은 Claude Code가 선택지를 2–3개 보여주면 제가 고르고, 이유와 비교한 안을 CLAUDE.md의 결정 기록에 남겼습니다(57개). 주요 결정은 이렇습니다.
| # | 증거 | 파일 |
|---|---|---|
| 1 | 첫 요청과 흐름 설계, 빈 부분을 묻는 질문 | evidence-1.png |
| 2 | CLAUDE.md 결정 기록 | evidence-2.png |
| 3 | Supabase MCP로 SQL 적용과 보안 점검 | evidence-3.png |
| 4 | 코덱스 리뷰에서 찾은 저장 순서 문제와 수정 커밋 | evidence-4.png |
| 5 | 모델이 휴대폰에서 보는 셀렉 화면(341장 앨범, 격자 보기와 별점 골라 보기) | evidence-5.png |
| 6 | 브릿지에 모델 별점이 적용된 화면(★5 10장, ★4 13장) | evidence-6.png |
배포 주소에서 직접 확인한 결과입니다.
| 케이스 | 기대 결과 | 결과 |
|---|---|---|
| 사진 130장 업로드 (2.5GB) | 촬영 시간순으로 130장이 보임 | 약 1분 만에 올라가고 촬영 시간순으로 정렬됨 |
| 카톡으로 받은 링크를 휴대폰에서 열기 | 로그인 없이 카톡 브라우저에서 열림 | 통과 |
| 별점을 매기고 "다 골랐어요" | 작가 화면에 별점순 결과, 파일명 일치 | 통과. 결과 파일을 브릿지에 적용하니 원본에 ★5 10장, ★4 13장, ★3 1장이 들어감 |
| 실제 모델(을지로 촬영 친구)이 설명 없이 사용 | 혼자 완료까지 진행 | 링크만 받고 끝까지 마침. 인터뷰에서 어려웠던 점은 "딱히 없다". 걸린 시간은 재지 못함 |
| 엣지: 한도를 넘는 5점 | 막히고 안내가 나옴 | 통과. "5점은 최대 N장까지예요" 안내, 별점은 그대로 |
| 엣지: 링크 주소 한 글자 변경 | 다른 앨범이 아니라 '없는 앨범' | 통과 |
| 한계: RAW 파일(.RAF 등) 업로드 | 건너뛰고 안내 | 사진 고르기 창에서는 JPEG만 보이고, 끌어다 놓으면 "JPEG가 아니라 건너뜀"으로 안내 |
잘 통한 방법
어려웠던 점
| 파일 | 역할 |
|---|---|
supabase/migrations/20261018110815_init.sql | 앨범과 사진 표, 보안 규칙, 모델용 함수 3개 |
app/a/[token]/use-ratings.ts | 별점 즉시 저장, 오래된 요청 무시, 실패 재시도, 5점 한도 |
app/a/[token]/select-app.tsx | 모델 화면(격자, 필름스트립, 비교, 완료) |
app/admin/albums/[id]/upload-photos.tsx | 사진 줄이기, 촬영 시간 읽기, 업로드 |
public/bridge/epilego-apply-ratings.jsx | 브릿지 원본에 별점 적용 |