커플을 위한 개인화된 데이트 코스 큐레이션 및 추억 기록 플랫폼
사용자의 취향 데이터와 온보딩 시스템을 분석하여 최적의 데이트 코스를 추천합니다. 지도 기반의 실시간 코스 추천 기능과 코스 저장 기능을 통해 사용자 편의성을 높였습니다.
초대 코드를 통한 1:1 커플 매칭 시스템을 구축했습니다. 매칭된 커플은 공유 다이어리 기능을 통해 데이트 기록과 사진을 남기고 추억을 관리할 수 있습니다.
시스템 확장성을 위해 마이크로서비스 아키텍처(MSA)를 채택했습니다. 인증(Auth), 콘텐츠(Content), 지역 정보(Territory) 등 도메인별로 서비스를 분리하여 독립적인 배포와 확장이 가능하도록 설계했습니다.
Kubernetes와 ArgoCD를 활용한 GitOps 배포 파이프라인을 구축했습니다. 코드 변경 시 자동으로 이미지가 빌드되고 선언적인 인프라 관리를 통해 배포 안정성을 확보했습니다.
Auth 서비스를 중심으로 한 MSA 도메인 분리 및 데이터 흐름
본 시스템은 Spring Cloud Gateway를 통해 모든 외부 요청을 라우팅하며, React/Vite로 구축된 SPA 프론트엔드와 통신합니다. 각 마이크로서비스는 독립적인 PostgreSQL 데이터베이스를 가지며, Redis를 통해 분산 세션 및 캐시를 관리합니다.
이미지 태그를 'latest'로 고정하여 사용 시 ArgoCD가 변경 사항을 감지하지 못하거나 원복되는 문제를 해결하기 위해, GitHub Actions의 Commit Hash를 태그로 사용하는 동적 배포 전략으로 전환했습니다.
여러 마이크로서비스를 거치는 복잡한 요청에서 발생하는 레이턴시를 Feign Client 최적화와 비동기 이벤트 처리 도입을 통해 개선하고 시스템 전반의 응답 속도를 향상시켰습니다.
게이트웨이에서 검증된 JWT 정보를 내부 서비스로 안전하게 전달하기 위해 커스텀 헤더 전략을 수립했습니다. 또한 불필요한 필터 실행을 줄이는 OncePerRequestFilter 적용으로 인증 처리 성능을 최적화했습니다.