일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- 북마크한 목록 가져오기
- original set
- 이진 논리 회귀
- DRF
- json to db
- 딥러닝
- class view
- 백엔드
- 팀프로젝트 기획
- Django
- 댓글쓰기
- docker
- 다항 논리 회귀
- CNN
- 개인페이지
- 머신러닝
- js
- Python
- 프로필사진 업로드
- 장고
- 프론트엔드
- API명세
- ERD
- 댓글지우기
- 와이어프레임
- 팔로우 기능 에러
- python to json
- 비밀번호 수정
- test.py
- serializer
- Today
- Total
코딩 개발일지
장고(Django) stateful/stateless/쿠키/토큰 본문
stateful / stateless
stateful: server side 에 client와 server의 연속된 동작 상태정보를 저장하는 형태
쉽게 말해, 서버에 사용자 정보 저장
stateless: server side 에 client와 server의 연속된 동작 상태정보를 저장하지 않는 형태
서버에 사용자 정보 저장X
쿠키방식 / 토큰방식 차이
- 면접 단골 -
- 서버 기반 인증 (Cookie-Session)
전통적 방식. HTTP가 stateless 해서 탄생함
따라서 장점이자 단점이 stateful 하다는 것이다 (서버 부하 가능성)

- 토큰 기반 인증 (oAuth 2.0, JWT)
stateless 한 방식이다. 서버 부하를 덩 수 있다.

1. oAuth
Access Token, Refresh Token을 이용
Authorization Server에서 인증+권한 관리를 하고 Resource Server에서는 자원에 대한 관리만 한다.
장점: 보안성 좋다. (Access Token을 지속적으로 발급받아야 함)
단점: 필요한 Resource가 너무 많다. Access Token이 만료될 때마다 새롭게 발급하는 과정에서 생기는 HTTP 요청이 잦다.
2. JWT (JSON Web Token)
토큰 자체가 data를 가지고 있다.
장점: 토큰 기반 인증의 장점 (서버 부하 덜 수 있음)
단점: 보내는 데이터 양이 크다. 토큰 자체를 탈취하면 ID, PW 자체를 알 수 있다. (따라서 HTTPS 통신을 권장한다.)
JWT를 이용해서 프로젝트를 진행했다.
rest_framework_simplejwt 를 install하고 공식문서에서 하라는대로 추가해준다.
JWT에서 계정정보를 확인해 볼 수 있다. JWT web token 사이트에서 조회할 수 있고, 조회방법은 포스트맨들 통해 "refresh"키와 "access"키를 확인 후 붙여넣어주면 확인 가능하다.

위 사진처럼 POST로 users/api/token/ 을 send 해주면 된다. Body 에서 raw, JSON 바꿔주고, 가입되어있는 username과 password를 입력하면 token key값이 나온다.

signature 부분에 settings.py의 SECRET_KEY를 붙여넣어주면 valid로 바뀐다.
secret_key는 나중에 꼭 숨겨둬야 한다.
name= : test코드 혹은 template에서 사용
name없을 경우 : /api/todo/
name있을 셩우 : {{ url todo }}
get은 1개만 받고 filter는 여러개를 받을 수 있음
get은 object 가져오고
filter는 queryset 가져옴. queryset은 object의 집합이다.
get : "<Todo:3>"
filter : ["<Todo:3>"]
팀프로젝트 진행 시
1. python 버전 맞추기
2. 정렬 extension 맞추기
3. 사전계획(API, ERD, model 대략짜기) - 역할 분담 쉬워짐
'AI 본 교육 > AI 7주차' 카테고리의 다른 글
장고(Django) AbstractBaseUser의 models.py / admin.py (0) | 2023.09.27 |
---|---|
이미지첨부 form-data (0) | 2023.09.22 |
백엔드(Django) + 프론트엔드(js, html) user기능 연결 (0) | 2023.09.21 |
장고(Django) serializer / class view / CORS (0) | 2023.09.19 |
장고(Django) HTTP, 웹, DRF (0) | 2023.09.18 |