학습 날짜: 2025.10.02
🎬 Django 프로젝트: 영화 추천 웹 크롤링 & 데이터 시각화
1. 프로젝트 개요
- 주제: 추석 연휴를 맞이해 ‘영화 추천’ 데이터를 크롤링하고, Django 기반 웹페이지로 시각화
- 팀 구성: 2인 팀 (각자 다른 데이터 소스 크롤링 담당)
2. 전체 구현 흐름
1️⃣ 크롤링 설계 및 구현
- 네이버에서 ‘영화 추천’ 검색 시 두 가지 결과 존재
- A: 사람들이 많이 검색한 영화
- B: 랜선 영화 인기 순위 ⇒ 내 담당
- 각 플랫폼(넷플릭스, 티빙, 웨이브 등)의 영화 링크를 루프 돌며 수집함
- 각 링크에 접근해 제목, 장르, 개봉일, 평점, 남성 평점, 여성 평점, 좋아요 수를 크롤링함
- 한 영화의 정보를 리턴하는 함수를 만들고, 전체 링크 리스트를 루프 돌려 결과 리스트로 반환하도록 구조화함
→ 함수 단위로 구성해 재사용성과 유지보수성 높임

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 협업을 통해 커밋 관리, 충돌 방지, 코드 리뷰 과정 경험함
- 시키는 대로 하기보다 직접 생각하고 구현했다는 점에서 큰 의미가 있었음
- 수업 시간 내 하루 만에 완성할 수 있도록 기능을 설계했고, 예쁘진 않아도 기능 구현에 성공해 뿌듯했음
- 아직 부족하지만, 협업을 통해 끝까지 해냈다는 점에서 성취감을 느낌
'LG U+ Why Not SW Camp 8기 > 학습 로그' 카테고리의 다른 글
| 공부 일지 #48 | Docker와 Airflow 이해하기 (0) | 2025.10.15 |
|---|---|
| 공부 일지 #47 | Container 개념과 Docker 생성하기 (0) | 2025.10.14 |
| 공부 일지 #45 | Django 실습4: 템플릿 적용과 1:N 관계 구현 (0) | 2025.10.05 |
| 공부 일지 #44 | Django 실습3: 로그인과 회원가입 (0) | 2025.10.04 |
| 공부 일지 #43 | Django 실습2: 글 & 이미지 업로드 절차 (0) | 2025.09.30 |