이전에는 세션 방식(서버 인증 방식) 을 이용해서 로그인 기능을 구현했지만, 최근엔 JWT라는 토큰 기반의 인증 방식이 나오면서 웹과 모바일에서 대부분의 인증이 JWT로 구현되고 있다. JWT(Json Web Token)는 클레임 토큰 기반 인증 방식으로 인증에 필요한 정보를 암호화시켜 토큰 body에 저장함으로써 클라이언트가 증명서처럼 사용한다. 세션과 비교하여 JWT JWT는 세션과 비교하였을 때 무상태(stateless)와 확장성(scalability)의 이점이 있다. 토큰은 클라이언트에서 저장하기 때문에 서버측에서는 stateless하며, 요청이 왔을 때 서명이 옳바른지만 확인하면 되므로 비저장의 이점을 지닌다. 또한 msa와 같은 서버가 여러대로 분리되어 사용되고 있다면 어떤 유저가 로그인 했을때 그 유저가 처음 로그인했던 서버에만 요청을 보내야 하기 때문에 확장성에 제약이 있지만 토큰방식을 사용한다면 어떤 서버로 요청이 오더라도 관계없이 인증할 수 있
Token 토큰 기반 인증은 모던 웹서비스에서 많이 사용되고 있다. API를 사용하는 웹서비스 개발한다면, 토큰을 사용하여 유저들의 인증 작업을 처리하는 것이 가장 좋다. 토큰 기반 인증 시스템을 선택하는 이유? 1. 서버의 확장성이 높다. Stateful 서버 클라이언트에게서 요청을 받을 때 마다 클라이언트의 상태를 계속해서 유지하고, 이 정보를 서비스 제공에 이용한다. 예로 세션을 유지하는 웹서버가 있다. 유저가 로그인을 하면 세션에 로그인이 되었다고 저장을 해두고, 서비스를 제공 할 때에 그 데이터를 사용한다. 이 세션은 서버컴퓨터의 메모리에 담을 때도 있고, DB시스템에 담을 때도 있다. Stateless 서버 클라이언트의 상태를 유지 하지 않는다. 상태정보를 저장하지 않으면, 서버는 클라이언트측에서 들어오는 요청만으로만 작업을 처리한다. 클라이언트와 서버의 연결고리가 없기 때문에 서버의 확장성(Sca