문제 상황

Session 방식의 다양한 단점을 보완하고자 JWT를 쓰는 것인데 코드상으론 Security Session 을 사용

사용 이유

결론부터 말하자면 단순히 편하게 권한 처리를 하기 위해서다.

원래 JWT를 사용하게 된다면 권한에 따라 어떤 Controller의 메서드들에 접근하게 할 것인지 API 범위를 정해야 한다.

하지만 이 권한 처리가 번거로우니 “권한 처리” 만을 시큐리티의 도움을 받고자 한다.

여기서 기존 세션 방식의 문제를 대입해보자면

  1. 다중 서버일 때 동기화 문제 : 서버가 정말 많이 나눠져 있을 경우에는 동기화에 어려움이 있을 수 있는데 해당 프로젝트는 단일 서버이기도 하고, 배움의 의미로 만드는 프로젝트이므로 프로젝트 의의에는 좋은 선택인 것 같다.
  2. 쿠키의 XSS 공격 : 쿠키를 사용하지 않고, 암호화된 Token 을 사용하니 괜찮다.
  3. 세션을 관리하는 서버의 부담 : 이것이 이 방식의 단점이다.