로그인 기능을 만들려고 찾아보는데 쿠키, 세션, 토큰(JWT) 세 개가 계속 같이 나와서 헷갈립니다. 셋 다 로그인 상태 유지하는 거 아닌가 싶은데 뭐가 다른 거죠?
제가 이해한 걸로는, 세션은 서버가 상태를 들고 있고 세션 ID만 쿠키로 주고받는 거고(stateful), 토큰은 서명된 문자열을 클라이언트가 갖고 있다가 요청마다 헤더에 실어 보내는 거(stateless) 같은데 맞나요?
쿠키는 또 세션이랑 뭐가 다른 건지, 그리고 요즘 SPA나 앱은 왜 토큰 방식을 많이 쓰는지 정리해서 설명해주시면 감사하겠습니다.