프로젝트 정리


G-Store


📃 목차


1. 주제 및 목표

2. 데이터 선정

3. Django로 웹 사이트 개발

  • CRUD

  • Modeling

  • Docker

  • Azure(PostgreSQL)

4. 프로젝트 회고

  • 발전된 부분

  • 부족한 부분

  • 느낀점





📌 주제 및 목표


1. 주제

주류 판매 및 혼술족을 위한 영화 추천


2. 주제 선정 이유

대부분의 배달 업체에서는 술만 따로 판매하는 서비스는 없다.

소비자들로 하여금 시간과 장소에 구애 받지 않고 음주를 즐기게 하고 싶다.

혼술족들을 위한 서비스를 개발하고 싶었다.


3. 프로젝트 목표

Flask에서 부족했던 부분을 Django로 채워보고 싶었다.

기능보다는 내 생각을 함수기반으로 구현하는 것에 중점을 뒀다.




📌 데이터 선정


1. 데이터

캐글에서 데이터를 가져왔다.

2. 데이터 정보

‘tmdb_5000_movies.csv’ 에는 영화의 평점 줄거리등, meta 데이터가 들어있다.

‘tmdb_5000_credits.csv’ 에는 감독과 배우들의 meta 데이터가 들어있다.




📌 Django로 만든 G-Store


1. CRUD

CREATE : 주문, 회원가입

READ : 주문 목록 조회, 회원정보 확인, 추천 영화 목록

UPDATE : 회원정보 수정, 비밀번호 수정

DELETE : 주문 취소


2. Modeling

CountVectorizer : 각 텍스트에서 단어 출현 횟수를 카운팅한 벡터

Cosine_Similarity : 두 벡터 간의 사잇각을 구해서 얼마나 유사한지 수치로 나타낸 것

영화의 제목, 감독, 배우, 장르의 출현 횟수를 기반으로 벡터를 생성

코사인 유사도를 기반으로 “영화 제목”을 추천

주문을 완료하면 자동으로 추천 페이지로 이동하게 끔 구현


3. Docker

Web Application → Docker Image → Docker Hub


4. Azure(PostgreSQL)

PaaS (Platform as a Service)

개발자들이 인프라 걱정 없이 오로지 개발과 테스트에 집중할 수 있도록 돕는다.

Heroku, Azure, OpenShift

Docker Container migration → Azure(PostgreSQL)




📌 프로젝트 회고


1. 발전된 부분

  • : CRUD를 좀 더 체계적으로 구현

  • : 웹 프레임워크에 모델링을 추가

  • : Docker이미지를 통한 배포

  • : Azure PostgreSQL을 사용


2. 부족한 부분

  • : Class 기반 구현 미숙

  • : 크롤링을 통한 주류데이터 수집 실패

  • : RESTful API 적용 부족

  • : 배포 전 기타 몇 가지 설정 미비(JWT)


3. 느낀점

Flask에서 구현을 못했던 부분들을 구현해서 완벽하지는 않지만 조금은 더 완성도 있는

웹서버를 배포할 수 있었다. 예를 들면 Flask에서는 로컬 DB만을 사용했었는데 이번엔

Azure에서 제공해주는 Postgre를 사용하여 실제로 나의 서버 DB에 데이터가 쌓이는걸

확인할 수 있었다. 이번에 웹 어플리케이션을 만드는 과정에서 다양한 에러메세지를

만났다. 근데 Django Docs에서 대부분의 해답을 찾을수 있었다. 이 부분에서 다시 한번

docs의 중요성을 느꼈다. 추가적으로 깃허브에 있는 django 소스코드도 굉장히 도움이

많이 됐다.


반면에 주류 판매라는 목적을 가진 사이트인데 주류 데이터를 수집하지 못한 부분은

필히 개선 되어야할 부분이다. 그리고 배포과정 중에 JWT라는 것도 설정을 해줘야한다고

보았는데 이 부분은 지속적인 Django에 대한 공부(ex.RESTful API, Class기반 개발 등)를

통해 익히고 적용해야 할 부분이다. 더 나은 G-Store가 되기 위해선 끊임없이 노력해야한다.