DDM(Datarize Dev Meetup) 두 번째 세션에서는 BE(Back-End) 챕터 리드 이인표님이 발표했습니다.
주제는 다소 가볍지만 스타트업이라면 반드시 맞닥뜨릴 수밖에 없는 질문, “실용주의 프로그래밍이란 무엇인가?”였습니다. 이 발표는 데이터라이즈가 시리즈 A부터 B까지 성장하는 과정에서 어떤 선택을 했고, 어떻게 개발 문화를 다져왔는지를 돌아보는 시간이었습니다.
스타트업의 개발 환경은 언제나 빠듯합니다.
개발자가 ‘사치스럽게’ 시간을 들여 완벽한 구조를 설계하기보다는, 그때그때 가장 실용적인 선택을 해야 하는 상황이 반복됩니다.
데이터라이즈가 주목한 실용주의의 핵심 키워드는 두 가지였습니다.
많은 장애와 일정 지연은 ‘요구사항을 정확히 이해하지 못한 것’에서 비롯됩니다. 데이터라이즈는 이를 해결하기 위해 다양한 도구를 적극적으로 활용했습니다.
이 과정을 통해 발굴된 유저 스토리는 Jira 스토리와 스프린트 계획에 그대로 반영되었습니다.
커뮤니케이션 비용을 줄이는 것도 실용주의의 핵심입니다.
‘방어적 프로그래밍’ 대신 계약에 의한 설계(Design by Contract, DBC)를 도입했습니다.
예를 들어, 메시지 발송 시스템에서는 새벽 배치가 정상 완료되지 않으면 아예 발송 프로세스를 시작하지 않도록 계약을 설정했습니다. 덕분에 장애가 발생했을 때 복구 비용을 크게 줄일 수 있었습니다.
TDA의 정의
또한 TDA(Tell, Don’t Ask) 원칙을 적용해 객체 간 결합도를 낮추고, 책임을 명확히 분리했습니다. 다만 캡슐화가 과도하면 디버깅이 어려워지므로, 호출 깊이를 제한하는 등 현실적인 보완책도 함께 마련했습니다.
실용주의 프로그래밍의 마지막 키워드는 가역성입니다. 언제든 코드를 바꿀 수 있으려면 테스트가 필수입니다.
이 덕분에 신규 입사자도 입사 후 2~3주 내 첫 코드 기여를 경험할 수 있었습니다. 테스트 환경이 팀 전체의 진입 장벽을 낮춘 셈입니다.
발표의 마지막은 인상적인 한 문장으로 마무리되었습니다.
“카오스가 있는 곳에 성장이 있습니다.”
실용주의는 완벽한 시스템을 꿈꾸는 것이 아닙니다. 실패를 전제로 하고, 문제를 빠르게 식별하고, 다시 고칠 수 있는 구조를 만드는 것. 스타트업처럼 성장 속도가 빠른 환경에서야말로 실용주의는 빛을 발합니다.
데이터라이즈 BE 챕터는 앞으로도 실용적인 결정들을 통해 비즈니스 성장을 뒷받침하며, 더 단단하고 유연한 시스템을 만들어갈 예정입니다.