@Async를 이용하여 이메일 전송을 기다리지 않고 페이지 이동

‍bng4535·2023년 3월 29일
0

문제 상황

  • 사용자가 비밀번호를 잊어버렸을 때 이메일에 임시 암호를 전송하는 기능을 구현하였다. 구글 이메일을 이용하였는데, 이메일 전송에 1~2초 정도 긴 시간이 소요되었다.

문제점

  • 보통 이메일이 바로 도착하지 않더라도 메일 전송을 요청한 후 로그인 페이지로 바로 이동하는 것이 사용자 경험을 더 높인다.

해결

  • @Async 어노테이션을 활용하면 메서드를 비동기로 처리할 수 있다.
  • Spring어플리케이션이 시작되는 메서드에 @EnableAsync를 추가하고 비동기적으로 처리할 메서드에 @Async를 추가한다.

결과

https://github.com/hanbonghun/spring-QA-board/commit/963f93cd436e31de1e82d95dc9736cd6a7586a84

후기

  • 단순히 어떤 기능이 동작되기만 한다고 끝이 아닌 거 같다. 세부적인 처리 과정을 고려해야 사용자가 웹사이트를 쾌적하게 이용할 수 있으므로 여러 상황을 고려하고 코드를 작성하자.
profile
공부 기록

0개의 댓글