개요프로젝트에서 WebSocket을 통해 채팅방을 성공적으로 구현하였다. 하지만 요구사항은 모임에 참여한 사람만 채팅방의 참여가 가능해야하지만, 현재는 채팅방은 누구나 WebSocket을 연결하여 채팅을 송신하거나 수신할 수 있는 상태이다. WebSocket 연결 시, 연결에 대한 인증/인가 로직은 어디다 두어야할지 고민한 흔적을 적어보려 한다. WebSocket 연결 흐름1. WebSocket 연결WebSocket 연결 시, HTTP 연결이 한 번 일어나며 HandShake 과정도 일어난다. 이 과정이 잘 통과되면, 다른 한 쪽의 연결이 끊기기 전까지 양방향 통신이 가능하다 2. Stomp 연결해당 프로젝트에서 Stomp를 이용하여 채팅방을 고도화 하였다. Stomp는 WebSocket 위에서 동..
개요AuthenticationEntryPoint를 통해 인증되지 않은 사용자가 접근할 때에 대한 예외 처리를 하는 것이 목적이었다. 하지만 인증 예외 처리가 일어나지 말아야 할 상황에서도 인증 에러 메시지가 호출 되었다. 해당 과정에서 있었던 트러블 슈팅을 기록하려 한다. 코드CustomAuthenticationEntryPoint@Component@Slf4jpublic class CustomAuthenticationEntryPoint implements AuthenticationEntryPoint { private final ObjectMapper mapper = new ObjectMapper(); private String toJson(ErrorResponse response) thro..
개요프로젝트가 한창이다. 프로젝트하며, 테스트 환경에서 JPA와 관련하여 발생한 이슈에 대해 글로 작성하면 좋을 것 같아 정리하였다. 이슈 1. 더티 체킹 (Dirty Checking)바로 코드로 간다.다음은 예제 코드로 시나리오는 다음과 같다.user 정보를 더티 체킹을 통해 업데이트 한다업데이트가 잘 되었는지 검증한다.@SpringBootTest@AutoConfigureMockMvcpublic class ExampleTest extends TestContainerSupport { @Autowired private UserRepository userRepository; @Autowired private TokenProvider tokenProvider; @Autowired ..