C-Runner API는 웹 환경에서 C 코드를 실행할 수 있는 간단한 API 서비스입니다.
Flask 서버와 TinyCC(TCC) 컴파일러를 사용해 C 코드를 컴파일하고 실행 결과를 JSON으로 반환합니다.
이 프로젝트는 Markdown 기반 문서 사이트에서 C 코드 블록을 직접 실행할 수 있도록 지원하는 백엔드 서비스로 개발되었습니다.
일반적인 C 실행 API로도 자유롭게 활용할 수 있습니다.
- 프로덕션 환경 사용 금지: 이 서버는 사용자 제공 C 코드를 직접 실행하므로 보안 위험이 있습니다.
- 프로덕션에 배포하려면 다음 사항을 구현해야 합니다:
- API 접근 제한 및 인증 메커니즘 추가
- CORS 설정 제한 (현재는 모든 도메인 허용)
- 코드 실행 샌드박스 강화
- 등등
.
├── Dockerfile # 도커 이미지 빌드 설정 - TCC 구성 포함
├── LICENSE # 라이선스 정보
├── README.md # 프로젝트 설명서
├── app.py # Flask API 서버 코드
└── requirements.txt # Python 의존성 패키지
docker build -t c-runner-api-server .docker run -d -p 5555:5000 --name c-runner c-runner-api-server- 포트 매핑: 호스트 5555 → 컨테이너 5000
- 필요시 포트 번호 변경 가능
- URL:
/execute_c - 메서드: POST
- Content-Type: application/json
{
"code": "C 코드 문자열",
"args": "명령행 인수 (선택사항)"
}{
"output": "표준 출력 결과",
"error": "표준 에러 출력 또는 에러 메시지",
"exit_code": "종료 코드 (정수)"
}각 C 코드 실행은 격리된 환경에서 수행됩니다:
/tmp디렉토리에서만 파일 읽기/쓰기 가능- 각 실행마다 고유 UUID 기반 작업 디렉터리 생성
- 실행 완료 후 작업 디렉터리 및 모든 임시 파일 자동 삭제
- 10초 타임아웃으로 무한 루프 방지
API 사용에 관한 자세한 정보, 테스트 케이스, 파일 입출력 예시 등은 API 문서를 참조하세요.
