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. Docker Compose 기반 개인 로컬 서버 배포 구조 구성

    애플리케이션과 인프라 구성요소를 Docker Compose로 실행할 수 있도록 정리했습니다.

    개인 로컬 서버에서 컨테이너 단위로 서비스를 운영하고, 배포 시 최신 이미지를 pull한 뒤 compose로 API 컨테이너를 재실행하는 구조를 마련했습니다.

  4. Traefik 도메인 라우팅 및 ZeroSSL HTTPS 적용

    Traefik을 서버에 고정된 reverse proxy / edge router로 두고, 외부 요청을 도메인 기준으로 백엔드에 라우팅하도록 구성했습니다.

    Traefik과 ZeroSSL을 연계해 HTTPS 인증서를 자동 발급받도록 했고, CI/CD는 Traefik 설정을 매번 건드리지 않고 API 컨테이너만 재배포하도록 분리했습니다.

  5. GitHub Actions + Docker Hub + Infisical 기반 CI/CD 구축

    main 브랜치 push 시 GitHub Actions workflow가 실행되도록 구성했습니다. 자체 배포한 Infisical에서 민감정보를 내려받고, GitHub Actions Secrets에는 서버·Docker Hub 접속정보를 저장했습니다.

    Actions 안에서 이미지를 빌드해 Docker Hub에 push하고, 이후 서버에 SSH 접속해 민감정보를 복사한 뒤 compose로 최신 이미지를 pull·재실행하도록 했습니다.

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

    공공 제과점 데이터를 기본 빵집 데이터로 활용하고, Naver Local Search / Google Places API로 상세 정보를 보강하는 구조를 고려했습니다.

    Kakao·Google 소셜 로그인, JWT access/refresh token, FCM 리마인더 알림처럼 실제 운영에 필요한 인증·알림 흐름을 기획 범위에 포함했습니다.

Impact · 성과

면접에서 강조할 핵심 어필 포인트입니다.

  • 기획 참여를 통해 사용자 경험을 백엔드 도메인·API·데이터 흐름으로 변환한 경험을 보여줍니다.
  • 지도 기반 탐색, 소셜 로그인, 리뷰·별점, 그룹 코스 계획, 체크인, 알림, 관리자 제보 처리까지 이어지는 복합 도메인을 구조화한 사례입니다.
  • Docker Compose와 Traefik으로 개인 로컬 서버에 도메인 라우팅·HTTPS까지 포함한 배포 환경을 직접 구성한 인프라 경험을 보여줍니다.
  • GitHub Actions·Docker Hub·자체 배포 Infisical·Secrets를 연계해 main push부터 이미지 빌드·푸시, 서버 민감정보 반영, compose 재실행까지 이어지는 CI/CD 흐름을 만들었습니다.
  • 단순 아이디어 기획이나 CRUD 구현이 아니라, MVP 범위와 배포·운영 자동화 구조를 함께 고려한 프로젝트로 설명할 수 있습니다.
Action completed