Stockfish의 깊이를 이해하면 내 대국이 달라진다
탐색 깊이와 시간 배분, 그리고 더 깊은 분석이 실제로 의미를 갖는 순간에 대한 실용 안내
Stockfish가 분석 중에 「깊이 24」라고 띄울 때, 그것은 정확히 무슨 뜻일까. 대다수 체스 애호가는 깊이가 클수록 분석이 낫다는 정도의 감은 있지만, 그 숫자가 무엇을 가리키고 어떻게 만들어지며 언제 진짜로 중요해지는지까지 아는 사람은 드물다. 이건 탁상공론이 아니다. 엔진 분석이 실력 향상에 얼마나 보탬이 되는지가 여기서 갈린다.
이 글에서는 Stockfish가 국면을 어떻게 탐색하는지, 깊이 숫자가 무엇을 알려주는지, 그리고 스스로 공부할 때 분석 깊이를 어떻게 정하면 좋을지를 차근차근 짚어본다.
탐색 깊이란 무엇인가
탐색 깊이란 요컨대 엔진이 주 변화수순에서 몇 반수(플라이) 앞을 내다보는지를 가리키는 값이다. 깊이 20이라면 Stockfish가 최소 20반수, 그러니까 양쪽이 각각 열 수쯤 두는 수순을 살펴보고 있다는 뜻이다. 기술적으로는 맞는 설명이지만, 중요한 대목에서 오해를 부른다.
현대 엔진은 모든 변화를 똑같은 깊이까지 읽지 않는다. Stockfish는 알파베타 가지치기에 여러 탐색 연장과 축소를 얹어 쓴다. 유망한 변화는 명목 깊이를 한참 넘겨 파고들고, 명백히 나쁜 변화는 일찌감치 쳐낸다. 「깊이 24」라고 표시된 국면이라도 어떤 변화는 깊이 40 너머까지 읽혀 있고, 다른 변화는 깊이 10에서 잘려 있을 수 있다.
엔진을 그토록 강하게 만드는 것이 바로 이 선택적 탐색이다. 뻔한 악수에 시간을 흘려보내는 대신, 가장 중대한 변화에 연산력을 몰아주기 때문이다. 표시되는 깊이는 최소한의 보증일 뿐이다. 주 변화수순을 따라 적어도 그만큼은 읽었다는 뜻이며, 실제 탐색은 훨씬 복잡하고 고르지도 않다.
깊이가 평가의 질을 어떻게 바꾸는가
깊이와 평가 정확도의 관계는 직선이 아니다. 깊이 10에서 15로 올리면 분석의 질이 극적으로 좋아진다. 20에서 25로 올리는 것도 여전히 의미가 있지만 폭은 확연히 줄어든다. 30에서 35로 올리면 대부분의 국면에서 미세한 손질에 그친다.
이 수확 체감에는 실질적인 이유가 있다. 얕은 깊이에서는 엔진이 전술 수순을 자주 놓치고 국면을 잘못 재단한다. 한 단계씩 깊어질 때마다 새로운 전술적 가능성과 전략적 뉘앙스가 드러난다. 하지만 깊이가 늘어날수록 엔진은 그 국면의 중요한 아이디어를 이미 거의 다 찾아둔 상태가 된다. 그다음의 깊이는 근본적으로 새로운 개념을 캐낸다기보다 경계선에 놓인 사례의 평가를 다듬는 쪽으로 쓰인다.
이 패턴에는 눈여겨볼 예외가 있다. 전술이 깊게 얽힌 국면 — 긴 강제 수순, 기물을 던지는 공격, 혹은 조용한 한 수가 여러 수 뒤에야 돌파로 이어지는 국면 — 에서는 깊이가 높아도 평가가 계속 흔들린다. 깊이 30을 넘겨도 숫자가 오르내리는 국면이 바로 이런 경우다. 그리고 그런 국면이야말로 체스에서 가장 매혹적인 자리다.
엔드게임은 또 다른 예외다. 이기는 계획이 여러 수에 걸친 정밀한 기물 운용에 달려 있어서, 제대로 평가하려면 극단적으로 깊은 탐색이 필요한 엔드게임이 있다. 기물이 몇 개 남지 않은 모든 국면을 미리 계산해둔 데이터베이스, 즉 테이블베이스가 있으면 이겼는지 비겼는지 졌는지를 즉시 알려준다. 테이블베이스가 없다면, 어떤 엔드게임에서는 엔진이 승리로 가는 길을 보기까지 깊이 40 이상이 필요할 수도 있다.
선택적 깊이와 명목 깊이
Stockfish의 출력을 보면 깊이 숫자가 둘 나란히 뜨는 경우가 많다. 명목 깊이와 선택적 깊이(때로 「seldepth」로 표기된다)다. 명목 깊이는 기본 탐색 깊이이고, 선택적 깊이는 탐색 도중 엔진이 실제로 가장 깊이 들어간 변화를 보여준다.
예컨대 「깊이 25/48」이라면, 기본 탐색은 25반수인데 특정한 결정적 변화는 48반수까지 파고들었다는 뜻이다. 두 숫자 사이의 간격은 국면에 대해 무언가를 말해준다. 간격이 크면 깊은 계산을 요구하는 강제 수순을 엔진이 찾아냈다는 신호다. 간격이 작으면 대부분의 변화를 비슷한 깊이에서 평가할 수 있는 조용한 국면이라는 뜻이다.
이 구분을 알아두면 엔진 분석을 한결 정확하게 읽게 된다. 선택적 깊이가 명목 깊이를 크게 웃돌 때, 엔진은 결정적 변화에 대한 평가에는 확신이 있지만 곁가지 변화는 겉핥기로 넘겼을 수 있다. 두 숫자가 가까울 때는 국면을 더 고르게 훑었다는 뜻이다.
Multi-PV: 여러 변화를 한꺼번에
기본 설정에서 Stockfish는 최선수 하나만 찾는다. 하지만 여러 주 변화수순을 동시에 분석하도록 설정할 수 있는데, 이것이 Multi-PV다. 예를 들어 Multi-PV를 3으로 두면 엔진이 상위 세 수를 나란히 찾아낸다.
여기에는 만만찮은 대가가 따른다. Multi-PV 분석은 더 느리다. 한 수가 최선임을 입증하는 데 전력을 쏟는 대신 좋은 선택지 여럿을 동시에 붙들고 있어야 해서, 가지치기를 과감하게 하지 못하기 때문이다. 대략적으로 말하면 Multi-PV 3은 같은 깊이에 이르는 데 단일 변화 분석보다 1.5배에서 2배쯤 더 걸린다.
그럼에도 복기에서 Multi-PV의 가치는 대단하다. 최선수가 무엇이었는지만이 아니라 어떤 대안이 있었고 그것들이 서로 어떻게 비교되는지까지 보여주기 때문이다. 내가 둔 수가 두 번째나 세 번째 선택지이면서 엔진의 첫 손가락과 거의 차이가 없는 경우는 흔하다. Multi-PV가 없으면 그 사실을 알 길이 없다. 내 수가 「최선」이 아니었다는 것만 보고 실수를 저질렀다고 잘못 결론짓게 된다.
ChessOnyx는 전체 그림을 볼 수 있도록 Multi-PV 분석을 제공한다. 세 수가 서로 0.1 안쪽에 몰려 있다는 사실을 아는 것과, 엔진의 유일한 최선수를 두지 못했다는 사실만 아는 것은 전혀 다른 이야기다.
상황별 깊이 기준
분석 목적이 다르면 필요한 깊이도 다르다. 무엇을 하려는지에 따른 실용적인 기준은 이렇다.
빠른 복기(눈에 띄는 실수 찾기): 깊이 18~20이면 충분하다. 이 깊이에서 Stockfish는 전술적 실착을 모두 잡아내고 위치적 실수도 대부분 걸러낸다. 자기 기보를 한 번 훑는 첫 단계에는 이 정도가 적당하다.
본격적인 분석(전략적 판단 이해하기): 깊이 22~26이 가장 알맞은 구간이다. 이 범위에서는 엔진의 위치 판단이 믿을 만해지고, 조용한 국면에 대한 평가도 신뢰할 수 있다. 분석 작업의 대부분은 이 깊이에서 이뤄지는 것이 좋다.
결정적 국면 분석(오프닝 준비, 성격이 모호한 희생): 깊이 28~32 이상. 최대한의 신뢰도가 필요한 자리 — 이론적 신수를 평가하거나, 기물 희생의 값을 재거나, 승부를 가르는 엔드게임을 따져볼 때 — 에서는 엔진을 깊이 돌리자. 이 깊이면 대부분의 국면에서 평가가 상당히 안정된다.
통신 체스나 오프닝 이론: 깊이 35 이상 또는 클라우드 분석. 폰 10분의 1까지 따져야 하는 가장 높은 수준의 분석이라면 가능한 한 깊이 읽혀야 한다. 실제로는 성능 좋은 하드웨어에서 Stockfish를 오래 돌린다는 뜻이다.
이것들은 기준일 뿐 규칙이 아님을 기억하자. 알맞은 깊이는 국면과 목적, 그리고 쓸 수 있는 시간에 달렸다. 복잡하게 얽힌 전술 국면은 단순한 엔드게임보다 더 깊이 읽어야 한다. 중요한 대회 한 판은 가볍게 둔 속기보다 깊은 분석을 받을 만하다.
시간으로 끊을까, 깊이로 끊을까
국면을 분석할 때는 깊이를 고정하거나(깊이 25까지 분석) 시간을 고정할 수 있다(30초 동안 분석). 둘 다 나름의 쓸모가 있지만 차이는 알아둘 만하다.
깊이 고정은 국면이 얼마나 복잡하든 최소한의 분석 품질을 보장한다. 모든 국면이 같은 깊이만큼 읽힌다. 단점은 단순한 국면은 목표 깊이에 금세 닿고 거기서 멈추는 반면, 복잡한 국면은 훨씬 오래 걸릴 수 있다는 점이다.
시간 고정은 복잡도에 저절로 맞춰진다. 단순한 국면은 빠르게 깊은 곳까지 가고, 복잡한 국면은 상대적으로 얕은 깊이에 머문다. 이는 강한 기사가 장고 시간을 배분하는 방식과 닮았다. 승부처에 많이 쓰고 평범한 수에는 적게 쓰는 것이다.
복기 용도라면 한 수당 시간을 고정하는 편이 대체로 실용적이다. 요즘 컴퓨터에서 한 수에 10~15초를 주면 대부분의 국면에서 훌륭한 품질이 나온다. 엔진이 단순한 국면에서는 알아서 더 깊이 들어가고 복잡한 국면에서는 더 애를 쓰기 때문이다.
특정 국면을 파고들 때는 평가가 안정될 때까지 돌려두자. 깊이가 늘어나면서 평가값이 어떻게 움직이는지 지켜보면 된다. 의미 있는 변화가 멎으면(깊이 한 단계당 흔들림이 0.05 미만이면) 엔진은 믿을 만한 판단에 도달한 것이다. 국면에 따라 10초가 걸릴 수도, 10분이 걸릴 수도 있다.
맺으며
탐색 깊이는 엔진 분석의 토대지만, 「숫자가 크면 좋다」는 말보다 훨씬 결이 많은 개념이다. 선택적 탐색이 어떻게 돌아가는지, 깊이가 언제 가장 크게 작용하는지, 그리고 목적에 맞는 깊이를 어떻게 고를지 알아두면 엔진을 한층 능숙하게 다루게 된다.
핵심은 깊이가 목적이 아니라 수단이라는 점이다. 목적은 믿을 만한 국면 평가다. 특정 깊이 숫자를 찍는 데 매달리지 말고 평가가 안정됐는지를 보자. 그리고 중간 정도의 깊이에서도 오늘의 Stockfish는 불과 몇 해 전이라면 상상하기 어려웠을 품질의 분석을 내놓는다는 사실을 기억하자. 잘 쓰면 이 도구는 게임을 보는 눈 자체를 바꿔놓는다.