🏆45

Day 1 도전: 영화 추천 데이터 모델 설계

그래프 데이터 모델 기초

Netflix의 추천 시스템을 그래프로 설계해보자

도전 목표

실제 추천 시스템의 핵심은 "사용자-아이템-사용자" 관계입니다. 이를 그래프로 모델링하면 "이 영화를 본 사람들이 또 본 영화" 같은 쿼리가 자연스럽게 가능해집니다.

이 과제를 통해 Day 1에서 배운 모든 개념을 종합 실습합니다:

  • Property Graph 모델 설계 (노드, 관계, 속성, 레이블)
  • Ontology 문서화 (스키마 정의)
  • Cypher CRUD 쿼리 작성
  • 관계 탐색 기반 추천 로직 구현

요구사항

시나리오

당신은 스트리밍 서비스의 데이터 아키텍트입니다. 영화 추천 시스템을 위한 그래프 데이터 모델을 설계하세요.

요구사항

엔티티 (노드):

  • User: 사용자 정보 (이름, 가입일, 구독 플랜)
  • Movie: 영화 정보 (제목, 개봉년도, 장르)
  • Actor: 배우 정보 (이름, 출생년도)
  • Director: 감독 정보 (이름)
  • Genre: 장르 정보 (이름)

관계:

  • User -[WATCHED]-> Movie (시청일, 평점, 시청 완료 여부)
  • User -[LIKES]-> Genre
  • Movie -[BELONGS_TO]-> Genre
  • Actor -[ACTED_IN]-> Movie (역할)
  • Director -[DIRECTED]-> Movie

산출물

1. Ontology 문서 (텍스트)

아래 양식으로 정리하세요:

에디터 로딩 중...

2. 샘플 데이터 (Cypher)

최소 아래 규모로 생성하세요:

에디터 로딩 중...

3. 추천 쿼리 3개 (Cypher)

에디터 로딩 중...

보너스 과제

에디터 로딩 중...

평가 기준

항목배점
Ontology 문서 완성도 (노드/관계/규칙)30%
Cypher 문법 정확성30%
추천 쿼리 로직 적절성30%
코드 가독성 및 주석10%
힌트 보기
가변 길이 패턴: -[:WATCHED*2]-> 는 "본 영화를 본 사람이 본"
COLLECT 함수로 영화 목록 그룹핑
WHERE NOT 으로 이미 본 영화 제외
ORDER BY + LIMIT으로 상위 N개 추천
COUNT(DISTINCT ...) 로 중복 제거 후 카운트
WITH 절로 중간 결과를 다음 쿼리에 전달