개발자

JWT vs 세션 사용

1월 10일조회 2,226

안녕하세요, 프로젝트를 진행하던 중에 JWT와 세션 사용에 대한 선택을 결정해야 했는데요. 일단, 클라이언트의 상태를 stateless하게 관리하고 서버의 부하를 줄이기 위한 선택으로 jwt를 도입하게 되었습니다. 근데 문득 궁금점이 생기더라구요. 1. jwt 토큰의 refresh 토큰 관리, logout 등의 기능을 위해 redis를 도입했는데, 세션도 서버의 메모리가 아니라 redis를 사용하게 되면 결국 서버의 부하를 줄여줄 수 있으니, jwt를 굳이 도입하는 이유가 있을까요? 1-1. 스스로 고민해본 결과로는 결국 정보를 jwt 토큰에 저장하느냐, 세션을 사용해서 세션의 정보를 DB에 저장하느냐 그 차이인 것 같은데 맞는지 궁금합니다. 그래서, 결국 redis를 사용하더라도 redis 자체의 부하를 줄여주지 못하는 건가 싶습니다.

이 질문이 도움이 되었나요?
'추천해요' 버튼을 누르면 좋은 질문이 더 많은 사람에게 노출될 수 있어요. '보충이 필요해요' 버튼을 누르면 질문자에게 질문 내용 보충을 요청하는 알림이 가요.
profile picture
익명님의 질문

답변 3

인기 답변

김용욱님의 프로필 사진

JWT를 Redis에 저장해서 요청마다 로그아웃여부 등을 확인한다면, 결국 세션 저장소로 Redis를 사용하는 것과 동일합니다. 특히 Redis 장애시 전 시스템에 장애가 발생하도록 구현했다면 JWT의 이점이 없어지고, 또 상대적으로 큰 JWT를 클라이언트와 주고 받게되니 더 비효율적이라고 할 수 있지요. JWT를 사용하면서 로그아웃, 자동 타임아웃, 강제 로그아웃 등을 구현하는 경우에 JWT의 장점이 유지되도록 비동기로 구현하거나 Redis 장애시 영향을 최소화하기 위해 타임아웃이나 서킷 브레이커 등을 적용하는게 좋습니다.

김용욱님의 프로필 사진

김용욱

삼성 SDS 소프트웨어 아키텍트2월 19일

관련해서 블로그 글을 작성해봤습니다. 부족하나마 도움이 되었으면 좋겠습니다. 클라우드의 세션 - ③ 세션을 토큰으로 대체하기, JWT를 Redis에 넣는다고? https://m.blog.naver.com/wharup/223357659971

profile picture

익명

작성자

2월 19일

좋은 글 잘봤습니다 ! 감사합니다 :)

이상선님의 프로필 사진

https://medium.com/@sunyi233/id-token%EA%B3%BC-access-token-d285e647ee23

무지개님의 프로필 사진

JWT 가 무중단 배포에도 유리하긴 합니다. 하지만 둘다 장단점이 있어서 비스니스에 특성에 따라 적합한 아키텍처 모델을 판단할 즐 알아야 합니다

지금 가입하면 모든 질문의 답변을 볼 수 있어요!

현직자들의 명쾌한 답변을 얻을 수 있어요.

또는

이미 회원이신가요?

목록으로
키워드로 질문 모아보기

실무, 커리어 고민이 있다면

새로운 질문 올리기

지금 가입하면 모든 질문의 답변을 볼 수 있어요!