배경
전날, 대표님들이 참여한 외부 네트워크 행사에서 voidx 서비스가 잠재 고객에게 소개됐습니다. 서비스는 Cafe24·React 기반 자사몰에 에드온 SDK를 심는 구조로, 회원가입 후 결제해 멤버십이 되면 에이전트를 체험하는 형태입니다. 그러나 당시 결제·멤버십 백엔드는 레거시 코드와 중단된 리팩토링이 겹쳐 정상 동작하지 않는 상태였습니다.
한 일
- 장애를 가장 먼저 발견: 제가 개발해 사실상 혼자 점검하던 관리자 사이트의 이메일 문의 기능에서 외부 사용자의 문의를 확인했습니다. "첫 결제 후 실패 메시지가 떠 한 번 더 결제했더니 2회 실결제됐고, 멤버십은 조회되지 않는다": 즉시 팀에 공유했습니다.
- 현실적인 판단: 결제 파이프라인과 멤버십 백엔드가 정상 동작하지 않았고, 담당 개발자의 장기 부재로 즉시 손대기 어려웠습니다. 익숙하지 않은 언어의 코드를 단기간에 정상화하긴 어렵다고 봐, 백엔드를 고치는 대신 프론트엔드에서 결제를 막는 쪽이 가장 빠르고 안전하다고 판단했습니다.
- 프론트엔드 차단으로 추가 피해 차단: 결제를 우선 차단하고 CTA 버튼을 비활성화했습니다. 버튼 문구를 오픈 일정 안내로 바꾸고, 결제 화면 진입 시 오픈 준비 중임을 알리는 팝업을 띄우도록 했습니다.
- 피해 사용자 응대 + 근본 원인 규명: 당일 환불(백엔드 환불 API가 죽어 PG사 대시보드에서 직접)하고 사과 메일로 회신했습니다. 원인은 대형 CMS 기준으로 기획된 권한·멤버십 구조가 방향이 바뀌는 동안 정리되지 못하고 덧붙여지기만 한 데 있었습니다.
결과
- 당일: 장애 인지 즉시 추가 결제 피해 차단
- 당일: 피해 사용자 환불·사과 응대 완료
- 근본 원인: 레거시 권한·멤버십 구조 규명
백엔드가 정상화되기 전까지 잘못된 결제가 다시 발생하지 않도록 끊었습니다. 가장 빠른 수단(프론트엔드 차단)으로 피해를 멈춘 뒤, 원인 규명과 정책 제안으로 이어간 대응입니다.
이후: 정책의 문제로 재정의
저는 이를 코드만의 문제가 아니라 정책의 문제로 봤습니다. 리팩토링을 하려면 먼저 유즈케이스 기획이 정해져야 하고, 그 뼈대가 될 현 시점 기준의 유저 권한·멤버십·유료 정책이 필요하다는 점을 담당자에게 팔로우업했습니다. 같은 일이 반복되지 않으려면 코드 이전에 정책이 먼저 정리돼야 한다는 것을 확인한 케이스입니다.