인프런 커뮤니티 질문&답변

신동훈님의 프로필 이미지
신동훈

작성한 질문수

스프링부트 시큐리티 & JWT 강의

스프링부트 시큐리티 17강 - JWT 구조 이해

JWT를 굳이 사용하는 이유가 뭘까요?

작성

·

2.5K

5

무료로 이렇게 좋은 강의영상 올려주셔서 정말 감사합니다. 너무 많은 도움이 되네요.
전부터 JWT 토큰을 왜 사용하는지에 대해서 의문을 가지고 있었는데, 명확한 답이 나오지 않아 질문드립니다.
세션에 대한 문제점 (서버 확장시, 스티키 세션을 사용하거나, 세션 클러스터링을 해야하는 문제)를 해결하기 위해 사용된다는 것은 알겠습니다만, JWT를 사용하는 예제들 보면 리프레시토큰도 함께 사용하여, 어세스토큰을 제발급하는 용도로 사용하더군요.
그럼 리프레시토큰은 결국 세션과 마찬가지로 DB(혹은 레디스 등의 메모리 DB)등에 저장이 되어 관리되어질텐데, 그렇게 된다면 세션과 결국 별 차이점이 없지 않을까요?
이 문제를 가지고, 여러 사람들에게 물어보았으나, 딱히 세션에 비해 가지는 장점이 없어지는 것 같더라고요.
물론 리프레시토큰을 사용하지 않고 AccessToken만 사용하는 경우에는 장점이 있다는 것을 알겠습니다.
 
1. 정리하자면, RefreshToken을 사용하는 경우 세션에 비해 가지는 장점이 있는가?
2. 없다면 굳이 JWT는 왜 사용하는가? 입니다

답변 1

1

최주호님의 프로필 이미지
최주호
지식공유자

정말 좋은 질문입니다!

 

리플래시 토큰을 사용하면 결국 DB접근이 일어나니 별로 이점이 없을 것 같아요.

그래도 리플래시 토큰을 매번 조회하는 것이 아니기 때문에 엑세스 토큰 만료시에만 DB접근이 일어나는 것이긴 하니까...조금 I/O가 줄긴 하겠죠.

리플래시 토큰 없이 사용하는 것이 가장 Stateless 다운 보안 방식이라고 생각해요.

 

앱에서 서버쪽 요청할 때 브라우저를 사용하는 것이 아니기 때문에 쿠키 접근을 위해 추가적인 설정을 하고 하는 귀찮음 또한 Authorization 헤더에 JWT토큰을 가지고 통신하게 되면 일관성있는 API서버를 만들 수 있어서 좋은 점도 있겠구요.

 

더 자세한 건 아래 내용 한번 읽어보세요. 머라고 답을 내려드리지는 못할것 같습니다.

그래도 충분히 고민해볼 질문이네요 ㅎ

 

 

아래 내용 참고 해보세요

https://blog.outsider.ne.kr/1160

신동훈님의 프로필 이미지
신동훈
질문자

아 진짜 너무 빠른 답변 정말 감사합니다 ㅠㅠㅠㅠ

유료 강의 내주시면 안될까요 ㅠㅠㅠ 제가 돈쭐내드리겠습니다!!!

정말 정말 감사드립니다!

최주호님의 프로필 이미지
최주호
지식공유자

네 ㅎ

신동훈님의 프로필 이미지
신동훈

작성한 질문수

질문하기