오늘 진짜 항해99의 1DAY가 시작되었다
사실상 공부는 10월 말쯤부터 시작해서 이제 2주차는 된 것 같은데
죽음의 주 100시간은 오늘부터 시작이다 .. ❗️
벌써 힘든 것 같지만 잘 버텨보겠습미다
항해99 시작주차 1주차 항해일지 <1day - TIL>
📍Today I Learn
배운 것 :
- 미니프로젝트 계획서(S.A) 작성하기 (With.wireFrame)
- JWT
항해99의 첫 시작 ! 미니 프로젝트
- 프로젝트 시작 전, 먼저 프로젝트 진행 계획서를 작성한다.
- 프로젝트 계획서(Starting Assignment)는 아래와 같은 내용으로 작성한다.
- 프로젝트 주제
- 페이지별 와이어 프레임
- API 명세
- 역할분담/체크리스트
- 우리 조는 OTT 의 숨겨진 기똥찬 컨텐츠를 추천해준다는 컨셉으로, OTT-Planet이라는 조 이름을 지었다 💫
![](https://velog.velcdn.com/images/kyuu_ng/post/5319f3f0-ebde-44d8-abeb-a3c962c65e24/image.png)
![업로드중..]()
- 처음으로 작성해 본 S.A 계획서 첫 페이지! 처음이라 꽤 오랜 시간이 걸렸다.
다음엔 조금 더 빠르게 쓸 수 있지 않을까? 생각하고, 와이어 프레임 다루는 법은 시간 날때 틈틈히 배워봐야겠다고 생각해본다 😅
🔑 파이썬 회원가입/로그인 JWT 세션
📌 JWT란 무엇인가?
- JSon Web TOken의 약자로, 유저를 인증하고 식별하기 위한 토큰 기반의 인증이다.
- 토큰은 세션과 달리 서버에 저장되는게 아니라 클라이언트에 저장이 되어 세션보다는 서버에 부담을 덜 수 있다는 장점이 있다.
1️⃣. JWT를 통한 인증절차
(1) 클라이언트 사용자가 아이디,패스워드를 통해 웹 서비스 인증 요청
(2) 서버에 서명된 JWT를 생성하여 클라이언트에 응답으로 토큰을 전달해줌
(3) 클라이언트가 서버에 데이터를 추가적으로 요구할때 JWT를 HTTP header에 첨부함
(4) 서버에서 클라이언트로 온 JWT를 검증
2️⃣. JWT의 구조
- Header : JWT에서 사용할 타입과 해시 알고리즘의 종류
- Payload : 서버에서 첨부한 사용자 권한 정보와 데이터
- Signature : 전자서명
3️⃣. 기존의 인증/인가 방식과 다른점?
- 기존의 서버 기반 인증 시스템에서는, 서버측에서 유저들의 정보를 세션에 기억하고 있어야함.
- 이 세션을 유지하기 위해서는 여러가지 방식으로 메모리/디스크/데이터베이스에 이를 담아 서버가 그 정보에 대해서 관리가 필요
- 토큰 기반 시스템은 stateless하여 유저의 인정 정보를 서버나 세션에 담아두지 않기 때문에 인증 정보를 서버에 담아둠으로서 발생하는 많은 문제가 해소됨
4️⃣ 클레임 토큰 기반
- JWT를 사용하는 가장 큰 이유는 클레임 토큰 기반 인증이 주는 편리함이다.
- 일반 토큰 기반 인증은 토큰을 검증시 관련 정보를 서버에 저장해두어 항상 DB에 접속해야하고, 저장소에 저장해둔 session ID를 찾아서 검증하는 절차를 가져 다소 번거로웠다.
- 하지만 클레임 토큰 기반의 JWT는 사용자 인증에 필요한 모든 정보를 토큰에 담고 있기 때문에 별도의 인증 저장소가 필요하지않다.