Portfolio: AI 기반 개인 맞춤형 영상 추천 시스템 (Pick View)
1인 프로젝트
프로젝트 소개
OTT 시대의 콘텐츠 과부하 문제를 해결하기 위해 개발한 AI 기반 개인화 영상 추천 서비스입니다.
사용자의 실제 시청 패턴을 정밀하게 분석하고, 최신 임베딩 기술과 벡터 유사도 검색을 결합하여 정말 볼 만한 영상을 빠르고 정확하게 추천하는 것을 핵심 목표로 설계되었습니다.
리파지토리
- 메인 리파지토리 주소: https://github.com/Haisia/pick-view
- 테스트용 OTT API 서버: https://github.com/Haisia/pick-view-ott
프로젝트 특징
- 실시간 데이터 동기화 & 추천 — Apache Kafka를 활용한 이벤트 기반 실시간 신규 콘텐츠 반영
- 고정밀 벡터 검색 — OpenAI text-embedding-3-large + Elasticsearch / MariaDB Vector Store 조합
- 성능 & 비용 최적화 — Redis 캐싱 전략 + 70% 이상 시청 콘텐츠만 분석 대상 선별
- 클린 & 확장 가능한 아키텍처 — Hexagonal Architecture + Domain Model Pattern + Kubernetes 기반 마이크로서비스 구성
프로젝트 목적
- 현대 OTT 사용자의 가장 큰 pain-point인 “뭐 볼까” 문제를 AI로 실질적으로 해결해 보고자 함
- 최신 AI 임베딩, 벡터 DB, 실시간 스트리밍 기술을 실제 프로덕션 수준의 시스템으로 구현하며 경험 쌓기
- 복잡한 도메인을 헥사고날 아키텍처로 구조화하면서 유지보수성 높은 백엔드 설계 역량 강화
기술 스택 및 아키텍처
- Backend : Spring Boot 3, Spring AI
- AI / Embedding : OpenAI Embedding API (text-embedding-3-large)
- Message Queue : Apache Kafka
- Vector Store & Search : Elasticsearch + MariaDB (Vector 컬럼)
- Caching : Redis
- Infrastructure : Docker, Kubernetes (네임스페이스 분리, Network Policy 적용)
- Architecture : Hexagonal Architecture, Domain-Driven Design
프로젝트 정보
- 개발 기간 : 2025.10.09 ~ 2025.10.13
- 개발 인원 : 최준혁 (1인 프로젝트)
- 데이터 규모 : 초기 83편 → 최종 300편 영화 메타데이터 + summary 기반 벡터화
시스템 아키텍처


k8s 네트워크 아키텍처

프로젝트 후기 및 성과
실시간 추천 시스템의 전체 파이프라인을 처음부터 끝까지 직접 구현해 본 소중한 경험이었습니다.
기술적 도전과제
Kubernetes 네트워크 구성 및 보안 강화
실무에서 경험했던 Kubernetes 환경을 더 확장된 형태로 개인 프로젝트에 적용해보고자 했습니다. 특히 Network Policy를 활용한 네임스페이스 간 트래픽 제어에 집중하여, 각 마이크로서비스가 필요한 최소한의 통신만 허용하도록 설계했습니다. 이를 통해 서비스 간 격리를 강화하고, 보안 측면에서도 더욱 견고한 아키텍처를 구축할 수 있었습니다.
성능 개선 과정
- 단순 키워드 기반 → 문맥을 이해하는 Summary 생성으로 전환
- text-embedding-3-small → text-embedding-3-large 업그레이드
- 분석 대상 콘텐츠를 시청률 70% 이상으로 필터링
이 세 가지 개선만으로도 추천 결과의 코사인 유사도 평균 점수가 크게 상승하였고, 주관적 만족도 역시 뚜렷하게 향상되었습니다.