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 액세스 토큰과 리프레시 토큰 발급 로직을 구현하고, @ControllerAdvice와 ApiResponse 공통 응답 객체를 사용했습니다.
Streaming Service
ApiResponse를 통한 응답 구조 통일Content,PlaybackHistory엔티티 생성- PostgreSQL 연동 및 테스트 데이터 삽입
/stream/contentsAPI로 JWT 검증 후 콘텐츠 목록 제공
문제 해결
- PostgreSQL 연결 실패: DB 미생성 →
CREATE DATABASE명령어로 해결 - ConcurrentModificationException: EAGER 로딩 제거, LAZY 변경 및 중복 데이터 정리
- data.sql 미실행:
spring.sql.init.mode=always설정 추가
향후 계획
- CI/CD 파이프라인 자동화
- Session Server 본격 구현
- ELK 스택 및 모니터링 도입
- CDN 연동 검토