맛집큐브 — 맛집 지도·리뷰 서비스
부천·인천·서울 맛집 지도와 리뷰 플랫폼. 자체 도메인, 약관, 검색 엔진 최적화까지 갖춰 런칭을 준비했습니다
- 기간
- 2025.09 – 2026.01
- 역할
- 1인 개발 · AI 코딩 에이전트 협업
- 상태
- 서버 중지 · mzcube.com
- 스택
핵심 수치
2026-09-29 기준
- 홈 화면 API 호출 (통합 API로 교체)4개 → 1개
- 웹 저장소 프로덕션 배포302건
문제
부천·인천·서울 지역의 맛집을 지도와 리뷰로 한곳에서 볼 수 있는 서비스를 만드는 것이 목표였습니다. 사이트는 스스로를 이렇게 소개합니다. “부천, 인천, 서울 지역 맛집 정보와 리얼 리뷰를 한눈에!”
접근
- React·TypeScript 프론트엔드와 Express·Supabase 백엔드를 만들었습니다.
- 홈 화면이 API 4개로 따로 받던 데이터(배너·카테고리·맛집 목록 등)를 통합 API 하나(
/api/home/data)로 묶었습니다(2025-09-30). 서버는 이 응답을 만들 때 Supabase 쿼리를 병렬로 실행합니다. - 요청 제한을 전역, 로그인, 가입, 이메일 인증에 따로 두고, helmet 보안 헤더를 적용했습니다.
- 한글 초성 검색과 자동완성, 카카오·네이버·구글 소셜 로그인, 4개 국어(한국어·영어·일본어·중국어)를 지원하고, 네이버 지도로 맛집 위치를 표시합니다.
결과
- 2025년 9월 23일부터 2026년 1월 28일까지(약 4개월) 웹·백엔드 두 저장소에서 커밋 445개(웹 299개, 백엔드 146개)를 만들었습니다.
- 웹 저장소의 프로덕션 배포 기록은 302건입니다. GitHub의 배포 상태 기록으로는 그중 268건이 성공, 34건이 실패였습니다.
- 자체 도메인 mzcube.com에 이용약관·개인정보처리방침 페이지와 검색 엔진 최적화(사이트맵, 구조화 데이터)를 갖춰 런칭을 준비했습니다.
주요 결정
- 프로젝트 첫날(2025-09-23)에 백엔드 데이터베이스를 MongoDB에서 Supabase(PostgreSQL)로 바꿨습니다.
- 탈퇴는 계정을 바로 지우지 않고 비활성화해 복구할 수 있게 했습니다(탈퇴 시각을 기록하고 복구 API를 둡니다).
한계와 다음 단계
- 지금은 백엔드 서버가 중지되어 있어 맛집 데이터를 불러오지 못합니다.
- 자동 테스트와 CI가 없습니다. 웹 저장소에는 create-react-app이 만든 예제 테스트 1개만 남아 있고, 백엔드에는 vitest 설정만 있고 테스트 파일이 없습니다.
- 탈퇴 후 30일이 지나면 계정을 삭제하는 예약 작업(2025-10-18)은, 새 DB 스키마로 바꾸면서(2025-11-15) 삭제 함수를 비활성화해 지금은 삭제하지 않습니다.
- 실제 사용자는 없습니다.
AI 협업 방식
방향과 판단은 직접 했고, 구현과 문서 작업은 AI 코딩 에이전트(Claude Code)와 함께 했습니다. 웹·백엔드 두 저장소의 모든 브랜치 커밋 445개 중 404개에 Claude 공동 작성 표기가 있습니다. 첫 공동 작성 커밋은 2025년 9월 24일입니다.
링크
- 저장소웹 저장소
- 사이트mzcube.com (서버 중지)