Camera Archive

Dev Notes

Camera Archive 개발 기록

카메라 관리 기능 강화

  • 카메라 타입 체계 개편: FILM 삭제 → DIGITAL을 MIRRORLESS로 변경, DSLR/FILM 추가 (MIRRORLESS, DSLR, COMPACT, MEDIUM_FORMAT, SMARTPHONE, FILM)
  • 카메라 정보에 월(month) 필드 추가 — 시작/종료 날짜를 연도뿐 아니라 월 단위로 관리 가능
  • 카메라 편집 페이지에 커버 이미지 직접 업로드 기능 추가 (R2 presigned URL 방식, 진행률 표시)
  • 홈페이지 날짜 표시 형식 변경: YYYY → YYYY.MM (예: 2025.01 – present)
  • 홈페이지를 force-dynamic으로 변경하여 데이터 즉시 반영
  • 사진 업로드 시 Vercel 서버리스 타임아웃 확장 (maxDuration: 60초)
  • EXIF 데이터 타입 안전 처리 — 다양한 카메라의 비표준 EXIF 값 대응 (safeStr, safeInt, safeFloat, safeDate)
  • 업로드 오류 메시지 상세 표시 기능 추가
  • Archive 페이지에서 관리자 로그인 시 사진 메타데이터 수정 기능 추가 (카메라, 렌즈, 조리개, 셔터속도, ISO, 촬영일시, 장소)
  • Lightbox를 브라우저 뷰포트 75% 크기의 고정 박스로 변경
  • 홈페이지 카메라 목록에서 사진이 0개인 카메라 숨김 처리
  • 카메라별 사진 수를 실시간 집계로 변경 (soft-delete 반영)
  • 푸터에 저작권 표시 및 Dev Notes 링크 추가

EXIF 자동 분류 & 관리 기능

  • 사진 업로드 시 EXIF 데이터 자동 파싱 (카메라, 렌즈, 조리개, 셔터속도, ISO, 촬영일시)
  • EXIF의 카메라 정보로 자동 카메라 매칭 및 신규 카메라 생성
  • Archive 페이지에서 관리자용 삭제 및 Featured 토글 기능
  • API 라우트 캐싱 이슈 수정 (force-dynamic 적용)

초기 구축

  • Next.js 14 App Router + TypeScript + Tailwind CSS 다크 테마 기반 구축
  • Prisma ORM + Supabase PostgreSQL 데이터베이스 연동
  • Cloudflare R2 이미지 스토리지 연동 (썸네일 자동 생성)
  • 카메라 목록, Archive 갤러리, Lightbox 뷰어 구현
  • 관리자 인증 (JWT HttpOnly Cookie) 및 관리 페이지
  • 카메라 타임라인 시각화