Blacksmith CI 청구 논란: 무료 체험 사용자에게 청구

Blacksmith가 무료 체험 사용자에게 $1,000 초과 사용료 청구

YC 지원을 받은 GitHub Actions 대체 서비스인 Blacksmith는 "무료 체험" 플랜(가입 시 신용카드 필요 없음) 이용 중인 사용자를 대상으로 $1,000 이상 사용료를 청구한 뒤 논란에 휩싸였습니다. 이번 사건은 일반적인 SaaS 관행과 크게 달리, 무료 체험이 보통 서비스 사용량에 대한 하드 캡 역할을 한다는 점을 무시한 사례로 주목받고 있습니다.

이 경우 사용자는 무료 제공 분을 초과한 뒤 "서비스 중단을 방지하려면 신용카드를 추가하라"는 경고를 받았다고 전했습니다. 그러나 Blacksmith 지원팀은 이후 "중단"이 서비스가 완전히 멈추는 것을 의미하는 것이 아니라 계정이 검토 또는 정지될 수 있다는 의미라고 설명했습니다. CI 워크플로우를 차단하지 않고 그대로 실행하도록 허용한 결과, 사용자는 최종적으로 $1,081.45 청구서를 받게 되었습니다.

관행과 약관 사이의 충돌

대부분의 SaaS 사용자는 신용카드 없이 제공되는 무료 체험이 청구와 무관한 이벤트라고 기대합니다—즉, 제한에 도달하면 서비스가 무료로 계속되거나 바로 중단됩니다. Blacksmith는 사전 결제·캡 모델에서 사후 결제·청구 모델로 전환했으며, 이 전환에 대한 명시적 사용자 동의를 받지 않았다는 점이 문제로 지적되었습니다.

주요 논쟁점

  • 모호한 커뮤니케이션: "서비스 중단"이라는 표현을 사용자는 서비스 장애로 해석했지만, 회사는 행정적 플래그 지정 과정으로 이해했습니다.
  • 서비스 약관: 일부 관찰자는 Blacksmith의 약관이 결제 정보를 제공해야 청구할 권리가 있다고 암시하고 있어, 실제 청구 행위와 법적 약관 사이에 모순이 존재할 수 있다고 지적했습니다.
  • 업계 표준: 댓글 작성자들은 사전 결제 서비스에 사후 결제 방식을 적용하는 것을 "다크 패턴" 혹은 "사기성 행위"라고 비판했으며, 이는 사용자 가정에 의존해 수익을 창출한다는 점을 강조했습니다.

Blacksmith의 대응 및 정당화

Blacksmith 제품 책임자 Greg는 사용자가 가치를 느끼지 못한다면 청구서를 적극적으로 추구하지 않을 것이라고 밝혔습니다. 그는 정책 배경을 다음과 같이 설명했습니다:

  1. 마찰 감소: 초기 신용카드 요구를 없앰으로써 더 많은 무료 사용자와 OSS 프로젝트를 지원하고자 했습니다.
  2. 빌드 실패 방지: CI 워크로드를 완전히 차단하면 빌드가 실패하고 수동으로 코드를 수정해야 하는 상황이 발생하므로, 이를 피하고자 했습니다.

Blacksmith는 두 가지 주요 개선을 약속했습니다. 첫째, 사용자가 무료 티어 소진 후 러너를 중단할지 계속 실행할지를 명시적으로 선택할 수 있는 "Wallet" 기능을 도입하고, 둘째, 청구·지표 화면을 개선해 가시성을 높이겠다는 내용입니다.

커뮤니티 시각 및 대안

논의는 실용적인 개발자와 이러한 청구 방식을 신뢰 위반으로 보는 사람들 사이에 깊은 갈등을 드러냈습니다.

"활발한 개발 중에 CI를 중단하고 싶지는 않지만, 무료 분을 부채로 전환하기 전에 매우 명확한 동의 절차가 필요합니다."

원 글 작성자는 GitHub Actions 대비 성능 이점을 이유로 Blacksmith 사용을 계속하기로 했지만, 다른 개발자들은 유사한 청구 서프라이즈를 피하기 위한 여러 대안을 제시했습니다:

  • 셀프 호스팅 러너: Woodpecker와 같은 도구를 사용해 VPS에서 직접 운영하거나 AWS에서 Firecracker VM을 오케스트레이션하기.
  • 대체 러너 서비스: Depot, WarpBuild, Namespace.so, Avrea 등 제공업체 언급.
  • Runs-on.com: AWS에서 GitHub 셀프 호스팅 러너를 관리하고 예산 알림을 제공하는 서비스.

SaaS 제공자를 위한 교훈

이번 사건은 "신뢰 예산"에 대한 경고 사례가 됩니다. 무료 체험 하드 캡이라는 관행을 깨뜨리면, 설령 사용자 경험(예: 빌드 실패 방지)을 개선하려는 의도가 있더라도 상당한 호감도 손실을 초래할 수 있습니다. 이를 방지하려면 제공자는 다음을 실천해야 합니다:

  • 명시적 동의 사용: 무료 사용자를 유료·청구 상태로 전환하기 전에 사전 "옵트인"을 요구합니다.
  • "중단" 명확히 정의: 자동 경고에서 모호한 용어를 피하고, 서비스가 중단되는지 비용이 발생하는지 명확히 밝힙니다.

Sources