피드로 돌아가기
I built a code runner for 14 languages - try to break it and test
Dev.toDev.to
Backend

Rust/Axum 기반 14개 언어 지원 코드 실행 엔진 구축

I built a code runner for 14 languages - try to break it and test

Vojtěch Mikle2026년 5월 27일1intermediate

Context

IDE 실행이나 REPL 설정 없이 코드 스니펫을 즉시 테스트하려는 요구사항 발생. 프레임워크 의존성을 최소화하고 빠르게 실행 결과를 확인할 수 있는 경량 코드 런너 환경 필요.

Technical Solution

  • Rust/Axum 기반 백엔드 설계를 통한 고성능 요청 처리 및 프로세스 제어
  • 임시 디렉터리 내 프로세스 생성을 통한 언어별 독립적 코드 컴파일 및 실행 환경 구축
  • 무한 루프 및 시스템 자원 고갈 방지를 위한 30초 타임아웃 강제 종료 로직 적용
  • Base64 인코딩 기반 URL 해시 설계를 통한 서버리스 상태의 코드 공유 메커니즘 구현
  • CodeMirror 6 및 Vanilla JS 채택으로 프레임워크 오버헤드를 제거한 초경량 프론트엔드 구성
  • HTML/CSS/JS의 경우 서버 API 호출 없이 Client-side iframe 렌더링으로 처리하는 하이브리드 실행 구조

1. 외부 코드 실행 시 Resource Exhaustion 방지를 위한 프로세스 Kill Timeout 설정 여부 검토

2. 상태 유지 비용 절감을 위해 단순 데이터 전달 시 Base64 URL Encoding 활용 고려

3. 불필요한 JS 프레임워크 배제로 초기 로딩 속도 및 런타임 성능 최적화 가능성 확인

원문 읽기