피드로 돌아가기
Dev.toBackend
원문 읽기
WebSockets 기반 실시간 동기화와 Sandboxed Execution을 적용한 코딩 경쟁 플랫폼
I built a real-time competitive coding platform — Dev-Battle
AI 요약
Context
단순 코딩 연습의 정적인 한계를 극복하기 위한 실시간 경쟁 환경 필요성 대두. 동일 문제에 대해 두 개발자가 동시에 경쟁하는 Low-latency 동기화 환경 및 안전한 코드 실행 환경 구축이 핵심 과제임.
Technical Solution
- WebSockets 기반의 실시간 상태 동기화를 통한 Match State 정합성 유지 및 Low-latency 업데이트 구현
- 사용자 제출 코드의 안정적인 평가와 격리된 실행 환경 확보를 위한 Sandboxed container runner 도입
- Frontend와 Backend 간의 타입 일관성 유지 및 개발 생산성 향상을 위한 pnpm Monorepo와 OpenAPI codegen 구조 설계
- 효율적인 데이터 모델링과 타입 안전한 쿼리 수행을 위한 SQL 및 Drizzle ORM 조합 채택
- AI microservice 분리를 통한 힌트 제공 로직의 모듈화 및 시스템 확장성 확보
실천 포인트
1. 실시간 상태 동기화 필요 시 WebSocket 기반의 상태 관리 전략 수립 여부 확인
2. 신뢰할 수 없는 사용자 코드 실행 시 Container 수준의 Sandbox 격리 환경 적용 검토
3. 풀스택 개발 시 Monorepo와 Codegen을 통한 타입 공유 체계 구축으로 런타임 에러 방지