← 포트폴리오로 돌아가기
2025.09 — 2025.10

Loventure

커플을 위한 개인화된 데이트 코스 큐레이션 및 추억 기록 플랫폼

Role MSA Auth 서비스 개발
Tech Stack
Java 17Spring BootSpring Security OAuth2JWTPostgreSQLKubernetes

주요 기능

AI Date Course Curation

사용자의 취향 데이터와 온보딩 시스템을 분석하여 최적의 데이트 코스를 추천합니다. 지도 기반의 실시간 코스 추천 기능과 코스 저장 기능을 통해 사용자 편의성을 높였습니다.

Couple Matching & Diary

초대 코드를 통한 1:1 커플 매칭 시스템을 구축했습니다. 매칭된 커플은 공유 다이어리 기능을 통해 데이트 기록과 사진을 남기고 추억을 관리할 수 있습니다.

MSA Architecture (Auth/Content/Territory)

시스템 확장성을 위해 마이크로서비스 아키텍처(MSA)를 채택했습니다. 인증(Auth), 콘텐츠(Content), 지역 정보(Territory) 등 도메인별로 서비스를 분리하여 독립적인 배포와 확장이 가능하도록 설계했습니다.

GitOps Deployment (ArgoCD)

KubernetesArgoCD를 활용한 GitOps 배포 파이프라인을 구축했습니다. 코드 변경 시 자동으로 이미지가 빌드되고 선언적인 인프라 관리를 통해 배포 안정성을 확보했습니다.

시스템 아키텍처

Auth 서비스를 중심으로 한 MSA 도메인 분리 및 데이터 흐름

Loventure MSA Architecture

본 시스템은 Spring Cloud Gateway를 통해 모든 외부 요청을 라우팅하며, React/Vite로 구축된 SPA 프론트엔드와 통신합니다. 각 마이크로서비스는 독립적인 PostgreSQL 데이터베이스를 가지며, Redis를 통해 분산 세션 및 캐시를 관리합니다.

트러블슈팅 (Lessons Learned)

ArgoCD 이미지 태그 관리 및 배포 일관성 이슈

이미지 태그를 'latest'로 고정하여 사용 시 ArgoCD가 변경 사항을 감지하지 못하거나 원복되는 문제를 해결하기 위해, GitHub Actions의 Commit Hash를 태그로 사용하는 동적 배포 전략으로 전환했습니다.

MSA 서비스 간 통신 지연 및 정합성 문제

여러 마이크로서비스를 거치는 복잡한 요청에서 발생하는 레이턴시를 Feign Client 최적화비동기 이벤트 처리 도입을 통해 개선하고 시스템 전반의 응답 속도를 향상시켰습니다.

분산 환경에서의 인증 전파 및 보안 필터 최적화

게이트웨이에서 검증된 JWT 정보를 내부 서비스로 안전하게 전달하기 위해 커스텀 헤더 전략을 수립했습니다. 또한 불필요한 필터 실행을 줄이는 OncePerRequestFilter 적용으로 인증 처리 성능을 최적화했습니다.