inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[스프링] 트랜잭션 실패 시 외부 API 요청 취소

511

이채림

작성한 질문수 4

0

흐름은 이렇습니다.

  1. 유저에게 입금이체하는 메소드에서,

  2. 외부 API를 호출해서 유저에게 입금이체를 함

  3. 외부 API에게 응답 메시지를 받고, DB에 입금 내역, 상품 상태 등을 저장함

그리고 이 입금이체 메소드(1)에 @Transactional 어노테이션을 붙여놨습니다. 만약 DB에 입금과 상품을 저장하다가 예외나 에러가 생긴다면 롤백이 되겠죠.

그런데... 제 쪽 DB만 롤백되는 거지 외부 API 요청은 롤백이 되는게 아니잖습니까? ㅠㅠ. 그럼 예외, 에러 발생 시 외부 API를 호출해서 입금이체 취소를 하려고 했는데 이게 또 엄청나게 복잡하더군요... 카드결제가 아니라, 입금이체라 그런지 수취인에게 허락을 받아야 입금한 돈을 다시 돌려받을 수 있다고 합니다.

그래서 대체 이 부분을 어떻게 처리해야할지 모르겠어요. 막막하네요. 어떤 해결책이 있을까요?

답변 0

volatile에 대해 질문 있습니다.

2

40

2

질문있어요!

2

44

2

수업 잘 들었습니다.

2

33

2

실행과정 질문입니다.

2

39

1