본문 바로가기

매일 TIL

[내일배움캠프 13-4일] django 심화과제

https://github.com/SoonGyum/team9_djangotimes

 

GitHub - SoonGyum/team9_djangotimes

Contribute to SoonGyum/team9_djangotimes development by creating an account on GitHub.

github.com

 


장고 심화 개인과제 피드백

짧은 시간에 프로젝트 구현하느라 고생 많으셨습니다. 프로젝트에 관한 간단한 피드백을 드릴테니 이러한 피드백을 반영하면 프로젝트의 완성도를 더욱 높이고 실제 사용자의 경험을 더욱 향상시킬 수 있을 것입니다.

 

Django DRF에 대한 이해도가 많이 높아진 것 같습니다. validator와 새로운 매서드를 선언하는 등의 시도도 좋았습니다. 다만, 디테일한 코드 구현에 대한 부분만 보완된다면 더 빠른 성장을 기대할 수 있을 것 같습니다. 그리고 settings.py의 SECRET_KEY는 숨겨서 GitHub에 올라가지 않도록 관리해주세요. git을 더 자세하게 작성하는 습관도 가지는 것이 좋을 것 같습니다.accounts 앱
- models.py
AbstractUser를 상속받은 커스텀 유저 모델의 이름은 기존 auth 앱의 User 모델과 충돌할 수 있습니다. 따라서 CustomUser와 같은 다른 이름을 사용하는 것이 좋습니다. gender 필드는 choices를 사용하여 저장되는 데이터를 줄이세요.
- serializers.py
password와 같은 민감한 필드는 write_only=True로 설정하여 입력만 받고 응답에서는 제외시키는 것이 좋습니다.
- views.py
SignupView에서 validator를 사용하고 있는데 이때 비밀번호가 암호화되어 처리되는지 확인해 보세요. 평문 비밀번호가 전달되는 것을 방지해야 합니다. ProfileView에서는 User.objects.get()을 사용할 때 User.DoesNotExist 오류를 방지하기 위해 get_object_or_404를 사용하는 것이 좋습니다. 응답을 보낼 때 적절한 HTTP 상태 코드를 함께 전달하세요.products 앱
- models.py
Product의 user가 ForeignKey일 때, related_name을 사용하여 User 모델에서 Product 모델로의 접근을 쉽게 하는 것이 좋습니다.
- serializers.py
User 필드는 ForeignKey로 연결되어 있으므로, 유저 객체 전체를 반환하지 않고 id 값만 반환합니다. 상세 유저 정보가 필요하면 추가 작업이 필요합니다. Image 필드에서는 이미지의 전체 URL을 반환하도록 use_url=True 옵션을 사용하는 것이 더 유용할 수 있습니다.
- views.py
ProductListAPIView는 list와 create 뷰를 함께 사용하고 있기 때문에 클래스 이름을 ProductListCreateView와 같이 바꾸는 것이 좋습니다. PUT 메서드에서 partial=True를 사용하는 것은 불필요할 수 있습니다. 일반적으로 전체 리소스 업데이트는 PUT으로, 부분 리소스 업데이트는 PATCH로 수행합니다.

 

장고 심화 개인과제 하시느라 고생 많으셨습니다. 위의 내용 참고하셔서 다음 프로젝트에서 더 나은 모습으로 발전하실 수 있길 바랍니다