Code is the easy part - 청구 스크립트보다 도메인 모델이 먼저다
Swizec Teller의 Code is the easy part, or how we refactored half the business to fix a janky script는 낡은 청구 스크립트를 고친 이야기처럼 시작합니다. 하지만 핵심은 코드가 아닙니다. 회사가 커지면서 비즈니스 개념, 데이터 모델, 운영 습관, 고객 셀프서비스, 재무팀 도구까지 함께 바꿔야 했던 리팩터링 이야기입니다. 원문: Code is the easy part, or how we refactored half the business to fix a janky script Refactor 핵심 정리 표면 문제: 낡은 Python 스크립트가 모든 인보이스를 발행했고, 월말 청구는 종종 밤샘 작업이 됐다. 진짜 문제: 사용자, 기관, 랩, 구매 부서, 영업 구역, 데이터 공유 구조가 하나의 데이터 모델에 섞여 있었다. 핵심 해법: 협업 구조와 청구 구조를 분리하고, “이 주문을 어떻게 청구할까?“에 답하는 Billing Entities를 만들었다. 결과: 월말 청구가 일주일에서 2일로 줄었고, 고객은 직접 청구 정보와 구매 주문서를 관리할 수 있게 됐다. 실무 교훈: 복잡한 스크립트는 대개 원인이 아니라 증상이다. 먼저 도메인 모델이 현실을 제대로 담는지 봐야 한다. 1) 회사가 커지면 예외 처리도 제품이 된다 Swizec이 합류한 2024년 8월, 회사는 연간 반복 매출 약 2천만 달러에 가까워지고 있었습니다. 2026년 6월에는 1억 달러 ARR이 가시권에 들어왔다고 합니다. 매출은 빠르게 커졌지만, 청구 시스템은 훨씬 작은 회사였을 때의 방식에 머물러 있었습니다. ...