
🌿 Spring
메일 발송 - 스케쥴링 간 문제 해결 with Async
스케쥴링의 결과물인 경매 작품의 상태 변화에 따라 사용자에게 메일을 발송하는 작업을 테스트했을 때 발생하는 문제를 위 사진으로 간략하게 나타내었다. (위 사진의 결과는 메일 발송 메소드를 Thread.sleep(500)으로 처리한 결과이다.) 위 사진에서처럼 160개의 상태 변화가 필요한 작품들에 대해 스케쥴링을 적용하였고, 한 작품당 한 사람에게 메일을 보낸다고 가정했을 때 100개의 작품에 스케쥴링을 적용한 후 메일을 보내면 50초의 시간이 걸리고 그 시간 동안 다른 작업(그림의 상태 변경)은 Block되는 현상을 관찰할 수 있었다. 서비스 장애이지 않을 수 없다. 이러한 장애를 비동기를 이용하여 해결해보았다. 1) 코드 변경점 1-1) Application @Slf4j @EnableSchedulin..