Session vs JWT

devkwon·2024년 3월 7일
0

AOuth2.0을 이번에 도입하는 과정에서 어떤 로그인 과정이 나을까 고민을 하던 도중에 session과 jwt의 차이점을 잘 알아볼 수 있었다.

Session

최초 로그인 시 서버에서 http header에 sessionID를 담아서 보낸다. 이후 클라이언트에서 요청을 하면, 서버에서는 sessionID를 보고 로그인이 되어있는지 확인한다.

쉽게 구현할 수 있다는 장점이 있지만, 클라이언트의 수가 많아 세션에서 저장해야하는 정보가 많다면 서버에 많은 부하가 생긴다. 이를 로드밸런싱으로 해결할 수 있지만 비용이 많이 들고 다른 서버로 간 경우 또 한 번 로그인을 해야하는 경우가 발생한다.

JWT

최초 로그인 시 서버에서 필요한 정보가 담겨있는 access token, refresh token을 담아서 응답으로 보내준다. 이후 클라이언트에서 요청을 하면 access token에 있는 secret key를 보고 로그인이 되어있는지 확인한다.

구현이 session에 비해 복잡하지만, 서버에 부하가 적다. payload에 필요한 값을 저장해서 읽는 방식이기 때문에 payload의 크기가 커질 수록 api 통신이 무거워진다.

0개의 댓글