아래에 있는 오목 게임을 하다가 AI의 벽을 넘지 못하셨나요? "대체 어떤 알고리즘이길래 이렇게 잘 두는 거지?" 하는 궁금증이 드셨을 겁니다. 저 역시 그랬으니까요.
놀랍게도 이 AI는 수많은 논문을 기반으로 한 복잡한 인공지능이 아닙니다. 오히려 그 반대에 가깝죠. 아는 분께서 공유한 글에서 봤는데요,'바이브 코딩(Vibe Coding)'이라는 개발 스타일을 사용했다고 하시네요.
🤔 '바이브 코딩'으로 게임을 만든다고?
'바이브 코딩'은 정식 프로그래밍 용어라기보다는, 엄격한 계획이나 이론보다 개발자의 '감(Vibe)'과 직관을 우선시하는 개발 문화를 가리키는 말입니다. 복잡한 게임 이론(Game Theory)부터 공부하기보다는 이렇게 접근하는게 속도면에서는 확실히 빠르겠죠?
"음... 오목에서 이기려면 어떻게 둬야 하지? 일단 내 돌이 많이 이어지게 하고, 상대 돌은 못 잇게 막으면 되지 않을까? 이 '느낌'을 그대로 코드로 옮겨보자!"
이 단순한 '바이브'가 바로 AI의 핵심 로직이 되었던 것 같습니다. 이 직관을 코드로 번역하는 과정에서,휴리스틱(Heuristic) 평가 함수 기반의 AI가 탄생한 것 같고요.

AI는 바둑판의 모든 빈칸을 보며 "여기에 두면 얼마나 기분이 좋아질까?"를 점수로 계산합니다.
- 공격 점수: 여기에 내 돌을 뒀을 때, 만들어지는 연속된 돌의 가치 (예: 흩어진 2개보다 열린 3개가 훨씬 높은 점수)
- 수비 점수: 만약 상대가 여기에 뒀을 때 만들어질 위협을 미리 차단하는 가치
🎯 '바이브 코딩' AI의 약점과 공략법
직관적인 '바이브'로 만들어진 AI는 예상외로 강력했지만, 그 태생적 한계 때문에 명확한 약점을 가집니다. 바로 '근시안'이라는 점입니다. AI는 오직 '다음 한 수'의 가치(Vibe)만 볼 뿐, 여러 수 앞을 내다보는 장기적인 전략, 즉 '큰 그림'을 그리지 못합니다.
바로 이 지점이 우리가 파고들어야 할 핵심입니다. AI의 단순한 평가 기준을 역이용하는 것이죠.
AI는 한 번에 한 곳, 가장 점수가 높은 곳만 막을 수 있습니다. 따라서 AI가 고민할 필요도 없이 "여길 막아야 해!" 라고 느끼게 만드는 상황을 연속으로 만드는 것이 필승법입니다.
- 필살기 '4-3 공격'
가장 확실한 전술입니다. 한 수를 둬서 '열린 4'와 '열린 3'을 동시에 만드는 것입니다. AI의 점수 체계상 '열린 4'를 막는 것이 '열린 3'을 막는 것보다 압도적으로 점수가 높습니다. 따라서 AI는 무조건 '4'를 막으러 오게 되고, 플레이어는 다음 수로 '3'을 '4'로 만들며 게임을 끝낼 수 있습니다. - AI를 농락하는 '연속된 열린 3'
'4-3'을 만들기 어렵다면 이 전술을 사용하세요. 먼저 위협적인 '열린 3'을 하나 만듭니다. 그럼 AI는 100% 그곳을 막으러 옵니다. AI가 수비하는 동안, 전혀 다른 곳에 또 다른 공격의 실마리(두 번째 '열린 3'의 재료)를 만듭니다. 이 과정을 반복하면 AI는 플레이어의 의도대로 끌려다니게 되고, 결국 막을 수 없는 결정타를 날릴 기회가 생깁니다.
🎮 이제 직접 도전해 보세요! (오목 게임 플레이)
'바이브 코딩'으로 탄생한 AI의 원리와 약점을 모두 파악하셨습니다. 이제 아래 게임에서 배운 전술을 직접 시험해 보세요. AI를 상대로 '4-3 공격'과 '연속 공격'을 구사하며 승리를 쟁취하시길 바랍니다!
자주 묻는 질문 ❓
'바이브 코딩'으로 만든 저의 AI와 즐거운 시간 보내셨기를 바랍니다. 이 글이 오목 AI의 원리를 이해하고, 코딩에 대한 새로운 영감을 얻는 계기가 되었으면 좋겠습니다. 더 궁금한 점은 댓글로 남겨주세요! 😊