MailSender

🌿 Spring

메일 발송 - 스케쥴링 간 문제 해결 with Async

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

🌿 Spring

사용자에게 메일 보내기 with JavaMailSender

피카소 경매 사이트는 사용자가 등록한 경매 작품의 상태값이 변경됨에 따라 사용자에게 메일을 보내는 서비스를 제공한다. 메일의 종류는 대략 9~10가지인데, 대표적으로는 경매 등록 성공 메일 경매 등록 미승인 메일 경매 작품 낙찰 메일 경매 작품 유찰 메일 내가 입찰한 경매 작품의 상황에 대한 메일 등등이 있다... 종류가 많다 보니 위 사진과 같은 화면처럼 메일을 발송하려면 HTML 템플릿화하여 관리해야 했다. 코드를 보면 알 수 있듯이 종류가 너무 많아 모두 구현하지는 못했다... ㅠ 메일 발송은 스케쥴링과 매우 밀접한 관련이 있는데 스케쥴링에 대해서는 이후에 따로 포스팅 할 예정이다. 아래 Github PR에 자세한 코드가 나와있다. [feat] 메일 발송기능 구현 완료 by donsonioc2010..