Rust + Axum 기반 셀프호스팅 URL 단축기 (s.jell.kr)
Rust와 Axum 프레임워크로 구현한 고성능 셀프호스팅 URL 단축기입니다. sqlx + PostgreSQL 기반에 Base62 인코딩 코드 생성, Token Bucket 기반 레이트 리미터, QR 코드 생성, 비밀번호 보호 URL 등의 기능을 갖췄습니다. TDD(21개 테스트)로 개발하고 Docker 멀티스테이지 빌드 + nginx 리버스 프록시로 jell-server에 배포했습니다.
Auto-increment ID → Base62 인코딩으로 짧고 예측 불가능한 코드 생성
사용자 지정 슬러그 + 선택적 비밀번호 보호 URL (SHA-256 해싱 + 상수시간 비교)
단축 URL 생성 시 PNG QR 코드 자동 생성 및 다운로드 제공
IP 기반 Token Bucket 알고리즘 — API 60 req/min, 리다이렉트 120 req/min
PRD 작성 → TDD 개발 → Docker 배포까지 단일 세션 완주
URL 검증, 예약어 차단, 리다이렉션, 만료, QR 등 핵심 로직 전수 테스트
빌더 이미지(rust:slim) → 실행 이미지(debian:bookworm-slim) 분리로 경량 컨테이너

Axum HTTP 서버 + sqlx/PostgreSQL. 요청 → Token Bucket 레이트 체크 → Base62 코드 생성/조회 → PostgreSQL 영속화 → 302 리다이렉트. 비밀번호 보호 URL은 SHA-256 해싱 + 상수시간 비교. Docker 멀티스테이지 빌드로 최소 이미지, nginx 리버스 프록시로 TLS 종단.
더 많은 프로젝트가 궁금하신가요?
모든 프로젝트 보기→