JungHoon Control Center backend-portfolio.local
← Projects
SIDE · 26.03 ~ 진행 중

bbgg · 빵빵곡곡

"전국 방방곡곡, 빵빵곡곡" — 전국 빵집을 발견하고, 빵지순례 코스를 계획·실행하고, 리뷰와 방문 기록을 남기는 지도 기반 빵집 탐방 서비스입니다. 기획 단계에 참여해 "발견 → 계획 → 함께 다녀오기 → 기록"의 사용자 여정과 MVP 범위를 정리했고, 개인 로컬 서버에 Docker Compose·Traefik·HTTPS 실행 환경과 GitHub Actions·Docker Hub·Infisical 기반 CI/CD를 직접 구성했습니다.

{ } API 규격서 보기 OpenAPI 3.1 · 52 endpoints ↗
Java 21Spring Boot 3.5jOOQTraefik

Role & Scope

지도 기반 빵집 탐방 서비스의 기획에 참여하고, 배포 인프라와 CI/CD를 직접 구성했습니다.

SIDE 26.03 ~ 진행 중
기간
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 범위 구체화부터 배포·운영 자동화 구조까지 직접 처리한 작업들입니다.

  1. 프로젝트 기획 참여 및 서비스 방향 정리

    단순 빵집 목록 앱이 아니라, 사용자가 빵집을 발견하고 코스를 계획한 뒤 실제 방문하고 기록을 남기는 전체 흐름을 기준으로 서비스 방향을 정리했습니다.

    개인 활동(찜·방문·리뷰)과 그룹 활동(순례 코스·멤버 초대·체크인)을 분리해 사용자 경험과 MVP 기능 범위를 구체화했습니다.

  2. 백엔드 도메인과 API 기능 범위 구체화

    bakery · user · auth · wishlist · visit · review · rating · pilgrimage · report · notification 등 주요 도메인을 나누고 각 도메인의 책임을 정리했습니다.

    빵집 검색·상세, 리뷰·별점, 찜, 방문 기록, 순례 생성, 코스 순서 변경, 초대 응답, 체크인, 제보 승인·반려 등을 API 단위로 풀어냈습니다.

  3. Traefik·Docker Compose 기반 배포 인프라 및 CI/CD 구축

    개인 로컬 서버에 Traefik을 고정 reverse proxy로 두고 도메인 라우팅과 ZeroSSL 자동 인증서 발급을 구성했습니다. main push 시 GitHub Actions가 자체 배포한 Infisical에서 민감정보를 내려받아 이미지를 빌드·push하고, 서버에 SSH 접속해 compose로 최신 이미지를 pull·재실행하도록 구성했으며, CI/CD는 Traefik 설정을 건드리지 않고 API 컨테이너만 재배포하도록 분리했습니다.

  4. 외부 데이터·서비스 연동을 고려한 기획

    공공 제과점 데이터를 기본 빵집 데이터로 활용하고, 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를 완성했습니다.
Action completed