요구사항 정의서

기능적 (FR) 14 + 비기능적 (NFR) 10 + 인수 기준

FR 14 NFR 10 DoD 4/5 충족

1. 시스템 범위

✓ 범위 내 (In Scope)
  • • 한 algorithm 키워드 → 한 검증된 문제 (problem.json + solution + testcases)
  • • 단일 사용자, 단일 실행 단위 (run_id별 격리)
  • • Python / Java 솔루션 언어
  • • Sandboxed local execution (4-tier)
✗ 범위 외 (Out of Scope)
  • • 웹 UI / 사용자 인증 / 다중 사용자 세션
  • • 자동 채점 시스템 통합 (출력 schema만 호환)
  • • 문제 데이터베이스 / 검색 인터페이스
  • • 다언어 문제 description 번역

2. 기능 요구사항 (FR)

14개 기능 요구사항 — 시스템이 무엇을 하는가

3. 비기능 요구사항 (NFR)

10개 비기능 요구사항 — 시스템이 어떻게 동작해야 하는가

4. 인수 기준

v0.2.0 release 시점 충족 상태

✅ 코어 인프라 (v0.1.0~v0.1.1)
  • ✓ 12-phase 구현 (P0~P12) DoD 통과
  • ✓ 247 tests passed, coverage 93%
  • ✓ ruff 0 / mypy --strict 0
  • ✓ 3-Phase 검증 + brute cross-check
  • ✓ Resume / Replay 검증
  • ✓ 4-tier sandbox + isolation self-test
✅ LLM Quality (v0.2.0)
  • ✓ R-sandbox fix (race 차단)
  • ✓ R1/R10/R11/R13/R15/R14/R3/R-bfs
  • DoD 4/5+ success (Run 11/12 2회 연속)
✅ 문서 / 운영
  • ✓ docs/dev/ (PROJECT_SPEC / ARCHITECTURE / ROADMAP / GUIDE)
  • ✓ RCA + playbook (docs/improvements/)
  • ✓ CI GitHub Actions matrix 통과
  • ✓ README / REQUIREMENTS / TECH_STACK

5. 알려진 한계 (v0.2.0)

솔직한 명시 — 운영 시 인지 필요

e2e success rate: 4/5 (variance ±1)
5 case 중 평균 4 success. BFS / Segment Tree는 case-by-case variance. v0.2.1에서 결정적 fix (R-gen-cap / R-osc-break) 검토.
LLM 비결정성
동일 알고리즘이 run마다 다른 결과 가능 — R14 Best-of-N으로 완화. prompt-side fix 한계 도달.
Java integration test: Linux CI에서 skip
RLIMIT_AS + JVM 상호작용 불안정 → macOS만 검증.
ChatAnthropic hang resilience 없음
외부 API 503/timeout 시 e2e 전체 lose 가능 — R12 backlog.