[Django][the fast] 프로젝트 회고

Info Notice:
안녕하세요. HwanSeok입니다. django에 익숙해지기 위해 진행한 the fast 프로젝트에 대한 간단한 회고를 포스팅합니다.

프로젝트 소개

본 프로젝트는 3개의 앱을 포함하고 있습니다. fcuser, product, order에 대한 기능을 각 앱을 기준으로 구분하였습니다. 본 프로젝트는 아래와 같은 기능을 가지고 있습니다.

  1. 사용자 관리 : 로그인, 로그아웃, decorator를 통한 @login_required, @admin_required
  2. 상품 관리 : 상품 CRUD
  3. 주문 관리 : 주문 CRUD
  4. DjangoRestFrameWork : 상품과 주문에 대한 정보를 restAPI로 제공

개발환경

  • window 10
  • python 3.6.8
  • django 3.1.5
  • postgresql
  • djangorestframework
  • venv packages
Packge version latest version
Django 3.1.6 3.1.6
asgiref 3.3.1 3.3.1
djangorestframework 3.12.2 3.12.2
pip 21.0.1 21.0.1
psycopg2 2.8.6 2.8.6
pytz 2021.1 2021.1
setuptools 52.0.0 53.0.0
sqlparse 0.4.1 0.4.1
wheel 0.36.2 0.36.2

배운 점

간단한 프로젝트였지만 django에 많이 익숙해질 수 있었습니다. 배운 점을 정리해보면 아래와 같습니다.

  1. 클래스 기반 모델을 통한 데이터베이스 생성 및 사용 방법
  2. 클래스 기반 모델 수정을 통한 데이터베이스 migration 방법
  3. request.session을 통한 로그인한 사용자 정보 저장 및 로그아웃
  4. django Model, Tempplates, View 구조(MTV) 이해
  5. django admin에 Model 등록 및 관리 방법
  6. auth.hashers check_password, make_password를 통한 인증 강화
  7. 클래스 기반 Form을 통한 입력 데이터 검증과 객체 생성의 분리clean(), form_valid()
  8. rest_framework를 통해 객체 정보를 api로 제공하기 위한 serializer 등록
  9. 객체 정보는 rest API로 제공할 때 queryset을 통한 객체 필터링
  10. generic view를 통한 restAPI 제공의 편의성
  11. 클래스 기반 Form 정보를 tempalte으로 전달하기 위한 context_data 수정get_context_date()
  12. 다수의 FK를 가지는 모델의 객체를 생성하기 위한 transaction.atommic 처리()transaction.atomic()

the-fast-0

the-fast-1

the-fast-2

the-fast-3

the-fast-4

한 마디

이제 시작이라, 조금만 비정상적인 요청을 날려도 버그가 뻥뻥 터집니다. 장고의 가능성을 믿고, 좀 더 고도화된 프로젝트를 진행해보려고 합니다. 다음 프로젝트는 장고 기반 백오피스 개발입니다.

Success Notice: 수고하셨습니다. :+1:

[1]:

Leave a comment