고객 사례 AI 및 SaaS

우리 전사 SaaS, 7일 만에 Rails에서 Rust로, 로그아웃된 사용자 없이

SoundScript.AI는 99개 언어로 오디오를 텍스트로 바꿉니다. Rails 앱이 작은 서버 한 대에서 웹사이트와 백그라운드 작업, Redis를 모두 돌리며 한계에 다다랐습니다. Rust로 재작성해 기존 앱과 페이지 단위로 대조한 뒤, 약 4분의 창에서 프로덕션을 전환했습니다.

고객
Envixo
플랫폼
웹 앱과 모바일 API
산업
AI 및 SaaS
출시
2026

과제

Rails 8.1 앱은 잘 작동했지만 Puma, Sidekiq, Redis, PostgreSQL이 메모리 1.9 GB 서버 한 대를 함께 썼습니다. 부하가 걸리면 페이지 응답이 몇 초씩 걸렸고, 2026년 7월에는 백그라운드 작업이 닷새간 멈췄습니다.

이전: 메모리 1.9 GB 서버 한 대에 Puma, Sidekiq, Redis, PostgreSQL
이후: 관리형 PostgreSQL 18을 쓰는 Kubernetes의 웹·워커 서비스, Redis 없음: 큐, 실시간 업데이트, 호출 제한을 모두 PostgreSQL에서 처리
이전: 동시 연결 100개에서 공개 페이지 중간값 2.7 s
이후: 같은 테스트에서 중간값 11.7 ms
이전: 아랍어, 히브리어, 페르시아어, 우르두어, 데바나가리 문자에서 읽을 수 없던 PDF 내보내기
이후: Typst와 Noto 폰트로 조판한 PDF, 글자 모양과 오른쪽에서 왼쪽 텍스트가 정확
이전: 시크릿이 없으면 서명 없는 이벤트도 받아들이던 결제·전사 웹훅
이후: 모든 웹훅 서명을 언제나 검증
이전: 최대 메모리 937 MB
이후: 최대 메모리 102 MB

우리가 만든 것

프로토타입이 아니라 제품 전체의 재작성입니다. 99개 언어 웹사이트, 전사 파이프라인, AI 요약과 채팅, 내보내기, 결제, 모바일 API, 관리자 콘솔까지.

동일한 URL과 인터페이스

모든 현지화 페이지와 웹훅 경로, 모바일 API 엔드포인트, 스토리지 버킷이 그대로여서 링크와 앱, 연동이 계속 작동했습니다.

로그아웃된 사용자 없음

Rust 앱이 Rails 세션 쿠키와 기존 비밀번호 해시를 읽으므로 사용자는 전환 중에도 로그인 상태를 유지했습니다.

데이터는 추측이 아니라 검증

마지막 복사 후 계정, 전사 결과, 사용량, 구독의 행 수와 체크섬을 기존 데이터베이스와 새 데이터베이스에서 비교했고, 결과는 동일했습니다.

동등성 검증 테스트 장치

사용자 유형 11가지와 네 개 언어에 걸친 1,126건의 페이지 요청, 39건의 양식 전송, 343건의 관리자 요청을 두 앱에 재생해 비교했습니다.

제품 전체

Whisper와 Azure 전사, 실시간 상태, AI 요약과 채팅, TXT·SRT·DOCX·PDF 내보내기, Stripe와 Google Play 결제, 그리고 관리자 콘솔.

안전한 복귀 경로

전환 후 2주 동안 기존 서버를 그대로 두어 롤백은 DNS 변경으로 끝났습니다.

엔지니어링 성과

출시 전 공용 머신에서 부하 테스트로 측정했습니다. 절대 수치는 참고용이고, 비율은 그대로 유효합니다.

230x
부하 상태에서 더 빨라진 중간 응답
9x
줄어든 최대 메모리
880
모든 변경에서 실행되는 자동 테스트
7
첫 커밋부터 프로덕션까지 걸린 일수
  • 프로덕션은 약 4분의 창에서 전환
  • 전환 후 프로덕션에서 가입, 업로드, 실시간 상태, 다운로드, AI, API, 관리자 기능 확인
  • 부하 테스트에서 커넥션 풀 버그를 발견해 출시 전에 수정
  • 오른쪽에서 왼쪽으로 쓰는 PDF를 포함한 99개 언어

기술

  • Rust
  • axum
  • PostgreSQL
  • Typst
  • OpenAI Whisper
  • Azure Speech
  • Stripe
  • Kubernetes

비즈니스에 맞춘 소프트웨어가 필요하신가요?

연동, 내부 도구, 앱, 플랫폼을 AI 에이전트를 지휘하는 시니어 엔지니어가 주문 제작합니다. 필요한 것을 알려 주시면 우리가 어떻게 구축할지 보여 드리겠습니다.