요구사항 정의서

기능적 (FR) 14 + 비기능적 (NFR) 10 + 인수 기준 — v1.0 기준

쉽게 말하면 — 이 시스템이 무엇을 해야 하고(FR), 얼마나 잘해야 하는지(NFR)를 적은 명세서예요. 용어가 생소하면 먼저 쉬운 설명 을 보세요.

FR 14 NFR 10 v1.0 충족

1. 시스템 범위

✓ 범위 내 (In Scope)
  • • 한 algorithm 키워드 → 한 검증된 문제 (spec + golden/brute + verification + samples)
  • • 코드 기반 독립 검증 (19 symbolic verifier) + N≥3 측정 게이트
  • • 단일 실행 단위 (run_id 격리) + outputs/ 영속화 + 공유 PostgreSQL 문제 은행 적재(#150)
  • • Python / Java 솔루션 언어 · 4-tier sandboxed local execution
✗ 범위 외 (현재)
  • • 웹 UI / 사용자 인증 / 다중 사용자 세션 (HTTP API delivery layer 는 #144~145 로 구현 — generate/jobs/healthz + 컨테이너 배포; 인증·멀티테넌트는 후속)
  • • 자동 채점 시스템 통합 (출력 schema·samples 만 호환) — 단 공유 PostgreSQL 문제 은행 적재 + 백엔드 계약 v3.1 은 구현(#150·#166~168)
  • • 알고리즘 은닉 · 기법 합성 · hiring-grade 난이도 → Phase 3 (v2) M0~M6 구현 완료
  • • 난이도 calibration (별도 트랙 R4) → 구현 완료 — solved.ac 실측 20티어 보정(#161~162)

2. 기능 요구사항 (FR)

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

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

10개 비기능 요구사항 — 시스템이 어떻게 동작해야 하는가 (측정값 반영)

4. 인수 기준 — v1.0 (anchor freeze)

Phase 2c RCA3 final 시점 충족 상태 (CHANGES §67)

✅ 정확성 (측정 게이트)
  • ✓ Gate 52/57 (91.2%) · N=3 cross-algorithm
  • ✓ sample-level 97.7% · samples_engaged 99.1%
  • ✓ mean iteration 1.07 (거의 1-shot)
  • ✓ v0 baseline 27% 대비 +64pp
  • ✓ 19 algorithm catalog (Graph/DS/DP family)
✅ 코드 품질
  • ✓ v1 515 + v2 347 collected — 3세대→2 파이프라인 수렴(v0 제거+v1 prune, #163); ipe/v2 M0~M6 + API + 배치/은행 + DB·관리콘솔·QA Sonnet + ingest·난이도R4·알고리즘 N:M정션·공개번호·계약 v3.1 + 출하율 수선·단일 IR 아키텍처·초급 트랙(#144~175)
  • ✓ coverage 87% (ipe/v1)
  • ✓ ruff 0 / mypy --strict 0
  • ✓ typed artifact 노드 계약 (Pydantic v2)
  • ✓ 파일 ≤ 800 lines 규율
✅ 운영 / 산출물
  • ✓ outputs/<run_id>/ 영속화 (online judge 호환)
  • ✓ resume / replay (SqliteSaver + trace)
  • ✓ 4-tier sandbox + isolation
  • ✓ measurement runner (opt-in outputs)
  • ✓ SPEC / ARCHITECTURE / PRINCIPLES / CHANGES SSOT

5. 알려진 한계 (솔직한 명시)

운영 시 인지 필요 — v1.0 시점

산출물이 toy 수준 — 알고리즘이 입력으로 노출됨
algorithm 키워드가 입력이라 "무엇을 쓸지 알아내는" 모델링 역량이 빠져 있다. 기업 코테 수준에는 미달 — Phase 3 (v2) 의 알고리즘 은닉/기법 합성(M3·M6 구현 완료)으로 해소. v2 파이프라인은 정리 국면.
잔존 variance ~5/57 (각 algo 2/3, persistent 없음)
남은 실패는 systematic 이 아니라 sampling variance. P3 Option B (sample_mismatch + invariant=[] → architect back-route) 로 routing 차원 자동 회복 적용.
검증 천장 — 합성·은닉 문제는 정석 symbolic 이 안 맞음
현재 검증은 symbolic(Tier A) 중심. v2 의 복잡한 산출물을 신뢰하려면 differential + metamorphic (Tier B) 가 필요 — M1 에서 Tier B≈Tier A 를 19-algo 로 실증 완료.
Java integration test: Linux CI 에서 skip
RLIMIT_AS + JVM 상호작용 불안정 → macOS 만 검증.