고객 사례 마케팅 웹사이트

지금 보고 있는 사이트, URL 하나 잃지 않고 Next.js에서 Rust로

envixo.com은 99개 언어로 제공됩니다. 이 사이트를 Next.js에서 Rust로 재작성하고, 전환 전에 모든 URL을 기존 사이트와 비교했으며, 검색 엔진과 오른쪽에서 왼쪽으로 쓰는 언어, AI 어시스턴트에 대해 기존 사이트가 잘못했던 부분을 바로잡았습니다.

고객
Envixo
플랫폼
웹
산업
마케팅 웹사이트
출시
2026

과제

Next.js 사이트는 잘 작동했지만 512 MB 메모리를 예약한 Node.js 서버가 필요했고, 페이지마다 약 150 KB의 HTML을 보냈으며 빈틈이 있었습니다. 오른쪽에서 왼쪽으로 쓰는 레이아웃이 없었고, 구조화된 데이터는 JavaScript로만 추가되었습니다.

이전: 512 MB 메모리를 예약한 Node.js 서버
이후: 약 33 MB 컨테이너의 Rust 바이너리, 메모리 약 46 MB 사용
이전: React 페이로드를 포함해 페이지마다 약 150 KB의 HTML
이후: 서버에서 렌더링한 HTML, 필요한 곳에만 순수 JavaScript
이전: 페이지 로드 후 JavaScript가 추가하던 구조화된 데이터
이후: 서버가 보내는 HTML에 번역된 JSON-LD 포함
이전: 아랍어, 히브리어, 페르시아어와 다른 네 개 언어가 왼쪽에서 오른쪽으로 배치
이후: 오른쪽에서 왼쪽으로 쓰는 7개 언어 모두 제대로 배치
이전: www.envixo.com은 오류를 반환했고 llms.txt가 없었음
이후: www는 envixo.com으로 리디렉션되고, /llms.txt가 AI 어시스턴트에 회사를 설명

우리가 만든 것

axum과 Askama를 쓰는 Rust 서버가 동일한 URL, 동일한 99개 로케일 파일, 동일한 디자인을 제공하며, Tailwind와 순수 JavaScript로 만들었습니다.

동일한 URL과 리디렉션

언어 감지, 로케일 접두사, 끝의 슬래시, 언어 쿠키가 기존 사이트와 똑같이 동작하므로 링크나 검색 순위를 잃지 않았습니다.

SEO는 그대로, 그다음 더 좋게

메타데이터, hreflang, JSON-LD, 사이트맵이 기존 사이트와 일치하며, 소셜 공유 태그를 바로잡고 llms.txt를 새로 추가했습니다.

차이 0건이라는 관문

도구가 기존 사이트와 새 사이트의 모든 URL을 비교했습니다. 전환 조건은 차이 0건이었고, 영어·아랍어·일본어로 세 가지 너비의 스크린샷도 함께 확인했습니다.

3D로 둘러보기

랜딩 페이지 전체를 안내하는 three.js 투어, 3D를 쓸 수 없을 때는 간단한 목록으로 제공합니다.

SDK 없는 문의 양식

Cloudflare Turnstile로 스팸을 걸러내고 Amazon SES로 메일을 보내며, 요청은 직접 서명하고 허니팟과 방문자별 전송 제한을 둡니다.

오류는 보고하고, 키는 안전하게

서버와 브라우저 오류는 Honeybadger로 보내고, API 키는 페이지에 노출되지 않습니다.

엔지니어링 성과

메모리는 2026년 10월 프로덕션에서 측정했고, 이미지 크기는 빌드 결과입니다. 사이트맵 URL 수는 자동 테스트로 확인합니다.

~33 MB
사이트 전체의 컨테이너 이미지
~46 MB
사용 중인 메모리
99
동일한 로케일 파일로 제공되는 언어
594
모두 유지된 사이트맵 URL
  • 롤백은 DNS 변경, 기존 사이트는 7일간 유지
  • 테스트와 이미지 빌드가 통과하면 의존성 업데이트는 자동으로 병합
  • 테스트와 빌드는 Envixo 자체 CI 러너에서 실행
  • 이전과 같은 로케일 파일로 99개 언어 제공

기술

  • Rust
  • axum
  • Askama
  • Tailwind CSS
  • three.js
  • Amazon SES
  • Cloudflare Turnstile
  • Kubernetes

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

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