sequenceDiagram participant User participant Controller participant Service participant Repository participant ExternalGateway User->>Controller: 결제 요청 Controller->>Service: 결제 처리 요청 Service->>Repository: 트랜잭션 시작 Service->>ExternalGateway: 결제 요청 alt 결제 성공 ExternalGateway-->>Service: 결제 성공 응답 Service->>Repository: 트랜잭션 커밋 Repository-->>Service: 커밋 완료 Service-->>Controller: 결제 완료 응답 Controller-->>User: 결제 완료 else 외부 실패 ExternalGateway-->>Service: 결제 실패 응답 Service->>Repository: 트랜잭션 롤백 Repository-->>Service: 롤백 완료 Service-->>Controller: 결제 실패 응답 Controller-->>User: 결제 실패 else DB 실패 Service->>Repository: 트랜잭션 롤백 Repository-->>Service: 롤백 완료 Service-->>Controller: DB 오류 응답 Controller-->>User: DB 오류