피드로 돌아가기
Dev.toBackend
원문 읽기
Rust/Axum 기반 14개 언어 지원 코드 실행 엔진 구축
I built a code runner for 14 languages - try to break it and test
AI 요약
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 프레임워크 배제로 초기 로딩 속도 및 런타임 성능 최적화 가능성 확인