[django]MotherTerarosa - 기본 세팅 및 모델링

강현구·2021년 12월 28일
0

Django project

목록 보기
1/3

Clone Coding (by django)

Mother Terarosa

clone coding을 시작하며...

Mother Terarosa는 국내 커피 체인점인 Terarosa를 기반으로 하는 clone coding project이다.
다른 팀원과 함께 진행하는 협업 project로 나는 Mother Terarosa를 통해 Back-end API server를 제작한다.
Project server는 python 기반의 Web framework인 django를 사용하여 제작하게된다.
원래의 웹 사이트를 100% 완벽히 동일하게 구현한다는 목적보다는 Back-end 개발을 시작하면서 알고 넘어가야할 부분들에 대한 기초 지식을 실제 사이트를 통해서 구현하고 경험해본다는 목적을 갖는다.
기본적인 front/back 간의 통신부터 서버 내부적인 동작 원리 등을 하나하나 정확히 이해한다는 마음가짐으로 진행해야 하겠다.

환경 세팅

@ miniconda
python(ver. 3.8)
django
django-cors-headers
PyMySQL(M1용 MySQL)
Pyjwt
bcrypt

Database Modeling

  • 모델링하는 필드의 데이터 형태(type)을 확장성을 띈 형태로 구현한다.
    예를 들어서 price는 우리나라에서는 Integerfield로 충분하지만 미국과 같은 곳은 소숫점을 이용하여 표현한다. 즉 Decimalfield로 구현해야한다. (Json으로 데이터가 전달되지 않기 때문에 float으로 변환해야한다. -> 프론트와 소통 필요)

  • django의 Charfield는 SQL의 varchar에 대응되는 ORM으로 max_length 이내의 데이터는 flexible한 길이로 필드에 크기가 맞춰지는 특성을 갖고있다.

  • product의 best상품을 호출하는 기준으로 페이지 조회수와 같은 트래픽을 받는 값을 사용할 수 있다. 이때, 이와 같은 필드는 트래픽이 많이 몰리기 때문에 data sharding(따로 공부!!) 과 같은 방법으로 효율적인 구현을 할 수도 있다.

  • django의 app 구분은 REST API에 따라 나뉘게된다.

  • 사용자의 id는 user_id보다는 username으로 통용된다.

  • Foreign Key는 Models.py에서 id를 붙이지 않는다. (자동 생성)

등등....
다음날 바로 모델링 수정작업도 있었다.
초기 단계에서 검토하지 않은 부분들이 개발을 진행하며 문제점이 드러났다.
또한 프론트와 구체적인 부분의 소통이 전혀 없이 시작을 해서, 구현된 화면이 데이터 베이스와 맞지 않는 경우도 있었다.
다음 협업 시 놓치지 말고 챙겨갈 부분!

profile
한걸음씩

0개의 댓글