[트러블 슈팅] 멀티 스레드 테스트 시 초기 데이터 오류(feat. 트랜잭션 격리 수준)
·
이슈 & 트러블 슈팅
0. 들어가기 전프로젝트를 진행하다가 멀티 스레드를 통해 동시 요청을 테스트하는 도중에, 초기 데이터를 설정하는 부분에서 문제가 발생했습니다.문제 상황과 원인, 해결 방법을 알아보도록 하겠습니다.1. 문제 상황프로젝트에서 사용자의 중복 요청을 방지하는 로직을 구현해야 했습니다.그래서 중복 요청을 테스트하기 위해 멀티 스레드 테스트를 다음과 같이 작성했습니다.@Test@DisplayName("1명의 사용자가 동선 생성 요청을 여러번 보내는 경우 1번만 성공하고 예외가 발생한다.")@Transactionalvoid throws_multiple_request() throws InterruptedException { ... final ExecutorService executorService ..