지금 보고 있는 사이트, URL 하나 잃지 않고 Next.js에서 Rust로
envixo.com은 99개 언어로 제공됩니다. 이 사이트를 Next.js에서 Rust로 재작성하고, 전환 전에 모든 URL을 기존 사이트와 비교했으며, 검색 엔진과 오른쪽에서 왼쪽으로 쓰는 언어, AI 어시스턴트에 대해 기존 사이트가 잘못했던 부분을 바로잡았습니다.
- 고객
- Envixo
- 플랫폼
- 웹
- 산업
- 마케팅 웹사이트
- 출시
- 2026
과제
Next.js 사이트는 잘 작동했지만 512 MB 메모리를 예약한 Node.js 서버가 필요했고, 페이지마다 약 150 KB의 HTML을 보냈으며 빈틈이 있었습니다. 오른쪽에서 왼쪽으로 쓰는 레이아웃이 없었고, 구조화된 데이터는 JavaScript로만 추가되었습니다.
우리가 만든 것
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 수는 자동 테스트로 확인합니다.
- 롤백은 DNS 변경, 기존 사이트는 7일간 유지
- 테스트와 이미지 빌드가 통과하면 의존성 업데이트는 자동으로 병합
- 테스트와 빌드는 Envixo 자체 CI 러너에서 실행
- 이전과 같은 로케일 파일로 99개 언어 제공
기술
- Rust
- axum
- Askama
- Tailwind CSS
- three.js
- Amazon SES
- Cloudflare Turnstile
- Kubernetes