TL;DR
Quick은 로컬 폴더를 업로드하면 즉시 내부 URL로 배포되는 사내 호스팅 플랫폼으로서 gcloud rsync로 GCS에 파일을 올리고 gcsfuse로 마운트된 NGINX가 정적 파일을 서빙하며 서버 측 API가 데이터베이스, 파일 업로드, WebSocket, BigQuery 조회 및 LLM 호출을 프록시 형태로 제공한다. 클라이언트는 별도 키 없이 quick API를 통해 데이터 생성·구독과 AI 호출을 수행할 수 있고 서버는 IAP로 확보한 사용자 정보를 기반으로 신원 관련 데이터를 제공한다. 이 설계는 배포 복잡도를 크게 낮추어 2025년 7월 론칭 이후 50,000개 이상의 내부 사이트와 전사 절반 이상의 참여로 빠르게 확산되었으며 단일 VM으로 월 약 200달러에 운영되는 저비용 구조를 유지하고 있다. 제약된 기능 세트를 고수하면서도 WebSocket과 간편한 API로 멀티플레이어 게임, 대시보드, 프로토타입 등 다양한 실사용 사례가 등장했고 대용량 데이터 남용 방지를 위해 레이트 리밋과 언어 런타임 전환 같은 운영적 제어가 병행되고 있다.
빠른 이해
새로운 점
제로-설정 클라이언트 API와 IAP 기반 내부 호스팅 결합으로 LLM 호출·웹소켓·데이터 저장을 브라우저에서 키 없이 직접 수행하게 함
핵심 메커니즘
사용자가 로컬 폴더를 업로드하면 gcloud rsync가 GCS 버킷에 파일을 저장하고 gcsfuse로 마운트된 NGINX가 정적 파일을 서빙하며 서버측 API가 DB·파일 업로드·AI 호출·웹소켓 연결을 제공해 완전한 내부 웹 앱을 즉시 노출한다.
핵심 수치
- 호스팅 사이트 수: 50,000+- 본문의 현재 집계 수치
- 사내 사용자 비율: 50%+- 적어도 하나의 사이트를 만든 직원 비율
- 단일 VM 운영 비용: $200/month- 보고된 월간 인프라 비용
- 게임 잼 제출 수: 140- 최근 게임 잼에 제출된 게임 수
섹션별 상세
Quick 개요와 목적
아키텍처와 배포 흐름
클라이언트 측 API와 AI 통합 방식
const posts = quick.db.collection('posts');
const created = await posts.create({ title: 'Hello Quick DB', status: 'draft', created_at: new Date().toISOString() });이 코드는 Quick의 클라이언트 측 데이터베이스 API를 사용해 'posts' 컬렉션에 새 문서를 생성하는 예시이다.
const unsubscribe = posts.subscribe({ onCreate: (doc) => console.log('New:', doc), onUpdate: (doc) => console.log('Updated:', doc), onDelete: (id) => console.log('Deleted:', id), });이 코드는 Quick의 구독 API 사용 예시로, 컬렉션 변경을 실시간으로 받아 처리하는 콜백을 등록하는 방법을 보여 준다.
const res = await quick.ai.chat([{ role: 'user', content: 'Summarize my tasks' }]);이 코드는 브라우저에서 Quick의 AI 클라이언트를 통해 LLM에 프롬프트를 전달하고 응답을 받는 예시로서 API 키 없이 서버 측에서 프록시된 호출이 이뤄진다.
Agent 통합과 내부 확산
- Quick은 현재 50,000개 이상의 사이트를 호스팅하고 있다. — Adoption 문단, 'Today, Quick hosts more than 50,000 sites across Shopify' 문장
- Quick 사용자 중 50% 이상이 적어도 하나의 사이트를 생성했다. — Adoption 문단, 'Over half the company has created at least one' 문장
오픈 공유 문화와 제약 철학
유지보수·비용·운영 실제
- 플랫폼 전체가 단일 VM에서 동작하며 월 운영 비용은 약 200달러이다. — Maintenance 문단, 'All of this is running on a single VM that costs $200 a month to run' 문장
용어 해설
- gcsfuse
- — gcsfuse는 Google Cloud Storage 버킷을 로컬 파일시스템처럼 마운트해 주는 도구로서, 애플리케이션이 원격 객체를 로컬 파일로 접근하듯 다룰 수 있게 한다. Quick에서는 버킷을 gcsfuse로 마운트해 NGINX가 특별한 버킷 쿼리 로직 없이 정적 파일을 서빙하도록 구성해 배포 복잡도를 크게 낮췄다. 이 방식은 파일 업로드-서빙 경로를 단순화하므로 작은 프로토타입을 신속히 호스팅할 때 운영 오버헤드를 줄여 준다.
- Identity-Aware Proxy
- — Identity-Aware Proxy(IAP)는 요청을 수신하기 전 사용자 인증을 강제하는 프록시 계층으로서, 내부 사이트 접근을 Shopify 직원으로 한정하는 접근 제어를 수행한다. Quick은 모든 요청을 IAP 뒤에 두어 각 사이트에 도달하기 전 이미 검증된 신원을 확보하고 이를 기반으로 서버 측 API에서 사용자 정보를 신뢰할 수 있게 했다. 이 접근법은 내부 전용 서비스에서 공개 키 관리·인증 로직을 단순화하는 장점이 있다.
- CloudSQL
- — CloudSQL은 관리형 관계형 데이터베이스 서비스로서 단일 인스턴스에서 SQL 데이터 저장과 질의를 제공한다. Quick에서는 각 사이트마다 로컬 sqlite를 운영하는 대신 중앙 CloudSQL 인스턴스에 node/Go 기반 서버를 두어 단일 DB로 읽기·쓰기·구독 패턴을 처리했다. 중앙 DB 구조는 데이터 동기화와 실시간 구독 기능 구현을 간소화하지만 대량 데이터 쓰기에는 별도의 제한과 관리가 필요하다.
- WebSocket
- — WebSocket은 브라우저와 서버 간에 양방향, 지속적 연결을 유지해 실시간 업데이트를 전달하는 프로토콜이다. Quick은 WebSocket API를 통해 멀티플레이어 커서, 실시간 폴링, 협업 기능을 제공해 클라이언트 간 상태를 즉시 동기화할 수 있게 했다. 이로 인해 게임·실시간 투표 같은 상호작용적 애플리케이션을 내부 신뢰 경계 안에서 손쉽게 구현할 수 있다.
- gcloud rsync
- — gcloud rsync는 로컬 디렉터리와 Google Cloud Storage 버킷 간 파일을 동기화하는 명령줄 유틸리티로서, 파일 변경을 효율적으로 푸시하는 데 사용된다. Quick의 배포 흐름에서 `quick deploy`는 본질적으로 gcloud rsync 래퍼 역할을 하여 사용자가 로컬 폴더를 버킷으로 간단히 업로드할 수 있게 했다. 이 방식은 전통적 FTP 같은 사용 경험을 제공하면서도 GCS의 안정성과 접근 제어를 활용한다.
언급된 리소스
AI 요약 · 북마크 · 개인 피드 설정 — 무료
출처 · 인용 안내
인용 시 "요약 출처: AI Trends (aitrends.kr)"를 표기하고, 사실 확인은 원문 보기 기준으로 진행해 주세요. 자세한 기준은 운영 정책을 참고해 주세요.
