트랜잭션의 문제?

solarrrrr·2022년 2월 21일
0

잡담

목록 보기
13/22
post-thumbnail

얼마 전 면접 다녀왔던 기업의 어플을 이용해 보고 있었는데
유료 서비스가 있어 결제해 보았다.
그런데 결제는 완료되었으나 포인트 충전이 되지 않았다.

그래서 재충전을 시도해 보았으나
다른 금액대는 정상적으로 결제 시도가 이루어지는 반면
최초 오류난 금액대는 무반응이었다.

이때 든 생각이 이게 트랜잭션의 4대 조건 중 원자성의 문제일까 싶었다.

트랜잭션의 조건 네 가지에는 원자성, 고립성, 일관성, 지속성이 있는데
이 중 원자성은 100개의 명령어 중 99개가 성공하더라도 1개가 실패하면
그 작업은 반드시 실패로 간주되어 롤백되어야 하는 특성이 있다.

실무를 해 본 적이 없어서 실제 결제 시스템이 어떻게 이루어지는지
잘 모르겠어서 좀 궁금하다.

사용자 입장에선 앱을 통해 결제하는 거라 나의 경우엔 아이폰인데
앱스토어에서 구입이 이루어진다.

그럼 아마 앱에서 앱스토어나 플레이스토어의 결제 시스템과 연결된
API나 뭔가가 있을 거 같은데

결제는 정상적으로 이루어졌기 때문에 아마 결제 시스템의 리턴값을
앱이나 서버측에서 수신하는 과정에 문제가 생긴 게 아닐까 생각된다.

이때 수신이 제대로 안 되거나 문제가 있다면
결제 과정 자체를 롤백해서 결제 취소가 이루어지고
이용자에게 그에 따른 적절한 반환값을 주면서
결제 이전 상태로 돌아가야 할 것 같은데 그게 안 되는 상황이라
재결제를 눌러도 먹통 현상이 발생하는 거 아닐까 생각됐다.

내 계정으로부터의 해당 금액대에 대한 API 호출 부분이
정상적으로 처리되지 않고 마치 무한루프에 빠져 있는 것처럼 보였다.
(그랬다면 시스템이 뻗었겠지만..)

그냥 궁금했다.
물론 결제가 안 되는 상황은 어플 관리 담당 이메일 주소로 전달은 했는데
어떤 이유로 문제가 생겼고 어떤 처리를 통해 해결하면 좋을지에 대한 고민이 생겨서 혼자 상상의 나래를 펼쳐보았다.

별거 아닌 문제일 수도 있겠지만 공부하고 있는 내용과 접목해서 고민해 보니
실무가 더 궁금해진다.

profile
몰입

0개의 댓글