## 어떤 부분을 리팩터링하려 하나요? > 디스코드 알림이 업무 트랜잭션 안에서 동기로 전송되어, 디스코드 장애가 성적 제출·멘토 신청·관리자 검수 실패로 이어집니다. ### AS-IS - 검수 요청 알림과 검수 결과 표시가 트랜잭션 안에서 동기로 호출되고, 실패하면 예외가 전파되어 롤백된다 (500) - 디스코드 응답을 기다리는 동안 DB 커넥션을 점유한다 - 커밋 전에 전송되어 롤백된 건의 알림이 남을 수 있다 (신고 알림 포함) ### TO-BE - 커밋 이후 비동기로 전송한다 - 전송 실패는 로그만 남기고 업무 흐름에 영향을 주지 않는다 ## 작업 상세 내용 - [ ] 알림 호출을 이벤트 발행과 커밋 이후 비동기 리스너로 전환 - [ ] 검수 요청 알림의 message id 저장을 리스너로 이동 - [ ] 검수 결과 표시가 실패해도 예외를 전파하지 않도록 변경 ## 참고할만한 자료(선택) - #840, #841 - 커밋 직후 서버가 죽거나 디스코드 장애가 나면 알림이 유실될 수 있음. 유실이 문제가 되면 아웃박스를 별도로 검토
Activity