← 목록으로

Show GN: jevcompat - "Jev 호환" 서버가 실제로 API 계약을 지키는지 검사하는 스펙과 테스트 도구

요약
  • Jev 호환 서버의 API 계약 준수 여부를 검사하기 위해 'jevcompat' 스펙과 테스트 도구가 개발되었습니다.
  • 검사 결과, 대다수 클론 서버가 신뢰도 계산 방식의 차이나 필수 요구사항 누락 등의 문제를 가지고 있는 것으로 나타났습니다.
  • 이 도구는 한 줄의 명령어로 실행할 수 있으며, 프록시와 GitHub Action을 통해 문제 해결을 지원합니다.

Jev(TypeSafe의 타입 있는 결정 모델)의 핵심은 보정된 confidence입니다. 임계값을 정해 두고, 넘는 답은 자동 처리하고, 넘지 못한 답은 사람에게 넘깁니다. 출시 9일 만에 "Jev 호환" 오픈소스 서버가 100개 가까이 생겨서, API 계약을 요구사항 48개짜리 스펙으로 쓰고(각 요구사항에 TypeSafe 문서·OpenAPI·SDK 출처 표기) 아무 서버나 검사하는 도구를 만들었습니다.

예상하지 못한 발견이 있었습니다.

  • 서버마다 confidence를 네 가지 방식으로 계산합니다(TypeSafe 공식, 최고 확률, 1·2위 차이, 1 − 엔트로피).
  • 같은 답 204개에 임계값 0.9를 적용하면 TypeSafe 공식으로는 58%가 자동 승인되는데, 스타가 가장 많은 클론의 방식으로는 30%만 승인됩니다.
  • Jev에 맞춰 튜닝한 코드를 클론으로 옮기면 자동화율이 조용히 절반이 됩니다.

스타 상위 8개 중 필수 요구사항을 모두 지킨 서버는 2개입니다. 나머지는 선택지를 26·50·64개에서 막거나(문서는 255개), SDK 기본 모델 이름을 거부하거나, score가 자기 확률의 기댓값이 아닙니다. 한 서버는 질문 순서만 바꿔도 답이 0.77에서 0.35로 뒤집힙니다.

남의 프로젝트를 공개로 채점하는 도구라 오탐을 가장 경계했습니다.

  • 모든 검사가 실제로 실패할 수 있다는 걸 결함 주입으로 증명했습니다.
  • 통계 검사는 여러 시드로 오탐률을 테스트했습니다.
  • 공개한 실패는 전부 사람이 증거와 대조했습니다. 그 과정에서 제 도구의 버그 5개를 먼저 고쳤습니다.

uvx jevcompat test http://localhost:8000 한 줄로 돌려볼 수 있습니다. 고칠 수 있는 건 고쳐 주는 프록시와 GitHub Action도 들어 있습니다.

그냥 목록으로
원문 보기 ↗