(❗️TODO)이메일 발송 (SMTP)

박채은·2023년 1월 2일
0

Spring

목록 보기
21/35

과정

  1. 클라이언트 > Controller Post 요청 받음
  2. Controller > Service의 회원가입 로직
  3. Service -> Repository에 회원 정보 등록
    3-1. 회원 등록 이벤트 발생
    3-2. 해당 이벤트를 받아, 메일 전송 로직 실행
    3-3. 예외 발생 시, 예외 처리 로직 실행
  4. 메일 전송 또는 회원 등록 실패

throws

  • try-catch : exception이 발생할 여지가 있는 곳에 작성하여, 예외 처리를 한다.
  • throws Exception : 해당 메서드 내에서 예외가 발생하면, 자신이 처리하는 것이 아니고 자신을 호출한 상위 메서드로 예외를 던진다.

InterruptedException

InterruptedException은 쓰레드가 waiting, sleeping 된 상태에서 발생할 수 있다.

어떤 쓰레드가 sleep 또는 wait 상태에서 block되어 있다면, 해당 쓰레드는 정상적인 수행을 하지 못하고 계속 runnable 상태가 끝나기를 기다릴 것이다.(deadlock에 빠짐)
따라서 다음에 수행되어야 할 쓰레드도 영원히 기다리게 된다.

이때 JVM은 block된 쓰레드를 interrupt 한다. interrupt된 쓰레드는 동작을 중지하고 InterruptedException를 발생시킨다.

EmailSendable

  • 이메일 전송을 위한 기본 기능을 제공하는 최상위 인터페이스

  • 구현체: MockEmailSendable, MockExceptionEmailSendable, SimpleEmailSendable, TemplateEmailSendable

  • MockEmailSendable

  • MockExceptionEmailSendable

  • SimpleEmailSendable: 보낸 사람, 받는 사람, 참조, 제목 및 텍스트를 포함하는 메서드를 만드는 것

  • TemplateEmailSendable


[참고]
https://cookiee.tistory.com/508
https://yeon-kr.tistory.com/199
https://velog.io/@hiy7030/Spring-mailEventListener
https://velog.io/@hiy7030/Spring-mailEventListener-2
https://tecoble.techcourse.co.kr/post/2021-07-31-email-async-event/
https://ivvve.github.io/2019/06/02/java/Spring/event-listener-2/
https://atoz-develop.tistory.com/entry/Spring-ApplicationEventPublisher%EB%A5%BC-%EC%9D%B4%EC%9A%A9%ED%95%9C-%EC%9D%B4%EB%B2%A4%ED%8A%B8-%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8D
https://gudwnsgur.tistory.com/19

0개의 댓글