컬쥐네 다락방

JWT와 OAuth 차이점 본문

웹 개발/Java,Spring

JWT와 OAuth 차이점

코딩하는 갱얼쥐 2021. 7. 5. 22:53

면접 대비를 위해 공부하던 중 JWT와 OAuth 를 비교하는 질문을 봤다.

찾아보니 이 둘을 비교하는 것은 흔한 질문이지만, 좋은 접근은 아니다.

 

JWT가 과일이라면 OAuth는 과일을 담는 상자라고 볼 수 있다. 

JWT는 Token의 한 형식이고, OAuth는 하나의 Framework이다.

 

여기서 OAuth가 Framework인 이유는

1. 토큰을 요청할 때 사용할 수 있어야하는 요청 및 응답의 순서와 형식만 있다.

2. 각기 다른 시나리오에서 어떤 방식으로 권한 부여 유형을 사용할지 정한다.

 

그리고 JWT는 이러한 Framework에서 발생하는 산출물로 볼 수 있다.

 

물론 Auth Framework를 통해 나온 OAuth Bearer token과 단순한 JWT 토큰은 차이가 있다.

 

OAuth Token은 어떤 사용자의 정보와 같은 중요한 정보가 있는 토큰이 아니다. 그래서 이 토큰을 사용하는 사용자는 이 토큰이 가지고 있는 정보에 대해서 아는 바가 전혀 없다. 

OAuth Token이 가지고 있는 정보는 일련의 랜덤한 문자열인데, 이는 일종의 Pointer로 OAuth Framework로 들어가서 해당 정보가 저장되어 있는 주소를 확인할 수 있는 인식표이다.

물론 이때 토큰이 JWT 유형의 토큰이 될 수도 있다.! 

 

반대로 JWT 토큰은 명확한 정보를 가지고 있는 토큰이다. 

토큰의 크기는 300 ~ 500 byte. 혹은 가지고 있는 속성 정보에 따라 더 커지기도 한다.

이때문에 데이터베이스에서 사용자 정보를 조작하더라도 토큰에 직접 적용할 수 없는 문제점이 있고, 토큰이 커지면서 주고 받는 데이터 트래픽 크기에 영향을 미칠 수 있는 단점이 있다.

 

예전에 JWT 구현하기 위해 공부했던 내용 :

 

Spring Security 심화 공부 - JWT 회원가입, 로그인 기능

Spring Security 최근 Spring Security를 사용해 회원 가입과 로그인을 구현하는 것을 공부했었는데, 이 과정에서 JWT를 이용해 사용자를 인증하는 방법에 대해 공부했다. 그땐 예제를 가지고 로그인과 회

lewis-kku.tistory.com

 

'웹 개발 > Java,Spring' 카테고리의 다른 글

getById()와 findById()의 차이점  (0) 2021.09.03
Flyway를 이용한 DB 초기화  (0) 2021.08.07
RESTful API 란?  (0) 2021.06.29
Spring MVC 란?  (0) 2021.06.14
컴파일 에러 VS 런타임 에러  (0) 2021.06.04
Comments