OTT추천 서비스개발 선택의왕 프로젝트
📅 2024.05 ~ 2024.05👥 2명🛠 Django, Vue.js🎯 팀장 · 추천/유저 도메인

1. 프로젝트 개요
-
목표:
사용자가 선호하는 영화와 장르를 기반으로 최적의 OTT 플랫폼을 순위별로 추천해주는 서비스 개발.
-
배경:
다양한 OTT 플랫폼 중 어떤 서비스가 사용자 취향에 맞는지, 또는 가장 많은 영화 콘텐츠를 제공하는지 파악하기 어려운 사용자들을 위해 맞춤형 추천 서비스를 제공하기 위해 기획된 프로젝트.
-
주요 기능:
- 사용자가 선호하는 영화와 OTT 선택.
- 선택 기반으로 OTT 순위 추천 제공.
- ChatGPT 챗봇을 활용해 선호 장르 기반 영화 및 추가 추천 제공.
2. 담당 역할 및 기여
-
역할:
팀장, 영화 및 추천 도메인, 유저 도메인 개발 담당.
-
기여:
- ERD 작성: 데이터베이스 설계.
- 목업 작성: 서비스 인터페이스 기획 및 설계.
- 도메인 개발: 영화, 추천 및 유저 도메인 설계 및 구현.
- OAuth2 로그인 기능 구현: 카카오 로그인 및 로그아웃 기능 개발.
- 추천 챗봇 개발: ChatGPT를 활용해 영화 장르 취향 기반 추천 기능 구현.
3. 사용 기술 및 이유
- 사용 기술:
- Vue.js: 프론트엔드 인터페이스 구축.
- Bootstrap: 빠르고 효율적인 UI 디자인.
- Django: 백엔드 프레임워크로 사용, 빠른 API 개발 가능.
- 선택 이유:
- 팀원들의 기술 스택과 짧은 개발 기간을 고려해 가장 익숙한 기술을 선택하여 효율성을 높임.
4. 구현 사항
- OTT 및 영화 추천: 사용자가 선택한 영화와 OTT 데이터를 기반으로 가입할 만한 OTT를 추천.
- 외부 데이터 활용: OpenAPI를 통해 영화 및 OTT 데이터를 수집, 데이터베이스에 저장한 뒤 추천 로직 구현.
- 추천 로직 개발: 사용자의 취향과 데이터를 분석해 맞춤형 OTT 플랫폼 순위 추천.
- 챗봇 기능: ChatGPT를 통해 사용자가 선택한 영화 및 장르를 기반으로 개인화된 영화 추천 제공.
ERD

5. 문제 해결 사례
📦 문제 1: 외부 API 원본을 추천용 데이터 모델로 재가공
상황:
외부 API는 “전체 영화 소개, 장르, 인기도, 발매일” 정도만 제공했고, 우리가 필요한 건 장르별 영화 리스트/개수, OTT별 장르 보유량, 인기도 지표(조회수·평점) 집계였음. 원본을 그대로 쓰면 추천 가중치를 계산할 수 없었음.
해결 방법:
- 스테이징→정규화 파이프라인 구축
- 원본을 스테이징 테이블에 적재 후 장르/OTT 코드를 내부 코드셋으로 매핑
- 장르별 영화 수, OTT별 장르 보유량, 인기도(조회수·평점) 기준 가중치를 계산해 파생 컬럼으로 추가
- 중복·누락 레코드 필터링 후 단일 추천용 스키마로 변환
- 집계 테이블로 분리 저장
- 추천 로직이 바로 쿼리할 수 있도록 “장르별 영화 리스트/개수, OTT별 장르 가중치, 인기도 스코어”를 집계 테이블에 저장
결과:
추천에 필요한 통계·지표를 한 번에 조회 가능해졌고, 이후 추천 로직이 외부 API에 의존하지 않고 내부 집계 데이터를 바로 사용.
🧩 문제 2: OTT 추천 시 API 직접 호출 대신 집계 테이블로 속도·한도 해결
상황:
추천 요청마다 외부 API를 직접 호출하면 응답 지연과 rate limit에 막혀 핵심 기능이 느려지는 문제가 있었음.
해결 방법:
- 집계 테이블 도입
- 추천에 필요한 지표(장르·제공 OTT별 가중치/랭킹)를 배치로 계산해 별도 테이블에 저장
- 하루 1회 배치 업데이트
- 스케줄러로 집계 테이블을 일괄 갱신, 실시간 요청 시에는 집계 테이블만 조회
- 이미 가입한 OTT 필터링 + 결과 캐싱
- 사용자가 이미 가입한 OTT는 추천 후보에서 제외
- “가장 선호 장르를 가장 많이/인기 있게 보유한 OTT” 추천 결과를 사용자별로 저장해 재조회 시 재사용, 선호 장르나 선택이 바뀔 때만 API→집계 재계산 트리거
결과:
추천 응답 속도 향상(외부 API 호출 없음), rate limit 우회, 일관된 추천 결과 유지.
6. 프로젝트 성과 및 결과
- 성과:
- 짧은 개발 기간 내 프로젝트 기획부터 구현까지 완료.
- OAuth2, OpenAPI, ChatGPT 등의 기술을 성공적으로 통합.
- 결과: 사용자가 원하는 OTT 플랫폼을 손쉽게 찾을 수 있는 서비스를 구현하여 사용자 편의성을 극대화.
Last updated on