JELL
ProjectsSkillsAboutBlogContact
ProjectsSkillsAboutBlogContact
JELL

Full-stack developer building modern web and mobile applications with a focus on user experience and performance.

Made withandNext.js 14
QUICK LINKS
  • →Projects
  • →Skills
  • →About
  • →Contact
CONNECT
GitHubLinkedInEmail

© 2026 JELL

PRIVACY
프로젝트 목록
🔗

jell-short

Full Stack WebLIVE

Rust + Axum 기반 셀프호스팅 URL 단축기 (s.jell.kr)

Period:2026.05 - 현재
Role:1인 개발

Rust와 Axum 프레임워크로 구현한 고성능 셀프호스팅 URL 단축기입니다. sqlx + PostgreSQL 기반에 Base62 인코딩 코드 생성, Token Bucket 기반 레이트 리미터, QR 코드 생성, 비밀번호 보호 URL 등의 기능을 갖췄습니다. TDD(21개 테스트)로 개발하고 Docker 멀티스테이지 빌드 + nginx 리버스 프록시로 jell-server에 배포했습니다.

TECH STACK
Backend
RustAxumsqlx (PostgreSQL)tokiosha2qrcode-rs
Infrastructure
Docker (multi-stage build)nginxTeamCity CI
KEY FEATURES

Base62 URL 단축

Auto-increment ID → Base62 인코딩으로 짧고 예측 불가능한 코드 생성

커스텀 코드 + 비밀번호 보호

사용자 지정 슬러그 + 선택적 비밀번호 보호 URL (SHA-256 해싱 + 상수시간 비교)

QR 코드 자동 생성

단축 URL 생성 시 PNG QR 코드 자동 생성 및 다운로드 제공

Token Bucket 레이트 리미팅

IP 기반 Token Bucket 알고리즘 — API 60 req/min, 리다이렉트 120 req/min

ACHIEVEMENTS
🦀

Rust + Axum 프로덕션 배포

PRD 작성 → TDD 개발 → Docker 배포까지 단일 세션 완주

✅

TDD 21 테스트

URL 검증, 예약어 차단, 리다이렉션, 만료, QR 등 핵심 로직 전수 테스트

🐳

Docker 멀티스테이지 빌드

빌더 이미지(rust:slim) → 실행 이미지(debian:bookworm-slim) 분리로 경량 컨테이너

SCREENSHOTS
jell-short URL 단축 대시보드
CODE STATS
2,500
Total Lines
2,500
Backend Lines
21
Tests Lines
ARCHITECTURE

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

KEY DECISIONS

  • Rust + Axum 선택 — 메모리 안전성 + 비동기 성능 + 단일 바이너리 배포
  • sqlx + PostgreSQL — async 네이티브 드라이버, 공용 postgres 컨테이너 재사용
  • SHA-256 + subtle::ConstantTimeEq — 비밀번호 타이밍 공격 방지
  • Base62 인코딩 — URL-safe 문자만 사용 (a-z, A-Z, 0-9)
  • Token Bucket — 고정 윈도우 대비 버스트 허용으로 UX 향상
PROJECT LINKS
Private repoLive Demo

더 많은 프로젝트가 궁금하신가요?

모든 프로젝트 보기→