Dropbox가 파일 미리보기 생성용 내부 서비스로 출발한 콘텐츠 처리 플랫폼 Riviera가 약 10년에 걸쳐 Search·Replay·Sign·Dash가 공유하는 플랫폼으로, 나아가 AI 시대의 문서 처리 인프라로 진화한 과정을 다룬다. 미리보기를 '재사용 가능한 변환들의 조합'으로 재정의한 설계가 확장의 핵심이었고, 지금은 100개 넘는 변환 능력으로 초당 수십만 건을 처리한다. 최근엔 공개 API와 MCP로 외부 개발자에게도 열렸다.
핵심 포인트- Riviera는 300여 개 파일 포맷을 썸네일·미리보기·텍스트 추출·스트리밍 매니페스트 등으로 바꾸는 Dropbox의 공용 콘텐츠 처리 플랫폼이다.
- 포맷마다 별도 서비스를 만드는 대신 미리보기를 '재사용 가능한 변환 조합'으로 재정의해 중복을 없앴다.
- 중앙 코디네이터가 요청 검증·캐싱·분배를 맡고, 백엔드 워커가 변환 종류별로 특화돼 개별 확장·유지보수된다.
- 플러그인 모델로 코어 수정 없이 새 포맷·변환을 추가할 수 있어 Search·Replay·Sign·Dash가 차례로 올라탔다.
- Dash의 AI가 문서를 모델이 이해할 형태로 변환하는 수요를 만들었고, Riviera가 그 파이프라인을 그대로 받쳐 몇 달 걸릴 작업을 몇 주로 줄였다.
상세 정리- 규모: Riviera는 백그라운드에서 무거운 변환을 처리하며 하루에 영상 8년치에 해당하는 출력을 만들어낸다.
- 최초 문제: Dropbox는 300개 넘는 파일 포맷을 지원하고 각 포맷이 썸네일·전체 미리보기·추출 텍스트·스트리밍 매니페스트·메타데이터 등 여러 출력을 낳는데, 포맷×출력마다 서비스를 만들면 관리가 불가능하다.
- 중복 문제: PowerPoint와 Word가 각각 PDF 로직을 요구하면 비슷한 PDF 로직을 여러 곳에서 유지해야 해 설정 드리프트·버전 불일치·운영 부담이 커진다.
- 핵심 발상: 미리보기를 개별 기능이 아니라 재사용 변환의 연속으로 봤다 — PPT는 먼저 PDF로 변환하고 각 PDF 페이지를 이미지로 만드는 식이라, 이 PDF→이미지 단계가 다른 워크플로에서도 재사용된다.
- 아키텍처: 중앙 조정 지점이 요청을 모아 작업을 구성·분배하고 요청 검증과 응답 캐싱으로 워커를 중복·무효 작업에서 보호하며, 각 백엔드 워커는 특정 변환에 특화돼 단일 지점에서 유지·확장된다.
- 규모 현황: 오늘날 Riviera는 100개 넘는 능력으로 초당 수십만 건의 변환을 수행한다.
- 확장 용이성: 조정과 실행을 분리해 새 포맷·변환은 코어를 고치지 않고 플러그인 추가만으로 지원되며, 확장 중에도 코어는 안정적으로 유지된다.
- 플랫폼화: 미리보기용 썸네일이 ML 팀의 이미지 정규화에도 쓸모 있었고(160×160 썸네일 한 번 생성이 모두에게 이득), Search가 인덱싱 전 문서 준비에 채택하면서 사내 공용 플랫폼으로 번졌다.
- 플러그인 개방: 제품 팀이 새 변환을 기여하고 Riviera 팀은 코어를 유지하는 모델로 열어, 플러그인이 공용 변환 라이브러리가 됐다.
- Replay 사례: 영상 리뷰 제품은 복잡한 트랜스코딩을 요구하는데 기존 변환을 활용해 인프라를 처음부터 짓지 않고 빠르게 성장했고, 이 패턴 덕에 몇 달 걸릴 기능이 몇 주에 출시됐다.
- Dash와 AI: AI가 답하기 전 문서는 텍스트 추출·스캔 페이지 인식·메타데이터 추출·수백 포맷의 일관 표현 변환을 거쳐야 하는데, 이는 Riviera가 원래 풀던 문제라 Dash는 새 시스템을 짓지 않고 기존 기능을 썼다.
- 연쇄 이득: Dash가 Dropbox·Google Drive·Slack 등에서 콘텐츠를 수집하면 Riviera가 인덱싱·AI용으로 준비하고, 텍스트 추출 개선은 AI 응답과 검색 정확도를 함께 높이며 캐싱 개선은 미리보기·QA·문서 처리 부하를 함께 줄인다.
- 교훈: 기능은 한 번 값을 주지만 플랫폼은 다른 팀이 올라탈 때마다 가치가 커진다 — 명확한 경계로 콘텐츠 변환에 집중을 유지한 플러그인 아키텍처가 유지보수 부담 없는 확장을 가능케 했고, 지금은 공개 API·MCP로 외부까지 열렸다.
왜 읽나다양한 파일 포맷을 다루는 콘텐츠 변환·미리보기·AI 문서 처리 인프라를 플러그인 기반 공용 플랫폼으로 설계하려는 아키텍트·플랫폼 엔지니어에게 진화 사례 레퍼런스.