분석 로직·엔진·기능의 변경 사항을 날짜순으로 기록합니다. 점수 계산 방식이 바뀌면 같은 계정도 이전과 다른 점수가 나올 수 있으니, 결과를 비교할 때는 버전을 함께 확인하세요.
v3.1 · 2026-09-18
결정국면 규칙을 비대칭으로 — 역전 과정도 평가에 포함
v3는 평가가 ±4폰을 넘으면 이기고 있든 지고 있든 그 수를 빼서, 크게 밀리다가 뒤집은 게임의 역전 과정이 통째로 빠지는 문제가 있었습니다. "지고 있을 때만 엔진을 켜는" 패턴이 바로 그 구간에 있는데도요.
제외는 "내가 +4폰 넘게 이기고 있을 때"에만 적용합니다. 이긴 국면의 쉬운 수는 실력 정보가 없다는 판단은 그대로입니다.
-4 ~ -10폰으로 지고 있는 구간의 수는 가중치 0.6으로 계속 셉니다. 지는 쪽은 대충 두면 바로 손실이 커지므로 정보가 있고, 사람의 역전은 대개 상대 블런더로 만들어져 정상 유저의 점수를 올릴 이유가 없습니다. 되잡기 같은 강제수 가중치는 그대로 겹쳐 적용됩니다.
-10폰 아래나 메이트가 확정된 절망 구간은 여전히 제외합니다.
규칙이 바뀌어 같은 일반 계정 57개를 다시 분석해 레이팅별 기대치 표를 재보정했습니다. 정상 유저의 ACPL 평균은 거의 움직이지 않았고(열세 구간의 수는 전체의 일부이고 가중치도 낮음), 밴 계정 6개는 97·91·61·42·30·38점으로 v3(96·90·59·40·29·24)보다 같거나 조금 올랐습니다. 특히 지고 있을 때 정확해지는 유형(24→38)에서 차이가 났습니다. 일반 계정 57개는 평균 13점, 최고 44점, 50점 이상 없음.
v3 · 2026-09-15
분석 로직 재설계, Stockfish 18, 친선전 필터, 백그라운드 대응
"초반에 압살한 게임"과 "20수 넘는 엔드게임"이 실제보다 훨씬 의심스럽게 잡히고, 암기한 라인을 3초 안에 두는 플레이가 "균일한 시간"으로 오해되던 문제를 고치기 위해 채점 파이프라인을 다시 짰습니다.
엔진
Stockfish 18 Lite(WASM·NNUE)를 기본 엔진으로 교체했습니다. 이전 Stockfish 10(2019, asm.js)보다 같은 깊이에서 약 20배 빠르고, 신경망 평가라 낮은 깊이에서도 평가가 안정적입니다. 구형 브라우저에서는 Stockfish 10으로 자동 폴백하며, 옵션에서 직접 고를 수도 있습니다.
엔진 깊이 14·16을 추가하고 기본값을 10에서 12로 올렸습니다. (Stockfish 18 기준 한 수당 대략 depth 10 ≈ 0.1초, 12 ≈ 0.2초, 14 ≈ 0.5초, 16 ≈ 1초)
엔진 응답 타임아웃 처리에서, 늦게 도착한 결과가 다음 수의 결과를 오염시키던 경합을 수정했습니다.
무엇을 세지 않게 되었나
오프닝 스킵 확대: 처음 5수 → 8수(16플라이) 제외. 여기에 대상이 3초(블리츠 2초) 안에 연달아 둔 "즉답 구간"을 암기 라인으로 보고, 처음으로 생각한 수부터 평가합니다(최대 15수까지 확장). 표의 "분석 구간"에 ⚡로 표시됩니다.
결정난 국면 제외: 평가가 ±4폰(400cp)을 넘는 자리는 제외합니다(이전 ±8폰). 이미 이긴 국면에서의 쉬운 수는 실력 정보가 없는데, 초반 압살 게임에서는 이런 수가 대부분이라 점수가 부풀었습니다.
강제수·동점수·단순 엔드게임 가중치: 1위와 2위 수의 차이가 200cp 이상인 강제수(되잡기·메이트 위협)는 0.5, 10cp 이내의 사실상 동점인 자리는 0.7, 킹·폰 외 기물 합이 6점 이하인 단순 엔드게임은 추가로 0.5의 가중치를 줍니다. 유일수(합법수 1개)는 아예 엔진을 돌리지 않습니다.
데일리(통신전) 게임 항상 제외: 오프닝 자료 참고가 허용되는 형식이라 분석 대상에서 뺐습니다.
점수 계산
게임 의심도를 z-점수로 재정의: ACPL 괴리와 Top1 초과를 각각 표본 크기를 반영한 z-점수로 바꾼 뒤(일치율은 이항 표준오차 기준) 하나의 결합 z로 합칩니다. 이전에는 두 지표의 0~1 램프를 단순 합산해, 짧은 게임에서 1.3σ + 1.3σ 같은 평범한 편차가 "플래그"로 잡혔습니다. 두 지표가 같은 방향으로 함께 움직이는 점(상관 ≈ 0.5)도 반영했습니다.
일관성 통계(Stouffer 결합 z) 도입: 종합 점수는 이제 "가장 엔진 같은 판들"(상위편향 가중 평균, 45%)과 "판마다 꾸준히 기대 이상인가"(게임별 결합 z의 합 ÷ √N, 55%)의 두 축으로 계산합니다. 후자가 v2의 "플래그 비율"을 대체하며, 정상 유저는 판이 늘어도 0 근처에 머물고 상시 치팅 계정은 판 수와 함께 커집니다.
레이팅 기대치 재보정: 새 엔진과 새 제외 규칙으로 레이팅 650~2800의 정상 계정 약 50개(400여 게임)를 실제로 분석해 밴드별 가중 ACPL·일치율의 평균과 표준편차를 새 기대치로 잡았습니다. 결정 국면을 빼면 저레이팅의 대형 블런더 뒤 구간이 사라져, 레이팅별 ACPL 차이가 통념보다 훨씬 완만합니다(700점대 ≈ 75, 1550 ≈ 57, 1800 ≈ 48, 2350 ≈ 34). 1599와 1600 사이에서 기대치가 계단식으로 튀던 것도 앵커 사이 선형 보간으로 없앴습니다. 블리츠·불릿은 래피드 대비 각각 1.12·1.35배의 손실을 기대치로 둡니다.
검증: 무작위로 뽑은 일반 계정 57개(650~2760)는 평균 14점, 50점을 넘긴 계정은 1개였고, 페어플레이 위반으로 닫힌 계정 6개는 96·90·59·40·29·24점이 나왔습니다. 밴 계정 중 최근 8판이 대부분 사람처럼 보이는 간헐적 사례는 낮게 나올 수 있으니, 의심되면 분석 게임 수를 12판으로 늘려 추세를 보세요.
시간 지표 재정의: 오프닝 이후 구간의 수 시간만 사용하고, 평균 수 시간이 3초(블리츠 2초) 미만인 "즉답 위주" 게임은 균일성 판정에서 제외합니다. 빠른 플레이는 엔진을 볼 시간이 없다는 뜻이라 의심 신호가 아닙니다. 불릿은 시간 지표를 적용하지 않습니다.
유효 게임 판정 기준을 "분석 8수 이상"에서 "가중 유효 표본 6 이상"으로 바꿨습니다.