사건 발달 현재 어플리케이션은 사용자가 웹소켓 서버를 통해 전송하는 모든 메시지와 관련 정보를 데이터베이스(DB)에 저장하는 방식으로 동작하고 있었다. 이로 인해 사용자가 메시지를 전송할 때마다 매번 사용자의 정보를 DB에서 조회하거나 해당 사용자의 정보를 메시지에 포함하여 전송해야 하는 번거로움이 있었다. 따라서 서버의 최적화와 보안상의 이유로 더 효율적인 방법을 고려해야만 했다. 이에 따라, 사용자의 정보를 SecurityContextHolder에 저장된 Principal 객체에 담아 Websocket의 세션(session)에 저장하기로 결정하였다. 그러나 Websocket의 세션 객체에는 setPrincipal과 같은 메서드가 없어 Principal 객체를 세션에 저장하기 위해서는 TCP 3-way..