엔진 평가값은 절대적인 진실이 아니다
엔진이 내놓는 숫자는 판결이 아니라 흐름으로 읽어야 한다
엔진으로 기보를 분석해 봤다면 화면에 +0.3, -1.5, 때로는 +4.7 같은 숫자가 스쳐 지나가는 걸 봤을 것이다. 이 평가값은 대단히 강력한 도구지만 거의 언제나 잘못 읽힌다. 많은 사람이 이 숫자를 국면에 대한 최종 판정으로 받아들이는데, 실제로는 맥락과 탐색 깊이, 그리고 엔진 자체의 한계에 크게 좌우되는 근삿값일 뿐이다.
이 글에서는 왜 엔진 평가값을 흐름으로 읽어야 하는지, 그리고 그 차이를 아는 것이 어떻게 기력 향상으로 이어지는지 살펴본다.
엔진 평가값은 실제로 무엇을 뜻하는가
Stockfish가 「+0.5」를 보여줄 때 그것은 지금 도달한 탐색 깊이와 살펴본 변화 범위 안에서 백의 우위를 대략 반 폰 정도로 추정한다는 뜻이다. 하지만 이 숫자는 온도계가 온도를 재듯 무언가를 측정한 값이 아니다. 패턴 인식과 탐색 알고리즘, 평가 함수에서 나온 근거 있는 추정, 즉 휴리스틱이다.
평가 함수는 킹의 안전, 기물의 활동성, 폰 구조, 공간 우위 같은 복잡한 요소를 하나의 숫자로 압축한다. 압축하면 뉘앙스는 반드시 사라진다. 같은 +0.5라도 위험 없는 탄탄한 위치적 우위일 수도 있고, 한 수만 어긋나도 평가가 두 점씩 흔들리는 양날의 국면일 수도 있다.
그래서 평가값이 같은 두 국면이 판 앞에서는 전혀 다르게 느껴진다. 숫자는 엔진이 정리한 요약이지, 이야기 전체가 아니다.
평가값은 깊이에 따라 달라진다
가장 중요한 사실은 엔진 평가값이 고정되어 있지 않다는 점이다. 깊이 15에서 Stockfish를 돌리면 +0.3이 나올 수 있다. 같은 국면을 깊이 30까지 밀어붙이면 +0.8이 될 수도, 심지어 -0.2가 될 수도 있다. 평가값은 계산 도중 어느 한 시점에서 엔진이 이해한 바를 찍어둔 스냅숏이다.
깊이가 얕을수록 엔진은 구체적인 계산보다 평가 함수에 더 기댄다. 깊이가 늘어나면 전술 수순과 장기적인 구상, 숨어 있던 자원을 찾아내면서 판단을 뒤집는다. 얕은 평가값을 정답처럼 믿으면 어긋나는 이유가 바로 여기에 있다.
실무적으로는 대부분의 분석에 깊이 20~25면 충분하다. 다만 긴 전술 수순이나 섬세한 위치 조작이 얽힌 중요한 국면에서는 평가가 안정될 때까지 깊이 30 이상이 필요할 수 있다. 그마저도 더 깊이 파고들면 숫자는 다시 움직일 수 있다.
정확도 점수의 문제
많은 플랫폼이 대국이 끝나면 「정확도」나 퍼포먼스 점수를 보여준다. 내 수를 엔진의 최선수와 비교해 백분율로 환산하는 기능이다. 재미는 있지만, 이런 지표에는 사용자에게 좀처럼 설명되지 않는 큰 한계가 있다.
첫째, 정확도 점수는 어떤 엔진을 어느 깊이로 돌렸는지에 전적으로 달려 있다. 같은 대국이라도 깊이 18에서 분석한 점수와 깊이 25에서 분석한 점수는 다르다. 어떤 수가 「실수」로 집계되는지도 분석 설정에 따라 통째로 바뀔 수 있다.
둘째, 정확도 점수는 모든 국면을 똑같이 취급한다. 완전히 이긴 국면(가령 +5.0)에서 최선수를 놓친 것이 팽팽한 승부처에서 놓친 것과 같은 무게로 계산된다. 그러나 실전 감각에서 이 둘은 전혀 다른 이야기다. 평가를 +5.0에서 +3.0으로 떨어뜨린 수는 실제 대국에서 실수라고 하기 어렵다. 여전히 여유 있게 이기고 있기 때문이다.
셋째, 그리고 아마 가장 무거운 문제는 많은 플랫폼이 이 점수를 비교적 얕은 깊이로 만들어낸다는 점이다. 수백만 판을 깊이 분석하려면 연산 비용이 감당되지 않기 때문이다. 결국 「정확도」라는 지표 자체가 부정확한 평가 위에 세워져 있다. 휘어진 자로 채점받고 있는 셈이다.
플랫폼이 이 숫자를 부풀리는 이유
일부 플랫폼이 분석 결과를 최대한 극적으로 보여주는 데에는 이유가 있다. 체류와 재방문이다. 눈에 띄는 정확도 점수, 알록달록한 평가 막대, 「Brilliant!」나 「Blunder!」 같은 딱지는 사람을 계속 돌아오게 만든다. 이런 기능은 먼저 오락으로 설계되고, 교육은 그다음이다.
일부 플랫폼이 「Brilliant」 딱지를 어떻게 나눠주는지 보라. 상당수는 그저 차선책이 확연히 나쁜 국면에서 엔진이 고른 최선수일 뿐이다. 실제로는 어느 동호인이든 찾아낼 당연한 되잡기여도, 딱지가 붙으면 특별해 보인다. 이런 게임화는 사용자를 붙잡아 두는 대신 스스로에 대한 평가를 왜곡한다.
퍼포먼스 점수도 마찬가지로 하위 구간에서는 후하고 상위 구간에서는 눌린다. 초보자가 뻔한 원칙만 지킨 대국에서 1800이 뜨는가 하면, 타이틀 보유자가 깊은 전략적 이해를 담은 대국에서 2500을 받는다. 이 숫자들은 오락이지 과학이 아니다.
그렇다고 무조건 나쁘다는 뜻은 아니다. 분석을 재미있고 문턱 낮게 만든 덕분에 수백만 명이 체스에 발을 들였다. 다만 이런 지표가 기력을 정확히 재기 위해서가 아니라 몰입을 위해 설계되었다는 사실은 알고 있어야 한다.
하드웨어와 설정이라는 숨은 변수
체스와 아무 상관 없는 요인도 평가값을 흔든다. 엔진이 돌아가는 하드웨어, 할당된 CPU 스레드 수, 해시 테이블 크기, 그 밖의 설정값이 모두 결과에 영향을 준다.
스레드 2개에 해시 256MB인 노트북에서 돌린 Stockfish와, 스레드 64개에 해시 8GB인 서버에서 돌린 같은 엔진은 서로 다른 평가값을 내놓는다. 서버 쪽이 더 빨리 깊이에 도달하고 더 많은 변화를 찾아내며 판단도 정확하다. 그럼에도 둘은 똑같이 자신 있는 얼굴로 숫자를 제시한다.
그래서 서로 다른 플랫폼이나 기기의 분석 결과를 나란히 놓고 비교하는 일은 애초에 무리가 있다. 집에서 돌린 분석이 플랫폼 서버의 분석과 어긋나더라도 어느 한쪽이 「틀린」 게 아니라, 쓸 수 있는 연산 자원이 다를 뿐이다.
ChessOnyx는 Stockfish를 WebAssembly로 브라우저에서 직접 구동한다. 따라서 분석 품질은 기기에도 어느 정도 좌우된다. 요즘 데스크톱은 휴대폰보다 더 깊고 믿을 만한 결과를 낸다. 우리는 이 점을 솔직히 밝히는 편이 옳다고 본다. 숨겨야 할 결함이 아니라 알아두어야 할 현실이기 때문이다.
평가값은 흐름으로 읽어라
엔진 평가값을 가장 알차게 쓰는 방법은 개별 숫자가 아니라 흐름을 보는 것이다. 이 국면이 +0.3인지 +0.5인지에 매달리는 대신, 수가 진행되면서 평가가 어떻게 움직이는지를 따라가 보라.
평가가 평평하게 이어지면 안정된 운영이라는 뜻이다. 갑작스러운 급락은 들여다볼 가치가 있는 실수를 가리킨다. 완만한 하락은 대개 방향을 잃은 전략을 뜻한다. 이런 흐름이 대국의 질에 대해 단일 숫자보다 훨씬 많은 것을 알려준다.
기보를 복기할 때는 이렇게 해 보자. 개별 수로 파고들기 전에 평가 그래프를 통째로 보고, 선이 뚜렷하게 꺾인 지점을 먼저 표시한다. 공부할 가치가 있는 국면은 바로 그곳이다. 엔진이 그렇게 말해서가 아니라, 거기서 실제로 의미 있는 일이 벌어졌기 때문이다.
해석할 때는 국면의 성격도 함께 고려하자. 기물 조작이 이어지는 닫힌 국면에서 작은 평가 차이는 대개 의미가 없다. 열린 전술적 국면에서는 근소한 우위도 승부를 가른다. 같은 +0.5라도 국면 유형이 다르면 전혀 다른 말을 하고 있는 셈이다.
분석을 잘하기 위한 실전 조언
흔한 함정을 피하면서 엔진 분석에서 더 많은 것을 얻어내는 구체적인 방법들이다.
1. 충분한 깊이로 돌려라. 깊이 20 미만의 평가로 결론을 내리지 말자. 중요한 국면에서는 엔진을 더 오래 두고, 숫자가 안정되는지 지켜본다.
2. 후보수를 여러 개 비교하라. 내 수가 최선수와 일치하는지만 확인하지 말고 상위 3~5수를 나란히 본다. 여러 수가 거의 대등한 경우가 많고, 그중에서 무엇을 골랐는지는 부족함이 아니라 이해도를 보여준다.
3. 작은 차이는 넘겨라. +0.1과 +0.3의 차이는 보통 신호가 아니라 잡음이다. 평가가 0.5 이상 움직인 수에 집중하자. 진짜 무언가가 일어난 지점은 거기다.
4. 국면 유형을 파악하라. 전술적 국면에서의 평가는 조용한 전략적 국면보다 믿을 만하다. 엔진은 계산에 탁월하지만 얕은 깊이에서는 장기적인 위치 요소를 잘못 재기도 한다.
5. 평가값은 심판이 아니라 질문의 재료로 쓰자. 엔진이 내 수를 최선이 아니라고 하면 이유를 파고들자. 엔진은 봤는데 나는 못 본 것이 무엇인가. 진짜 배움은 그 지점에 있다. 숫자 자체가 아니라, 내 사고와 엔진의 사고 사이의 간격에 있다.
맺으며
체스 엔진은 우리가 이 게임을 공부하고 이해하는 방식을 완전히 바꿔놓은 비범한 도구다. 다만 모든 도구가 그렇듯, 무엇을 기대할 수 있는지 알고 쓸 때 가장 큰 힘을 낸다.
엔진 평가값은 근삿값이지 절대적 진실이 아니다. 깊이와 하드웨어, 설정에 좌우되고, 복잡한 국면을 숫자 하나로 압축한다는 태생적 한계를 안고 있다. 정확도 점수와 퍼포먼스 점수도 재미는 있지만 오락용 지표이며, 기력의 정밀한 측정치로 받아들일 것은 못 된다.
다음번 분석에서는 개별 숫자에 집착하지 말고, 평가값이 대국 전체에 걸쳐 들려주는 이야기를 따라가 보자. 엔진은 최종 판결을 내리는 재판관이 아니라, 내 체스에 더 나은 질문을 던지게 해주는 안내자다. 그렇게 쓸 때 엔진 분석은 비로소 실력 향상에 진짜 도움이 된다.