피드로 돌아가기
Dev.toInfrastructure
원문 읽기
Legacy BOCA의 운영 복잡성 해결을 위한 Container 기반 Open-Source Judge 설계
Why I Built an Open-Source Online Judge Instead of Maintaining a Legacy One
AI 요약
Context
수동 채점 방식의 확장성 한계와 BOCA 시스템의 과도한 설정 복잡성으로 인한 운영 병목 발생. Legacy 시스템의 불투명한 구성 과정과 실시간 컨테스트 중 빈번한 Judging 실패로 인한 시스템 신뢰도 저하.
Technical Solution
- 단순 배포 및 재현성 확보를 위한 Open-Source 기반의 AutoJudge 아키텍처 설계
- Web Application, Management API, Judging System의 3계층 구조 분리를 통한 책임 분산
- Untrusted Code의 안전한 실행을 위해 Isolated Containerized Environment를 통한 런타임 격리
- 시스템 자원 고갈 방지를 위한 Execution Resource Limit 적용 및 샌드박싱 구현
- 사용자 진입 장벽 제거를 위한 IDE 통합 환경 제공으로 Local 설정 의존성 제거
- Self-hosting과 Zero-configuration 옵션을 동시에 지원하는 유연한 배포 전략 채택
실천 포인트
- Legacy 시스템의 유지보수 비용이 신규 구축 비용을 상회하는지 판단하기 위한 TCO 분석 수행 - 신뢰할 수 없는 외부 코드 실행 시 Container 기반의 격리 수준과 Resource Quota 설정 검토 - 관리자 경험(DX) 개선을 위해 설정 파일 기반의 구성에서 API 중심의 제어 구조로 전환 고려 - 사용자 온보딩 최적화를 위해 인프라 의존성을 제거한 통합 개발 환경 제공 여부 확인