JWT에 대해서
우리는 지금까지 로그인등 회원의 대한 정보를 요구할 때 JWT 토큰을 사용하였다.
JWT란 사용자(클라이언트)가 서버로 로그인을 할 때 서버로 요청을 보내면 서버에서 DB정보를 기반으로 확인을 하고 확인이 되었다면 token을 사용자에게 발급해주고, 사용자는 다음부터 서버에 정보요청을 할 때 마다 앞서 검증을 받은 JWT토큰으로 데이터를 주고 받을 수 있게 된다. 이러한 JWT토큰 클레임 토큰 기반의 인증 방식이다.
일반 토큰 기반 vs 클레임 토큰 기반
JWT를 사용하는 가장 큰 이유는 클레임(Claim) 토큰 기반 인증이 주는 편리함이 가장 크다고 할 수 있다. 과연 일반 토큰 기반과 클레임 토큰 기반 인증의 차이는 무엇일까?
기존에 주로 사용하던 일반 토큰 기반 인증은 토큰을 검증할 때 필요한 관련 정보들을 서버에 저장해두고 있었기 때문에 항상 DB에 접근해야만 했었다. 또한 session방식 또한 저장소에 저장해두었던 session ID를 찾아와 검증하는 절차를 가져 다소 번거롭게 느껴지곤 한다.
하지만 클레임 토큰 기반으로 이루어진 JWT(Json Web Token)는 사용자 인증에 필요한 모든 정보를 토큰 자체에 담고 있기 때문에 별도의 인증 저장소가 필요없다. 분산 마이크로 서비스 환경에서 중앙 집중식 인증 서버와 데이터베이스에 의존하지 않는 쉬운 인증을 제공하여 일반 토큰 기반 인증에 비해 편리하다고 말할 수 있다.
SQL 형식의 데이터베이스 vs NoSQL 형식의 데이터베이스
SQL형식의 데이터베이스 와 NOSQL의 데이터베이스가 있다
SQL 데이터베이스는 MySQL이 있고, 형식적으로 지정된 데이터들을 저장할 때 유용하다.
NoSQL에는 비형식적으로 저장되는 데이터들을 보관할 때 유용하다.
보통 JWT를 사용하는 곳은 NoSQL을 주로 사용하는 공간에서 데이터베이스를 저장할 때 사용하고
일반 SQL데이터베이스는 세션으로 저장을 한다.
'코딩 > TIL' 카테고리의 다른 글
[TIL] Websocket 멀티서버 구현 (0) | 2024.07.16 |
---|---|
[TIL] TCP서버 제작 개인 과제 진행 (0) | 2024.07.08 |
[TIL] js server 유니티 연동 (1) | 2024.07.03 |
[TIL] TCP 서버의 이해(핸들러의 역할) (0) | 2024.06.27 |
[TIL] 게임서버의 이동 연출 (선형보간, 외삽법) (0) | 2024.06.27 |