Mono나 Flux의 SwitchIfEmpty 함수를 이용하여 Exception 처리 시 항상 호출이 되었던 이슈를 확인했습니다.
이슈
해당 계정은 활성화가 된 계정임에도 아래와 같이 항상 CustomException 클래스의 생성자가 실행되었습니다.

정상적인 계정이기에 예외가 발생하지 않는 것을 확인할 수 있습니다.

원인
이는 switchIfEmpty가 미리 실행시켜 값을 만들어 놓기 때문에 발생하는 문제인데, 실제로 안에 실행되는 메서드가 굳이 실행되지 않아도 된다면 lazy evaluation 전략을 사용하여 defer나 fromSupplier를 이용하여 해결할 수 있습니다.
해결
해당 로직은 비용이 많이 크지는 않지만, 굳이 실행이 안되도 되는 메서드로 판단했기에 defer을 사용했습니다.

실행 후 정상적인 계정이면 해당 객체가 생성되지 않게 됩니다.
