## 개인기록용
# Spring Boot JWT Tutorial 학습
https://github.com/jennie267/jwt-tutorial
> [SpringBoot] JWT Tutorial 1 - JWT
[SpringBoot] JWT Tutorial 2 - 프로젝트 생성
[SpringBoot] JWT Tutorial 3 - Security 설정
[SpringBoot] JWT Tutorial 4 - Data 설정
[SpringBoot] JWT Tutorial 5 - JWT 코드, Security 설정 추가
[SpringBoot] JWT Tutorial 6 - DTO, Repository, 로그인
[SpringBoot] JWT Tutorial 7 - 회원가입, 권한검증
JWT란?
JSON 객체를 사용해서 토큰 자체에 정보들을 저장하고 있는 Web Token. RFC7519 웹 표준으로 지정되어있다.
JWT는 Header, Payload, Signature 3개의 부분으로 구성되어져 있음
Header - Signature를 해싱하기 위한 알고리즘 정보들이 담겨있음
Payload - 서버와 클라이언트가 주고받는, 시스템에서 실제로 사용될 정보에 대한 내용들이 담겨있음
Signature - 토큰의 유효성 검증을 위한 문자열
JWT 장점
- 중앙의 인증서버, 데이터 스토어에 대한 의존성 없음, 시스템 수평 확장 유리
- Base64 URL Safe Encoding을 이용하기 때문에 URL, Cookie, Header 모두 사용 가능
JWT 단점
- Payload에 저장하는 정보가 많아지면 네트워크 사용량 증가, 데이터 설계 고려 필요
- 토큰이 클라이언트에 저장, 서버에서 클라이언트의 토큰을 조작할 수 없음
Reference
https://github.com/SilverNine/spring-boot-jwt-tutorial