pile·
프론트엔드·vercel-blogVercel Blog·

유럽 기차 노선 시각화 앱 Chronotrains의 바이럴 트래픽 대응 아키텍처

유럽 역에서 5시간 내 기차로 갈 수 있는 지역을 인터랙티브 지도로 보여주는 Chronotrains가 Hacker News 1위에 오르며 100만 뷰를 기록했다. 개발자가 휴가 중에도 무중단으로 버텼는데, 엣지 캐싱 + 이동 시간 사전 계산 + ISR 세 가지 전략이 핵심이었다.

핵심 포인트
  • API Routes를 Vercel Functions로 배포 후 엣지 네트워크 캐시로 호버마다 발생하는 PostgreSQL 조회를 흡수
  • 기차역 간 이동 시간(1~5시간)을 스크립트로 사전 계산해 PostgreSQL에 저장, 실시간 경로 탐색 없음
  • ISR(Incremental Static Regeneration)로 DB 요청을 역당 일 1회 수준으로 제한
  • 수백만 트래픽에도 개발자 휴가 중 무중단 운영
상세 정리
  • 서비스 개요: 마우스가 유럽 기차역에 닿으면 해당 역에서 5시간 내에 갈 수 있는 지역(isochrone)을 지도에 표시. 각 호버마다 기하학 데이터 API 요청 발생.
  • 바이럴 트래픽: 출시 후 개발자가 휴가를 떠났는데 Hacker News 1위 + Twitter 트렌드로 100만 뷰 이상 발생. 인프라는 무중단 유지.
  • 핵심 전략 1 — 엣지 캐싱: API Routes를 Vercel Functions로 배포하고 isochrone 결과를 Vercel 엣지 네트워크에 캐시. 같은 역을 여러 사용자가 호버할 때 PostgreSQL 조회 없이 캐시에서 응답.
  • 핵심 전략 2 — 사전 계산: 모든 역 간 이동 시간(1~5시간 단위)을 스크립트로 미리 계산해 PostgreSQL에 저장. 실시간 경로 탐색 없이 DB 조회만으로 isochrone 반환.
  • 핵심 전략 3 — ISR: Incremental Static Regeneration으로 페이지를 정적 생성하고 일정 시간 후 백그라운드 재생성. DB 요청을 역당 하루 약 1회로 제한해 DB 부하를 제어.
  • 스택: Next.js(프레임워크), Vercel(호스팅 + Functions), PostgreSQL via Supabase(데이터), Vercel Functions(API Routes).
  • 오픈소스: 전체 코드가 GitHub에 공개돼 있어 구현 세부를 확인 가능.
왜 읽나사전 계산 + 엣지 캐싱 + ISR 조합으로 지리 데이터 기반 대용량 트래픽을 효율적으로 처리하는 아키텍처를 실제 바이럴 케이스로 확인하고 싶은 웹 개발자에게 유용.
vercel-blog
Vercel Blog 블로그
원문은 여기서 이어서 읽을 수 있어요
원문 읽기
읽음 (0)

이 글과 비슷한

  1. 프론트엔드·LINE EngineeringLINE Engineering·

    AI로 웹 엔지니어 없이 LINE 앱 안에서 그룹 영상 통화 서비스 만들기

    LINE Planet 팀의 PM과 Android 엔지니어 두 명이 웹 전문 엔지니어 없이 LINE 앱 내에서 그룹 영상 통화 서비스를 개발한 과정을 다룬다. LIFF(LINE Front-end Framework)와 LINE Planet SDK를 활용해 React/Vite 기반 웹 앱을 구성했고, Firebase Cloud Functions로 별도 서버 인프라 없이 구현을 완료했다.

    #react#webrtc#firebase+2
  2. 프론트엔드·vercel-blogVercel Blog·

    Vercel과 Shopify의 Hydrogen 전면 재설계

    Vercel과 Shopify가 Hydrogen을 오픈소스·런타임 무관 프레임워크로 전면 재설계했다. 기존 Hydrogen은 빠른 헤드리스 스토어프런트 배포를 지원했지만 플랫폼 종속성이 있었고, 새 버전은 Svelte, Nuxt, Next.js 등 어느 JavaScript 프레임워크에서도 동작한다. 3레이어 아키텍처(코어/클라이언트/서버)로 재구성하면서 각 레이어가 명확한 역할을 분담한다.

    #react#nextjs#i18n+2
  3. 프론트엔드·토스 SLASH토스 SLASH·

    es-toolkit: 사내 소형 라이브러리에서 글로벌 프로젝트로

    토스 프론트엔드 팀이 사내 공유 유틸리티 라이브러리를 발전시켜 만든 es-toolkit이 주간 npm 다운로드 2,000만 건을 넘기며 글로벌 오픈소스 프로젝트로 자리 잡은 과정을 다룬다. lodash의 구조적 한계를 넘어 현대 웹 개발 환경에 최적화된 유틸리티 라이브러리를 처음부터 설계한 경험을 정리한다.

    #lodash#open-source#tree-shaking+2