본문으로 이동
토스ㅣSLASH 24 - 보상 트랜잭션으로 분산 환경에서도 안전하게 환전하기
컨퍼런스

토스ㅣSLASH 24 - 보상 트랜잭션으로 분산 환경에서도 안전하게 환전하기

SLASH 토스 · YouTube

원문 보기

AI 핵심 요약

원화 계좌와 외화 계좌가 서로 다른 데이터베이스를 사용하는 MSA 환경에서는 한쪽 입출금만 성공할 수 있어, 단일 DB 트랜잭션처럼 환전의 원자성을 보장하기 어렵습니다. 토스뱅크는 2PC 대신 오케스트레이션 사가를 선택하고, 원화 출금 후 외화 입금을 진행하며 입금 실패 시 출금 취소를 보상 트랜잭션으로 실행하도록 구성했습니다. 입출금은 동기 HTTP로 처리하고 보상 작업은 Kafka 메시징으로 재시도했으며, 지연 메시지와 배치 재처리, 상태 로그와 입출금 대조로 오류 복구와 모니터링을 보완했습니다. 발표에 따르면 이 구조는 회계·카드 서비스와의 확장에 활용됐고, 출시 후 거래를 안정적으로 처리하며 최근 환전 거래량 12조 원을 돌파했습니다.

  • 2PC는 참여 서비스가 모두 트랜잭션을 열고 응답을 기다려야 하므로, 가용성과 확장성이 중요한 환경에서는 사가 패턴과 비교해 신중히 선택해야 합니다.
  • 사가 오케스트레이터는 진행 상태를 추적하기 쉽지만 중앙 제어 지점이 되므로, 상태 저장과 장애 복구 방식을 함께 설계해야 합니다.
  • 환전은 원화 출금을 먼저 처리해야 외화 입금 직후 다른 거래가 잔액을 가져가 보상할 수 없게 되는 상황을 막을 수 있습니다.
  • 동기 HTTP는 즉시 결과와 타임아웃 처리가 필요한 입출금에, 메시징은 비동기 재시도가 가능한 보상 트랜잭션에 활용했습니다.
  • 상태 로그, 미완료 거래 알림, 원화·외화 입출금 내역 대조를 함께 두면 분산 거래의 불일치를 탐지하고 복구하는 데 도움이 됩니다.

소개

거대한 은행 계정계 시스템과 새로운 MSA 서비스는 어떻게 협력할 수 있을까요? 계정계 시스템의 원화 계좌와 분리된 외화 계좌를 오가는 환전 트랜잭션 구현법을 소개합니다. 이신동 / Server Developer 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-24 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #토스 #개발자컨퍼런스 #SLASH #SLASH24 #transaction #토스뱅크 #backend 유의 사항 *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포전송권에 위배됩니다. *토스가 다루는 모든 개인정보...

이 자료가 담긴 로드맵

커뮤니티에서 더 보기

비슷한 학습 자료

컨퍼런스 SLASH

트래픽이 쏟아지는 마이데이터 서비스, 과연 어떻게 안정적으로 운영할 수 있을까요? 서비스 운영 과정에서 마주했던 여러 과제들과 기술적인 의사결정을 소개합니다. 신윤재 / Server Developer 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-24 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #토스 #개발자컨퍼런스 #SLASH #SLASH24 #mydata #backend 유의 사항 *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포전송권에 위배됩니다. *토스가 다루는 모든 개인정보는 고객에게 동의를 받은 후에 처...

백엔드 데이터베이스

컨퍼런스 SLASH

거대한 금융 시스템을 운영 환경에 안전하게 도입하려면 어떻게 해야 할까요? 토스증권의 국내원장 차세대 프로젝트와 토스뱅크의 대출 시스템 검증 과정을 공유합니다. 양승영 / 토스증권 Server Developer 박종수 / 토스뱅크 Server Developer 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://toss.im/slash-24 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #토스 #개발자컨퍼런스 #SLASH #SLASH24 #server #backend #bankingsystem 유의 사항 *본 발표 자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저...

백엔드 소프트웨어 테스트

컨퍼런스 SLASH

생산성, 안정성, 보안성을 모두 달성하기 위해선 ‘Pipeline’을 어떻게 설정해야 할까요? 다양하고 복잡한 토스뱅크의 배포 ‘Pipeline’을 안전하게 운영하기 위한 노력을 소개합니다. 김동석 / 토스뱅크 DevOps Engineer 발표 자료 👉🏻 https://bit.ly/42pgzIN 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #pipeline #helmtemplate #devopsengineer #토스뱅크 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행...

데브옵스 · 인프라

컨퍼런스 SLASH

왜 보안이 강화될수록, 업무는 불편해지는 걸까요? 금융에서 가장 중요한 가치인 ‘안전’과 혁신을 위한 ‘업무 편의성’, 두 마리 토끼를 모두 잡기 위한 여정을 소개합니다. 정연우 / 토스 Security Engineer 발표 자료 👉🏻 https://bit.ly/43uQJ7L 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #제로트러스트 #보안 #securityengineer #토스 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포전...

보안

컨퍼런스 SLASH

애자일한 문화와 우수한 보안, 두 마리 토끼를 모두 잡을 수 있는 방법은 뭘까요? 더 안전하고 지속 가능한 보안을 위한 토스의 ‘서비스 보안 자동화’ 여정을 소개합니다. 표상영 / 토스 Security Researcher 발표 자료 👉🏻 https://bit.ly/3qyp7Qx 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #보안자동화 #보안솔루션 #securityresearcher #토스 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배...

데브옵스 · 인프라 보안

컨퍼런스 SLASH

토스의 간편함 이면에 있는 안정성과 보안성, 그리고 이를 향한 끊임없는 기술적 도전과 성취를 소개합니다. 이형석 / 토스 Head of Technology 토스 개발자 컨퍼런스 SLASH에 대한 자세한 정보는 👉🏻 https://bit.ly/43kW3tO 컨퍼런스 및 세션에 대한 문의는 👉🏻 slash@toss.im 토스에 합류하고 싶다면 👉🏻 https://toss.im/career/jobs #금융 #기술 #보안 #토스 #개발자컨퍼런스 #SLASH *본 발표자료의 저작권은 연사에 있으며, 저작권자의 사전 서면 동의 없이 자료의 일부 또는 전부를 이용하거나 배포할 수 없습니다. *또한 해당 자료를 복제하여 SLASH 행사 홈페이지를 제외한 온라인상에 게재하는 행위는 연사가 동의한 저작권 및 배포전송권에 위배됩니다. *토스가 다루는 모든 개인정보는 고객에게 동의를 받은 후에 처리되고 있으며, 접근 권한이 분리되어 있습니다. 개발자는 모든 데이터가 아닌 담당 영...