본문 바로가기

공부 일지 #46 | Django로 영화 추천 웹 만들기

@studying:)2025. 10. 5. 16:37

학습 날짜: 2025.10.02


🎬 Django 프로젝트: 영화 추천 웹 크롤링 & 데이터 시각화

1. 프로젝트 개요

  • 주제: 추석 연휴를 맞이해 ‘영화 추천’ 데이터를 크롤링하고, Django 기반 웹페이지로 시각화
  • 팀 구성: 2인 팀 (각자 다른 데이터 소스 크롤링 담당)

2. 전체 구현 흐름

1️⃣ 크롤링 설계 및 구현

  • 네이버에서 ‘영화 추천’ 검색 시 두 가지 결과 존재
    • A: 사람들이 많이 검색한 영화
    • B: 랜선 영화 인기 순위 ⇒ 내 담당
  1. 각 플랫폼(넷플릭스, 티빙, 웨이브 등)의 영화 링크를 루프 돌며 수집함
  2. 각 링크에 접근해 제목, 장르, 개봉일, 평점, 남성 평점, 여성 평점, 좋아요 수를 크롤링함
  3. 한 영화의 정보를 리턴하는 함수를 만들고, 전체 링크 리스트를 루프 돌려 결과 리스트로 반환하도록 구조화함
    → 함수 단위로 구성해 재사용성과 유지보수성 높임


2️⃣ DB 설계 (models.py)

  • Movie 모델 정의
    • 필드: platform, title, genre, release_date, rating, male_rating, female_rating, likes
  • Django ORM 사용으로 데이터 저장·조회 용이하게 함

3️⃣ 데이터 수집 및 저장 (views.py)

  • 크롤링 함수 호출 → 결과를 DB에 저장하도록 구현함
  • 크롤링 실행 시점은 약 2분 정도 걸리는 점을 고려해, main 페이지에서 ‘크롤링 실행’ 버튼을 눌렀을 때만 실행되도록 설정함

4️⃣ 데이터 시각화 (templates)

  • DB에 저장된 데이터를 기준으로 다양한 시각화 구현함
    • 전체 평점 TOP 10
    • 좋아요 순 TOP 10
    • 남성 평점별 TOP 10
    • 여성 평점별 TOP 10
    • 플랫폼별 장르 분포 파이차트
  • Chart.js로 그래프 구성, Bootstrap으로 페이지 레이아웃 구성함


5️⃣ 협업 방식

  • GitHub에서 브랜치를 분리해 각자 작업 후 Pull Request로 병합
  • 공통 영역(models, templates 구조 등)은 사전 협의 후 작업해 충돌 최소화함

3. 배운 점 / 느낀 점

  • 배운 내용을 토대로 직접 구현 순서 설계하고, GPT에게 구체적인 지시를 내려 코드 작성함
  • 크롤링 구조를 함수화하면서 재사용성과 효율성 높이는 방법 익힘
  • Django ORM, makemigrations, migrate 등 DB 연동 과정을 다시 연습함
  • GitHub 협업을 통해 커밋 관리, 충돌 방지, 코드 리뷰 과정 경험함
  • 시키는 대로 하기보다 직접 생각하고 구현했다는 점에서 큰 의미가 있었음
  • 수업 시간 내 하루 만에 완성할 수 있도록 기능을 설계했고, 예쁘진 않아도 기능 구현에 성공해 뿌듯했음
  • 아직 부족하지만, 협업을 통해 끝까지 해냈다는 점에서 성취감을 느낌
studying:)
@studying:) :: what i studied

studying:) 님의 학습 여정을 기록하는 블로그입니다.

목차