2025-03-11

Flix 프로젝트: 아키텍처 소개 & 개발 기록 - 1

FlixArchitectureSpring BootMSAJWTPostgreSQL

프로젝트 개요

Flix 프로젝트는 넷플릭스를 모방한 스트리밍 플랫폼입니다. 이 글에서는 전체 아키텍처와 초기 구현 내용을 소개합니다.

전체 아키텍처 개요

CI/CD 파이프라인

  • GitHub 푸시 → Jenkins 빌드 트리거 → Docker 이미지 생성 및 배포
  • Vault를 통한 보안 정보 관리 계획 중

서비스 영역

  • Nginx: API Gateway 및 Load Balancer
  • Auth Service: JWT 기반 인증, 사용자 관리, 리프레시 토큰 발급
  • Session Service: 스트리밍 세션 관리 (재생 위치, 디바이스 정보)
  • Streaming Service: 콘텐츠 메타데이터 및 재생 이력 관리

데이터베이스 및 모니터링

  • PostgreSQL: 영구 데이터 저장
  • Kafka, Redis: 향후 도입 예정
  • ELK 스택, Prometheus & Grafana: 모니터링 계획 중

구현 내용

Auth Service

JWT 액세스 토큰과 리프레시 토큰 발급 로직을 구현하고, @ControllerAdviceApiResponse 공통 응답 객체를 사용했습니다.

Streaming Service

  • ApiResponse를 통한 응답 구조 통일
  • Content, PlaybackHistory 엔티티 생성
  • PostgreSQL 연동 및 테스트 데이터 삽입
  • /stream/contents API로 JWT 검증 후 콘텐츠 목록 제공

문제 해결

  1. PostgreSQL 연결 실패: DB 미생성 → CREATE DATABASE 명령어로 해결
  2. ConcurrentModificationException: EAGER 로딩 제거, LAZY 변경 및 중복 데이터 정리
  3. data.sql 미실행: spring.sql.init.mode=always 설정 추가

향후 계획

  • CI/CD 파이프라인 자동화
  • Session Server 본격 구현
  • ELK 스택 및 모니터링 도입
  • CDN 연동 검토