해결된 질문
작성
·
328
0
안녕하세요 강의 잘보고 있습니다. 특히 django template을 이용하여 작업하는 부분에서 도움 많이 되었습니다. django를 학습하면서 궁금한점이 몇 가지 생겨서 여쭤보려고 합니다.
나중에 업로드 되는 DRF 파트에서 dj-rest-auth, django-allauth와 같은 라이브러리를 다루는지 궁금합니다.
DRF와 JWT를 이용하여 클라이언트의 react_hook_form + zod와 서버의 django serializer에서 유효성 검사를 진행중입니다. 여기서 서버, 클라이언트 둘 중 한 가지에서만 유효성 검사를 처리하는건 괜찮지만 두 가지 경우에서 유효성 검사를 처리 할때 유효성 검사의 성공 여부와 메세지를 그리는게 생각보다 까다롭더라고요.
예를 들어 AUTH_PASSWORD_VALIDATORS 에서 기본 제공되는 유효성 검사를 settings에서 커스텀해서 serializers에 적용하게 된다면 해당 유효성 검사에 사용된 조건들을 추출해낼 수 가 없어서 zod 스키마에는 적용할 수 없었습니다. 따라서 아래 이미지와 같이 직접 전부 커스텀 해서 적용해야 했습니다.
클라이언트에서 적절히 걸러내고 아이디 중복체크, 이메일 확인, 최종 유효성 검사 등등 필요한 경우에만 서버에서 유효성 검사를 요하여 트래픽을 줄이려고 하는데 보통 이렇게 처리하는게 맞는건지 궁금합니다.
Django Serializers File
Next Typescript zod File
Display
답변 1
0
안녕하세요.
이전 강의에서는 JWT에 다뤘었지만, 서비스를 여럿 개발하다보니 장고 API 서버 기반에서 과한 기술이더라구요. 장고에서는 세션 인증이라는 이미 좋은 도구가 있는 데, 우리는 이걸 경시하고 있었습니다. 장고의 세션 기능을 충분히 성숙한 기능이구요. 확장성도 좋습니다.
그래서 본 강의에서는 쿠키와 세션 인증을 최대한 활용하여, 웹 API 에서는 클라이언트 단에서 인증에 대해서 거의 고민을 하지 않을 수 있도록, 장고 기본 인증 기능을 최대한 활용할 수 있도록, 인증에 대해서 준비했습니다. // 장고 서버와 리액트 페이지의 도메인 주소만 맞춰주면 됩니다. // 리액트로 SPA를 만든다고 해서 회원가입/로그인 화면도 모두 리액트를 통해 만들 필요는 없다고 생각합니다. 구글 인증할 때 구글 페이지 다녀오잖아요. 마찬가지로 장고 서비스 로그인할 때, 장고 로그인 페이지 다녀와서 세션 생성해서 인증 상태를 유지시키고, 다시 리액트 페이지로 이동시켜도 되지 않을까요? // 그럼 django-allauth 구현도 리액트 단에서는 고민할 필요가 없습니다. 장고 쪽에 구현하고 장고 쪽으로 위임하면 됩니다.
아래는 미촬영 파트인 API 인증 슬라이드입니다. "#3. 같은 도메인의 서브 도메인" 으로 서비스를 구축하면, API 인증에서 세션 인증을 손쉽게 활용할 수 있습니다. 미리 참고로 공유드립니다.
그래서 이번 강의 리뉴얼에서는 SPA와 JWT을 다루긴 하지만, dj-rest-auth와 django-allauth에 대해서는 다루지 않구요. 추후 업데이트에서는 다뤄볼 수도 있습니다.
장고 중심으로 생산성을 극대화시킬 수 있도록, Form 기능을 최대한 살리는 쪽으로 강의를 진행하고 있습니다.
---
질문주신 부분은 openapi(swagger)를 활용해보시면 어떨까요? 장고에서는 drf-spectacular 와 같은 라이브러리가 있는 데요. API 스펙을 JSON으로 내려줄 수 있구요. 리액트 단에서 swagger 라이브러리를 활용하며 이를 활용할 수 있습니다.
지정하신 조건들이 모두 pattern, min_length, max_length 인데요. 이를 시리얼라이저 필드의 validators에서 RegexValidator, MinLengthValidator, MaxLenghValidator로 추가하시면 모두 스웨거에 지정 조건들에 자동으로 추가됩니다.
답변 감사드립니다! 확실히 혼자 공식문서를 보면서 공부하는것과 잘 정리된 강의를 보면서 공부하는것의 차이가 명확하네요.
혼자 공부할때는 멘토가 없었는데 인프런에서는 질문도 가능하고 덕분에 도움 많이 되었습니다.
DRF로 개발할때 JSON형태로 내려주다보니 장고 Form관련 부분은 사용하지 못하고 리액트 프론트 단에서 처리했었는데 이번 강의에서는 장고 Form을 적극 활용 하신다고 확인했습니다.
장고 Form 중심적으로 개발을 진행하는것과 세션 인증을 다루는 부분이 궁금하네요. 이후 업로드 강의를 기다리며 장고 기본에 대해 깊게 공부해보겠습니다.