01 / 프로젝트 이해

취향에 맞는 영화를 찾고 리뷰를 나누며, 친구와 닮은 영화를 선택해 결과 카드로 남기는 영화 서비스입니다.
- 개발 기간
- 2024.11
- 팀 구성
- 2인 팀 · FE·BE 1 / BE 1
- 기술 스택
- Django · Vue · SQLite
- 제공 상태 ·
- 공개 저장소 · 시연 영상 제공
내 역할과 핵심 기여
2인 팀에서 서비스 흐름·UX/UI·ERD를 함께 구상하고, 회원·영화 API·추천·무비포유와 프런트엔드 전반을 구현했습니다.
- 로컬 영화와 TMDB 검색 결과를 연결하고 외부 영화도 사용자 활동에 저장했습니다.
- 장르 빈도·유사 사용자·생일·기념일 등 기준별 추천을 구현했습니다.
- 무비포유의 선택값 계산부터 영화 결과, PNG 다운로드와 서버 보관까지 연결했습니다.
- Vue 웹
Pinia · Axios · 일부 화면에서 KOFIC·TMDB 직접 조회
회원·영화·추천·카드 API 요청
회원·추천·커뮤니티 · TMDB 조건 조회 · 무비포유 카드 저장
저장 데이터 조회 · 파일 보관 · 외부 영화 요청
- SQLite
영화·사용자·좋아요·북마크·리뷰·카드
- 서버 media
프로필·무비포유 카드 이미지
- TMDB
영화 검색·조건별 후보·포스터
내 담당: 회원·영화·추천·무비포유와 FE 전반. 팀원은 Serializer, 리뷰·댓글 CRUD, fixture·DB 관리와 발표 자료를 맡았습니다.
구조·설계 판단 상세02 / 구현과 문제 해결
무비포유: 선택에서 결과 카드까지
- 01 · 사용자 → Vue친구의 성향 선택
답변의 장르 가중치를 합산하고 대표 장르를 구합니다.
- 02 · Vue → Django선택값 전달
장르·생월·성향·친구 이름을 요청에 담습니다.
- 03 · Django ↔ TMDB후보·포스터 반환
조건에 맞는 영화와 Base64 포스터를 반환합니다.
- 04 · Vue ↔ Django카드 저장
html2canvas로 PNG를 만들고 다운로드·서버 보관을 제공합니다.
실제 추천은 정해진 점수와 조회 조건으로 실행됩니다. 개발 중 생성형 AI를 가중치 계산·재분배와 샘플 준비에 활용했습니다.
실행 흐름 상세CASE 01검색한 영화가 초기 DB에 없을 때
- 문제
- 외부 검색 결과가 로컬 Movie에 없으면 좋아요·북마크를 영화 관계만으로 저장하기 어려웠습니다.
- 판단·대응
- 활동 모델에 외부 영화 ID와 필요한 영화 정보를 보관하고, 사용자·외부 ID의 고유 제약으로 중복을 제한했습니다.
- 결과·한계
- 로컬 Movie 선등록 없이 외부 영화를 보관할 수 있습니다. 활동마다 정보가 중복되며 외부 정보 갱신 정책은 별도로 필요합니다.
구현한 범위와 남은 과제
추천·리뷰와 무비포유의 결과 표시·다운로드·서버 저장을 구현했습니다. SNS 공유 버튼은 준비 중인 기록이며, 모델 기반 추천은 적용 전 리팩토링 계획입니다.