Case Study
Randibot
RCMS · K-Startup 연구비 운영 흐름을 자동화하는 0→1 SaaS MVP에서, 기관별 온보딩이 설정만으로 끝나도록 멀티테넌트 백엔드와 ETL 파이프라인을 설계했습니다.
- Next.js
- NestJS
- PostgreSQL
- Multi-tenancy
문제
Randibot은 정부지원사업 연구비 집행 데이터를 자동 수집하고 기관별로 가공해 보여주는 제품이었습니다. 기관마다 신청 양식과 운영 방식이 달라, 신규 고객이 들어올 때마다 개발자가 직접 로직을 수정하면 제품화 속도가 느려지는 구조였습니다.
목표는 단순한 스크래핑 자동화가 아니라, 기관별 차이를 설정으로 흡수하면서도 데이터 적재·권한·운영 화면이 서로 섞이지 않는 SaaS 구조를 만드는 것이었습니다.
구현
백엔드는 `tenancyId = workspaceId` 패턴으로 정리하고, 기관별 수집 규칙과 후처리 옵션을 워크스페이스 설정으로 분리했습니다. 이 구조 덕분에 애플리케이션 로직은 공통으로 유지하면서도 고객별 데이터 경계를 명확히 가져갈 수 있었습니다.
RCMS · K-Startup 수집 파이프라인은 단계별 잡으로 쪼개고, 변환 실패와 재실행이 쉬운 형태로 설계했습니다. 운영자는 워크스페이스 설정만 바꿔 신규 기관을 온보딩할 수 있었고, 백엔드 배포 없이도 수집 규칙을 조정할 수 있었습니다.
결과
프로덕션에서는 5개 워크스페이스를 코드 변경 없이 온보딩했고, 월 1,200건 수준의 ETL 파이프라인을 안정적으로 운영했습니다. 제품 입장에서는 “기관 추가 = 개발 요청”이 아니라 “기관 추가 = 설정 입력”으로 바뀐 것이 가장 큰 전환이었습니다.
이 작업은 단순히 기능을 붙인 것이 아니라, 이후의 영업·운영 속도를 결정하는 SaaS 기본 구조를 먼저 닦은 사례였습니다.