Photo Frame Maker — 2026년 3월 12일
18 files+2390-111
# Photo Frame Maker에 블로그와 어드민 시스템을 추가했습니다
Photo Frame Maker 프로젝트에 블로그와 어드민 시스템을 구현했습니다. 이전까지는 사진 프레임 생성 기능에만 집중했다면, 이제 서비스 운영에 필요한 콘텐츠 관리 기능을 갖추게 되었습니다. 블로그 시스템은 Cloudflare Worker와 D1 데이터베이스를 활용해 구축했으며, Vercel에 호스팅된 기존 API와 블로그 엔드포인트를 Worker에서 프록시하도록 설정했습니다. 이를 통해 모든 요청을 일관되게 관리하면서도 인프라의 유연성을 확보할 수 있게 되었습니다.
기술적으로는 몇 가지 흥미로운 문제들을 해결했습니다. 상대 경로 기반의 이미지 업로드, SPA 모드에서의 라우팅 처리, trailing slash 매칭 등 프론트엔드와 백엔드 간의 미묘한 호환성 문제들을 차근차근 다뤘습니다. 특히 wrangler 설정에서 assets 디렉토리 경로를 올바르게 지정하고, D1 데이터베이스 마이그레이션을 준비하는 과정이 핵심이었습니다. AI 어시스턴트의 도움을 받아 이러한 설정들을 검토하고 최적화하면서 전체 구조를 더욱 견고하게 만들 수 있었습니다.
동시에 사진 분할 저장 시 프레임 없이 순수 사진만 저장되도록 개선하고, 보안 취약점을 수정하며 접근성과 성능을 개선했습니다. 약 2,400줄의 코드 추가와 111줄의 제거를 통해 서비스의 기능성과 안정성을 한 단계 높였습니다.
커밋 기록
feat: Vercel에서 블로그/API를 Cloudflare Worker로 프록시 설정
14:54fix: 이미지 업로드 URL을 상대 경로로 변경
14:41fix: 블로그 라우팅 수정 - trailing slash 매칭 및 not_found_handling 복원
14:30fix: not_found_handling을 SPA 모드로 변경하여 Worker 라우팅 활성화
14:26chore: D1 데이터베이스 스키마 마이그레이션 파일 추가
13:59chore: D1 database_id 설정
13:55Fix wrangler commands to use npx for local resolution
08:50Merge pull request #67 from nohdaeyoung/claude/image-framing-webapp-G6Kaj
08:35feat: 블로그 & 어드민 시스템 구현
08:27docs: 블로그 & 어드민 시스템 기획서 추가
08:04Merge pull request #66 from nohdaeyoung/claude/image-framing-webapp-G6Kaj
07:33Merge branch 'main' into claude/image-framing-webapp-G6Kaj
07:33fix: wrangler assets 디렉토리를 www/로 변경
07:13fix: about 페이지 링크 텍스트를 https://324.ing으로 수정
07:03fix: 분할 모드 저장 시 프레임 없이 순수 사진만 저장
03:58fix: 보안 취약점 수정 및 성능/접근성 개선
03:12