이론적인 부분에서는 사실 크게 어려운 부분이 없었다. 하지만 Spring 6버젼부터 기존과 너무 상이해진 문법때문에 어려움이 많았다.
더구나 한글 문서또한 참고할게 없어 찾는데에 많은 어려움이 있었다.
이론적인 부분은 메타코딩의 Spring security 특강을, 코드는
위 두 코드를 참고하였다
초기 HTTP는 단순 HTML파일만을 교환하기 위한 요청이였으며, 위같은 특성때문에 빠르게 파일교환이 가능했다
하지만 WEB이 발전함에 따라 상태를 유지할 필요가 생기게되었다

위같은 기능을 위하여, HTTP요청시 Cookie를 함께 전송하며 상태에 대한 정보를 전송하게 되었다
Cookie를 통해 정보를 전송하는 기능은 헤더에 다량의 정보를 전송하게 된다Cookie는 보통 4kb의 크기 제한에, 개수또한 20개로 제한(브라우저에 따라 상이)이 되어있다Cookie는 Client측에 저장되는 데이터이다Client가 적합한 인증정보를 Server로 전송하였을시, Server는 Session-ID가 담긴 쿠키를 사용자에게 전송하며, Server에서 Session 정보를 담고있다
Java 기반의 WAS들은 JSESSIONID라는 Cookie 정보를 전송한다
이러한 Session 정보가 WAS에 저장된다.
하지만 Clustering을 통해 scale-out을 진행할때 모든 Server에 Session정보를 저장해야한다
또한 redis, Oracle Coherence와 같은 기술들을 통하여 별도의 Scale-out가능한 Session Storage를 두는 것 또한 가능하다
Scale-up된 서버에서 Session을 유지시키기 위한 여러가지 기술들이 들어간다primary-server, secondary-server와 같은 기술등을 통하여 복잡한 로직이 수행된다위 방법들의 대안으로 token방식또한 존재한다
인증정보를 확인 후, 사용자 정보를 담은(하지만 민감한 정보는 담지 않는다) 토큰을 발행하여 사용한다
위 방법들에 비해 scale-up되는 환경에서 더욱 간단한 인증절차를 통해 사용이 가능하다