bbgg · 빵빵곡곡
"전국 방방곡곡, 빵빵곡곡" — 전국 빵집을 발견하고, 빵지순례 코스를 계획·실행하고, 리뷰와 방문 기록을 남기는 지도 기반 빵집 탐방 서비스입니다. 기획 단계에 참여해 "발견 → 계획 → 함께 다녀오기 → 기록"의 사용자 여정과 MVP 범위를 정리했고, 개인 로컬 서버에 Docker Compose·Traefik·HTTPS 실행 환경과 GitHub Actions·Docker Hub·Infisical 기반 CI/CD를 직접 구성했습니다.
{ } API 규격서 보기 ↗Role & Scope
지도 기반 빵집 탐방 서비스의 기획에 참여하고, 배포 인프라와 CI/CD를 직접 구성했습니다.
- 기간
- 2026.03 ~ 진행 중 · 백엔드·인프라 구축 완료, 프론트 개발 예정
- 역할
- 서비스 기획 참여 · 배포 인프라 · CI/CD
- 형태
- 팀 사이드 프로젝트 · 개인 로컬 서버 운영
- 기술 스택
- Java 21 · Spring Boot 3.5 · jOOQ · MySQL 8 · Docker Compose · Traefik · ZeroSSL · GitHub Actions · Infisical
- "발견 → 계획 → 함께 다녀오기 → 기록" 사용자 여정과 MVP 기능 범위 정리 참여
- 백엔드 관점에서 도메인 경계와 API 흐름 정리
- Docker Compose 기반 개인 로컬 서버 실행·배포 구조 구성
- Traefik 도메인 라우팅 및 ZeroSSL 기반 HTTPS 자동 인증서 발급 구성
- main 브랜치 push 시 실행되는 GitHub Actions CI/CD 파이프라인 구성
- 자체 배포 Infisical에서 민감정보를 내려받아 빌드·배포에 반영하는 흐름 구성
- 공공 제과점 데이터·장소 API·소셜 로그인·FCM 등 외부 연동 포인트 정리
Architecture
main push부터 GitHub Actions · Docker Hub · 개인 로컬 서버 · Docker Compose · Traefik을 거쳐 API가 서빙되기까지의 배포 파이프라인을 한 줄로 정리했습니다.
main push → Actions → Docker Hub · 서버 → Compose → Traefik → API · 도메인
flowchart LR
Push["main push"] --> Actions["GitHub Actions<br/>CI/CD"]
Actions --> DockerHub["Docker Hub<br/>Image Registry"]
Actions --> Server[개인 로컬 서버]
DockerHub -->|이미지 pull| Compose["Docker Compose<br/>pull · restart"]
Server --> Compose
Compose --> Traefik["Traefik<br/>도메인 라우팅 · HTTPS"]
Traefik --> API["Spring Boot API<br/>핵심 도메인"]
What I Did
아이디어 기획에 그치지 않고, 도메인·API 범위 구체화부터 배포·운영 자동화 구조까지 직접 처리한 작업들입니다.
-
프로젝트 기획 참여 및 서비스 방향 정리
단순 빵집 목록 앱이 아니라, 사용자가 빵집을 발견하고 코스를 계획한 뒤 실제 방문하고 기록을 남기는 전체 흐름을 기준으로 서비스 방향을 정리했습니다.
개인 활동(찜·방문·리뷰)과 그룹 활동(순례 코스·멤버 초대·체크인)을 분리해 사용자 경험과 MVP 기능 범위를 구체화했습니다.
-
백엔드 도메인과 API 기능 범위 구체화
bakery · user · auth · wishlist · visit · review · rating · pilgrimage · report · notification등 주요 도메인을 나누고 각 도메인의 책임을 정리했습니다.빵집 검색·상세, 리뷰·별점, 찜, 방문 기록, 순례 생성, 코스 순서 변경, 초대 응답, 체크인, 제보 승인·반려 등을 API 단위로 풀어냈습니다.
-
Traefik·Docker Compose 기반 배포 인프라 및 CI/CD 구축
개인 로컬 서버에 Traefik을 고정 reverse proxy로 두고 도메인 라우팅과 ZeroSSL 자동 인증서 발급을 구성했습니다. main push 시 GitHub Actions가 자체 배포한 Infisical에서 민감정보를 내려받아 이미지를 빌드·push하고, 서버에 SSH 접속해 compose로 최신 이미지를 pull·재실행하도록 구성했으며, CI/CD는 Traefik 설정을 건드리지 않고 API 컨테이너만 재배포하도록 분리했습니다.
-
외부 데이터·서비스 연동을 고려한 기획
공공 제과점 데이터를 기본 빵집 데이터로 활용하고, Naver Local Search / Google Places API로 상세 정보를 보강하는 구조를 고려했습니다.
Kakao·Google 소셜 로그인, JWT access/refresh token, FCM 리마인더 알림처럼 실제 운영에 필요한 인증·알림 흐름을 기획 범위에 포함했습니다.
Impact
- 사용자 흐름(발견 → 코스 계획 → 방문 → 기록)을 bakery·auth·wishlist·visit·review·pilgrimage 등 10개 도메인과 API 단위로 구체화했습니다.
- 개인 로컬 서버에 Traefik 도메인 라우팅·ZeroSSL HTTPS를 구성하고, main push → 이미지 빌드 → Infisical 시크릿 반영 → compose 재배포로 이어지는 CI/CD를 완성했습니다.