- 결제와 매출 시스템은 수익화를 위해 필수지만, 재무·제품·고객지원·법무·컴플라이언스·영업까지 얽히는 복잡한 핵심 시스템이라 작은 장애도 큰 운영 문제로 번질 수 있음
- 초기 회사나 신제품 팀은 결제를 단순한 엔지니어링 문제로 보고 직접 만들기 쉽지만, 실제 선택지는 자체 구축·서드파티·하이브리드로 나뉨
- 실제 결제 시스템은 멱등성, 날짜 처리, 사용량 계량, 세금, 환불, 고객 계층, 맞춤 계약, 가격 변경, 수익 인식을 동시에 다뤄야 함
- 일부 문제는 한 번 해결하면 안정적이지만, 세금 규칙·고객 실수·수동 정정·국가별 청구서 요구사항은 성장과 글로벌 확장에 따라 계속 커짐
- 제품 고유의 사용량 업데이트와 고객 생명주기 이벤트에 집중하고, 구독·청구·회계·수익 인식은 가능한 한 기성 결제 시스템과 ERP에 맡기는 편이 안전함
결제가 단순한 기능이 아닌 이유
- 결제와 매출 시스템은 비즈니스가 수익을 내기 위해 반드시 필요함
- 정상 동작할 때는 눈에 띄지 않지만, 실제로는 여러 조직과 기능을 동시에 건드리는 문어 같은 시스템임
- 재무
- 제품
- 사용자 경험
- 고객지원
- 고객
- 법무
- 컴플라이언스
- 영업
- 한 부분이 깨지면 연결된 영역까지 빠르게 문제가 커질 수 있으며, 실제로 자주 깨짐
- 합법적이고 정확하게 매출을 수금하지 못하면 비즈니스 운영자가 감당해야 할 문제가 크게 늘어남
세 가지 구축 패턴
- 결제 시스템에는 보통 세 가지 접근이 있음
- 자체 구축
- 완전한 서드파티 시스템
- 자체 구축과 서드파티를 섞은 하이브리드
- 초기 회사나 새 제품을 시작하는 팀은 엔지니어가 있고 단순하게 유지하고 싶다는 이유로 직접 만들려는 경향이 있음
- 결제를 “S3에 청구 파일을 넣고 CRON 작업이 가져가 결제하면 되는 문제”처럼 보면, 결제를 엔지니어링 문제로만 오해하게 됨
- 보안이나 날짜 처리를 직접 구현하지 않는 것처럼, 결제도 처음부터 전부 직접 만들지 않는 편이 좋음
- 가장 좋은 결제 시스템은 전부 직접 만들 필요가 없었던 시스템임
자체 결제 시스템의 14가지 고통
-
멱등성
- 모든 청구와 결제 수금 요청은 유일하고 멱등적이어야 함
- API 제한으로 재시도하거나 결제 시스템 인스턴스를 늘릴 때 이 문제가 드러남
- 제대로 처리하지 않으면 중복 청구 위험이 생김
-
날짜 처리
- 30일마다 청구할지, 매월 가입일 기준으로 청구할지 정해야 함
- 윤일, 시간대 같은 조건도 함께 처리해야 함
-
일할 계산과 잔여분
- 업그레이드 때만 일할 계산할지, 다운그레이드에도 적용할지 정해야 함
- 환불, 크레딧, 무시, 업그레이드·다운그레이드 차단 같은 선택지가 있음
-
사용량 계량
- 사용량 계산 방식은 수십 가지가 될 수 있음
- 고객 유형별로 달라지거나 자주 바뀔 수 있음
-
청구서 형식
- 한 국가에서만 운영할 때는 쉬워 보일 수 있음
- 확장하면 판매세뿐 아니라 VAT, GST, 국가별 추가 부담금까지 처리해야 함
- 시장별 개별 템플릿이 필요해질 수 있음
B2B와 글로벌 확장에서 커지는 복잡성
-
복잡한 고객 계층
- 특히 B2B 고객은 자회사와 파트너를 두고 청구 관계를 관리하려 할 수 있음
- 사용량을 실제 지불 주체로 합산하는 방식이 필요함
- 이런 요구는 성장과 확장 이후에야 나타나는 경우가 많음
- 고객 법인이나 사용 위치가 다르면 세금이 달라질 수 있음
- 법적으로 청구서와 인보이스를 나눠야 할 수 있음
- 관련 규칙은 몇 달마다 바뀔 수 있음
-
결제 수금과 이탈 방지
- 결제 재시도를 언제 포기할지 정해야 함
- 차지백이 발생하면 계정을 종료할지, 정지할지, 환불할지 결정해야 함
-
일시정지와 재개
- 고객이 구독을 일시정지했을 때 어느 수준의 접근 권한을 허용할지 정해야 함
-
크레딧과 환불
- 전액 환불만 한다면 상대적으로 단순함
- 부분 오류가 생기면 부분 환불이나 스토어 크레딧을 선택해야 할 수 있음
- 크레딧 만료 여부도 별도로 결정해야 함
세금, 계약, 사람의 실수
-
세금 처리
- 서로 다른 항목에 다른 세율이 적용되는 것만으로도 복잡함
- 글로벌 수준에서는 세율과 세금 규칙이 자주 바뀜
-
맞춤 계약
- PLG만 한다면 문제가 아닐 수 있음
- 계약을 체결하기 시작하면 기존 가정으로 쉽게 설정할 수 없는 예외와 특별 조건이 빠르게 생김
-
사람의 실수
- 고객은 실수를 하고, 그에 따른 정정이 필요함
- 기업 내부에서도 고객 설정을 잘못 구성할 수 있어 이후 수정해야 함
- 크레딧 발행과 청구서 재발행은 시간이 많이 드는 작업임
- 고객의 법적 정보가 바뀌는 경우도 처리 대상임
- 주소
- VAT ID 등
-
선택적 가격 변경
- 가격 변경은 모든 고객에게 적용되지 않는 경우가 많음
- 신규 고객에게만 적용될 때는 기존 계약을 지키기 위해 서로 다른 가격 버전을 유지해야 함
-
수익 인식과 발생 수익
- IFRS-15 기준 수익 인식 규칙에는 64쪽 PDF 명세가 있음
- 맞춤 ERP 통합까지 직접 하면 복잡성이 더 커짐
한 번 끝나는 문제와 계속 커지는 문제
- 어떤 문제는 예상보다 훨씬 자주 바뀌고, 어떤 문제는 한 번 처리하면 다시 건드릴 일이 거의 없음
- 멱등성은 한 번 해결하면 드물게만 다시 손대는 엔지니어링 문제의 예임
- 세금 규칙은 전 세계적으로 자주 바뀜
- 진출 국가가 많아질수록 추적해야 하는 세법도 늘어남
- 고객 실수는 비교적 꾸준히 발생함
- 성장할수록 규모가 커짐
- 더 많은 고객지원과 수동 정정이 필요해짐
- 결제는 처음에는 엔지니어링 문제처럼 보이지만, 실제로는 업계 경험자에게도 이해하기 어려운 복잡한 문제 공간에 뿌리를 둠