비지니스 로직을 하다 보면 외부 API 호출을 할 때가 많은데, 속도를 위해 비동기 처리를 하곤 합니다. API로 구현된 비동기 처리는 예제가 많았지만, 서비스로 구현된 비동기 처리는 예제를 찾기 힘들었습니다. 아래는 메인 로직 후 이메일을 보내는 비동기 후처리 로직을 분리하고 테스트한 예제입니다. 결론 Reactor 객체를 메서드의 반환 값으로 받습니다. 테스트할 때는 block() 을 걸어 동기 처리를 합니다. 비동기 이메일 전송 메소드 Before request 메서드에서 request 객체를 만들고 비동기 발송까지 모두 하고 있습니다. 지금은 후처리 로직이 로깅뿐이지만, 로직이 들어가는 경우 메서드가 복잡해집니다. 비지니스 로직의 메서드인 sendEmail에서는 발송 결과를 알지 못합니다. // ..