본문 바로가기

Projects/Flask + MongoDB K리그 일정서비스

#6. 프로젝트 후기

https://github.com/chanmin-kim/flask-mongodb-kleague

 

chanmin-kim/flask-mongodb-kleague

flask-mongodb web application for scheduling k-league matches - chanmin-kim/flask-mongodb-kleague

github.com

전체 소스코드는 여기서 확인할 수 있다.

 

3가지 기능을 주로 활용하였다.

 

1) JWT방식을 통한 로그인

2) Flask + MongoDB를 통한 CRUD

3) ajax 통신 (혹은 fetch)

 

먼저 1의 측면에서, 세션/토큰/소셜로그인의 방식이 있는데, 토큰을 사용해보는 것에서 배우는 것이 있었다. 각자 장단점이 있다고 생각하는데, 내가 서비스를 설계할 때는 토큰과 소셜로그인(페북, 구글 로그인기능)을 주로 사용할 것 같다. 

 

2의 측면에서, Python 백엔드로는 주로 관계형 DB를 사용하고, 라이브러리로 sqlalchemy, db로는 가장 기본적으로 sqlite를 사용하곤 하는데, 이번에는 비정형 DB로서, 라이브러리로는 pymongo, db로는 mongoDB를 사용해서 조금 색달랐다. 오히려 ORM을 사용하는 것보다 더 편한 것 같다.

 

3의 측면에서, 그동안은 api단에서 http요청이 왔을 때, 렌더링하는 것만 생각했는데, 프론트 부분에서도 http요청을 보낸다는 것의 의미를 깨달을 수 있었다. 쉽게 말해서 새로고침처럼 http요청을 할 수 있다는 것이다. 뒤에 백엔드 부분은 http요청받은 것을 json으로 응답하는 것만 생각하면 될 것 같고, 프론트 부분에서는 받는 json데이터를 어떻게 ui에 찍어줄지, 그리고 버튼을 눌렀을 때 어떻게 http요청을 보낼지. 이렇게 이해하면 될 듯하다.