피드로 돌아가기
We Built an Open-Source Coding Exam Platform Because Every Vendor Let Us Down
Dev.toDev.to
Backend

AI 보조 개발로 300명 동시 접속 가능한 ICPC 기반 코딩 플랫폼 구축

We Built an Open-Source Coding Exam Platform Because Every Vendor Let Us Down

arun rajkumar2026년 4월 11일6intermediate

Context

기존 벤더 솔루션의 동시 접속 제한 및 경직된 문제 형식으로 인한 채용 프로세스 병목 발생. 높은 비용 대비 낮은 유연성과 단순 DSA 암기 위주의 평가 방식이 기술적 제약으로 작용함.

Technical Solution

  • Judge0 Sandboxed Execution 도입을 통한 코드 격리 실행 및 병렬 테스트 케이스 처리 구조 설계
  • PostgreSQL Materialized View 기반의 실시간 리더보드 구현으로 O(1) 시간 복잡도의 랭킹 쿼리 최적화
  • Pessimistic Lock 적용을 통한 ICPC 페널티 공식의 Race-condition 방지 및 데이터 일관성 확보
  • Server-Synced Timer 및 Debounce-save 로직 구현을 통한 클라이언트 조작 방지와 데이터 유실 방지
  • NestJS 기반의 SubmissionsService 구축으로 Judge0 API 요청의 자동 청킹 및 폴링 메커니즘 구현
  • Vue 3 SPA와 NestJS API의 단일 이미지 패키징을 통한 인프라 단순화 및 배포 효율 증대

1. 실시간 랭킹 시스템 설계 시 Materialized View를 통한 읽기 성능 최적화 검토

2. 동시성 제어가 필요한 스코어 업데이트 시 Pessimistic Lock 적용 여부 판단

3. 외부 실행 엔진(Judge0 등) 연동 시 API Rate Limit 대응을 위한 요청 청킹 전략 수립

4. 클라이언트 신뢰도를 낮춘 Server-side Time Validation 로직 적용

원문 읽기