<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>스미스 게임 연구소</title>
    <link>https://game.smithlab.co.kr/</link>
    <description>설치 없이 바로 한 판, 브라우저 미니 게임</description>
    <language>ko</language>
    <lastBuildDate>Wed, 11 Nov 2026 09:00:00 +0900</lastBuildDate>
    <atom:link href="https://game.smithlab.co.kr/rss.xml" rel="self" type="application/rss+xml"/>
    <item>
      <title>심심할 때 하기 좋은 게임, 1분·3분·5분·10분 시간별로 고르는 법</title>
      <link>https://game.smithlab.co.kr/posts/games/boring-time-games-by-minutes/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/boring-time-games-by-minutes/</guid>
      <pubDate>Wed, 11 Nov 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>점심 먹고 자리에 앉았는데 회의까지 7분 남았거나, 버스를 기다리는데 배터리가 40%뿐인 순간이 있어요. 이럴 때 "뭐 하지?" 하고 앱 스토어를 열면 설치하고 로그인하고 튜토리얼 보다가 시간이 다 가 버려요. 결론부터 말하면 <strong>심심할 때는 장르가 아니라 '남은 시간'으로 고르세요. 남은 시간이 3분 이하면 한 판이 짧은 반응·기억 게임, 5분이면 퍼즐 한 판, 10분 이상이면 천천히 생각하는 보드·퍼즐이 맞아요.</strong> 이 사이트 게임은 전부 브라우저에서 바로 열려서 설치도 가입도 필요 없어요.</p>
<p>이 글에서는 이 사이트가 가진 게임 39개를 한 판 걸리는 시간(1분·3분·5분·10분 이상)으로 나눈 표를 직접 세어 보여 드리고, 상황별로 어떤 걸 고르면 후회가 없는지, 한 번에 오래 붙잡히지 않는 요령까지 정리했어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>한 판이 1분 안에 끝나는 게임이 7개, 3분 안팎이 10개, 5분 안팎이 10개, 10분 이상이 12개예요(15분짜리 스도쿠 1개 포함).</li><li>쉬는 시간이 정해져 있으면 남은 시간의 절반 안에 끝나는 게임을 고르세요. 한 판 더 하고 싶은 마음이 생겨도 시간이 남아요.</li><li>조작이 '탭 한 번'인 게임이 가장 많아서(12개) 한 손으로 하는 상황에도 잘 맞아요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">한 판 시간으로 세어 보면 이렇게 나뉘어요</h2>
<p>게임 페이지마다 '한 판 시간'이 적혀 있어요. 그 값을 모두 모아 세어 보면 아래와 같아요(내용이 따로 정리된 39개 기준).</p>
<figure class="viz viz-bar"><figcaption class="viz-title">한 판 걸리는 시간별 게임 수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="한 판 걸리는 시간별 게임 수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">2</text><line class="viz-grid" x1="52" x2="628" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">4</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">6</text><line class="viz-grid" x1="52" x2="628" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">8</text><line class="viz-grid" x1="52" x2="628" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">12</text><rect class="s1" x="69.3" y="116.3" width="80.6" height="137.7" rx="3"><title>1분 · 게임 수 7개</title></rect><text class="viz-val" x="109.6" y="111.3" text-anchor="middle">7</text><text class="viz-ax" x="109.6" y="272" text-anchor="middle">1분</text><rect class="s1" x="184.5" y="57.3" width="80.6" height="196.7" rx="3"><title>3분 · 게임 수 10개</title></rect><text class="viz-val" x="224.8" y="52.3" text-anchor="middle">10</text><text class="viz-ax" x="224.8" y="272" text-anchor="middle">3분</text><rect class="s1" x="299.7" y="57.3" width="80.6" height="196.7" rx="3"><title>5분 · 게임 수 10개</title></rect><text class="viz-val" x="340.0" y="52.3" text-anchor="middle">10</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">5분</text><rect class="s1" x="414.9" y="37.7" width="80.6" height="216.3" rx="3"><title>10분 · 게임 수 11개</title></rect><text class="viz-val" x="455.2" y="32.7" text-anchor="middle">11</text><text class="viz-ax" x="455.2" y="272" text-anchor="middle">10분</text><rect class="s1" x="530.1" y="234.3" width="80.6" height="19.7" rx="3"><title>15분 · 게임 수 1개</title></rect><text class="viz-val" x="570.4" y="229.3" text-anchor="middle">1</text><text class="viz-ax" x="570.4" y="272" text-anchor="middle">15분</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">5분 이하가 27개로, 쉬는 시간에 끝낼 수 있는 게임이 전체의 약 70%예요.</p><div class="viz-cap">단위: 개 · 자료: 이 사이트 게임 정보표에서 직접 센 값</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>게임 수</th></tr></thead><tbody><tr><td>1분</td><td>7</td></tr><tr><td>3분</td><td>10</td></tr><tr><td>5분</td><td>10</td></tr><tr><td>10분</td><td>11</td></tr><tr><td>15분</td><td>1</td></tr></tbody></table></div></details></figure>
<p>27 ÷ 39 = 0.69라서 약 70%가 5분 안에 끝나는 게임이에요. 의도한 건 아니고, 브라우저 게임 특성상 '켜자마자 시작해서 바로 결과가 나오는' 게임이 많아서 그렇게 됐어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/boring-time-games-by-minutes-1.svg" alt="1분, 3분, 5분, 10분 이상 네 구간으로 나눠 구간마다 대표 게임과 맞는 상황을 적은 비교 카드" width="800" height="450" loading="lazy" decoding="async"><figcaption>남은 시간별로 고르는 네 가지 카드</figcaption></figure>
<h2 id="s2">1분 남았을 때: 결과가 바로 숫자로 나오는 게임</h2>
<p>엘리베이터를 기다리거나 메신저 답장을 기다리는 짧은 틈이에요. 이럴 땐 시작 버튼을 누르고 한 번 숨 쉬면 끝나는 게임이 맞아요. 1분짜리 7개는 모두 점수나 시간이 숫자로 바로 나와서, 한 번 더 해 보고 싶은 마음이 자연스럽게 생겨요.</p>
<ul><li><strong><a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a></strong>: 화면이 초록으로 바뀌는 순간 누르고 내 반응을 ms로 확인해요. 조작이 클릭 한 번이라 가장 부담이 없어요.</li><li><strong><a href="https://game.smithlab.co.kr/games/one-to-fifty/">1부터 50까지</a></strong>: 숫자를 순서대로 눌러 0.01초 단위로 기록을 재요.</li><li><strong><a href="https://game.smithlab.co.kr/games/ten-second-challenge/">10초 챌린지</a></strong>: 정확히 10.00초에 멈추는 게임이라 한 판이 말 그대로 10초예요.</li><li><strong><a href="https://game.smithlab.co.kr/games/whack-a-mole/">두더지 잡기</a></strong>: 60초 동안 잡는 게임이고, 황금 두더지와 콤보가 있어요.</li><li><strong><a href="https://game.smithlab.co.kr/games/mental-math/">암산 게임</a></strong>: 60초에 사칙연산을 얼마나 푸는지 재요. 조금 머리를 쓰고 싶을 때 좋아요.</li></ul>
<p>이 구간은 '쉬움' 난이도가 5개(암산과 에임 트레이너만 '보통')라서, 피곤해도 부담이 없어요. 반대로 기록 욕심이 생기면 1분이 10분이 되기 쉬우니, 정해 둔 횟수(예: 세 판)만 하고 끄는 편이 좋아요.</p>
<h2 id="s3">3분 남았을 때: 기억력·타이밍 게임</h2>
<p>3분짜리 10개는 두 갈래로 나뉘어요. 하나는 <strong>기억력·관찰 게임</strong>(<a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억</a>, <a href="https://game.smithlab.co.kr/games/sequence-memory/">순서 기억</a>, <a href="https://game.smithlab.co.kr/games/card-matching/">카드 짝 맞추기</a>, <a href="https://game.smithlab.co.kr/games/color-sense/">색 감각</a>, <a href="https://game.smithlab.co.kr/games/odd-letter/">다른 글자 찾기</a>)이고, 다른 하나는 <strong>타이밍 게임</strong>(<a href="https://game.smithlab.co.kr/games/piano-tiles/">피아노 타일</a>, <a href="https://game.smithlab.co.kr/games/dino-run/">공룡 달리기</a>, <a href="https://game.smithlab.co.kr/games/flappy-ghost/">플래피 고스트</a>, <a href="https://game.smithlab.co.kr/games/stack-tower/">스택 타워</a>)이에요. 나머지 하나는 문장을 치며 타수를 재는 <a href="https://game.smithlab.co.kr/games/typing-test/">타자 테스트</a>예요.</p>
<p>기억 게임은 실패해도 '아깝다'가 덜하고, 타이밍 게임은 실패해도 '한 번만 더'가 강해요. <strong>쉬는 시간이 딱 3분이라면 기억 게임을, 멍하니 시간을 보내고 싶으면 타이밍 게임을</strong> 권해요. 단, <a href="https://game.smithlab.co.kr/games/flappy-ghost/">플래피 고스트</a>는 이 사이트 게임 중 유일하게 난이도가 '어려움'이라 마음 편히 하고 싶을 땐 맞지 않아요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/games/shots/card-matching.webp" alt="카드 짝 맞추기 게임의 PC 화면" loading="lazy" decoding="async"><figcaption>카드 짝 맞추기 — 뒤집힌 카드의 위치를 머릿속에 그려 두는 게임이에요</figcaption></figure>
<h2 id="s4">5분 남았을 때: 퍼즐 한 판과 가벼운 아케이드</h2>
<p>5분짜리 10개는 '생각하는 맛'이 나는 구간이에요. <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a>, <a href="https://game.smithlab.co.kr/games/sliding-puzzle/">슬라이딩 퍼즐</a>, <a href="https://game.smithlab.co.kr/games/lights-out/">불 끄기</a>, <a href="https://game.smithlab.co.kr/games/tower-of-hanoi/">하노이의 탑</a>, <a href="https://game.smithlab.co.kr/games/water-sort/">물 정렬 퍼즐</a>, <a href="https://game.smithlab.co.kr/games/number-baseball/">숫자 야구</a>, <a href="https://game.smithlab.co.kr/games/kordle/">코들</a>처럼 규칙은 한 줄인데 풀려면 머리를 쓰는 게임이 많아요. 아케이드는 <a href="https://game.smithlab.co.kr/games/snake/">뱀 게임</a>과 <a href="https://game.smithlab.co.kr/games/breakout/">벽돌 깨기</a>가 여기 들어가요.</p>
<p>고르는 기준은 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>지금 기분</th><th>추천</th><th>이유</th></tr></thead><tbody><tr><td>머리 쓰기 싫은데 뭔가 하고 싶다</td><td>물 정렬 퍼즐, 뱀 게임</td><td>둘 다 난이도 '쉬움'에 탭·스와이프만 쓰면 돼요</td></tr><tr><td>기분 전환으로 한 문제 풀고 싶다</td><td>코들, 숫자 야구</td><td>정답이 하나라 풀면 개운해요</td></tr><tr><td>손은 쉬고 생각만 하고 싶다</td><td>하노이의 탑, 불 끄기</td><td>시간 제한이 없어서 천천히 해도 돼요</td></tr></tbody></table></div>
<p><a href="https://game.smithlab.co.kr/games/water-sort/">물 정렬 퍼즐</a>은 레벨 번호가 같으면 판도 같고, 컴퓨터가 먼저 풀어 본 판만 나와서 막혀서 끝나는 일이 없어요. 심심할 때 하기에 '막혀서 짜증 난다'가 없다는 건 꽤 큰 장점이에요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/games/shots/water-sort.webp" alt="물 정렬 퍼즐의 PC 화면" loading="lazy" decoding="async"><figcaption>물 정렬 퍼즐 — 병마다 한 가지 색으로 모으는 게 목표예요</figcaption></figure>
<h2 id="s5">10분 이상 있을 때: 천천히 빠져들 수 있는 게임</h2>
<p>11개가 10분, <a href="https://game.smithlab.co.kr/games/sudoku/">스도쿠</a> 1개가 15분이에요. <a href="https://game.smithlab.co.kr/games/2048/">2048</a>, <a href="https://game.smithlab.co.kr/games/suika-game/">수박 게임</a>, <a href="https://game.smithlab.co.kr/games/tetris/">테트리스</a>, <a href="https://game.smithlab.co.kr/games/block-puzzle/">블록 퍼즐</a>처럼 한 판이 길게 이어지는 게임과, <a href="https://game.smithlab.co.kr/games/gomoku/">오목</a>·<a href="https://game.smithlab.co.kr/games/reversi/">리버시</a>·<a href="https://game.smithlab.co.kr/games/solitaire/">솔리테어</a>처럼 컴퓨터와 차분히 두는 게임이 있어요. <a href="https://game.smithlab.co.kr/games/nonogram/">노노그램</a>은 판이 커질수록 시간이 늘어나요.</p>
<p>여기서 주의할 점은 <strong>한 판의 끝이 내 의지로 정해지지 않는 게임</strong>이 있다는 거예요. 2048이나 테트리스는 잘할수록 판이 길어져요. 쉬는 시간이 10분이면 8분쯤에 끝낼 수 있는 <a href="https://game.smithlab.co.kr/games/gomoku/">오목</a>이나 <a href="https://game.smithlab.co.kr/games/solitaire/">솔리테어</a>가 안전하고, 되돌리기가 되는 솔리테어는 중간에 끊어도 아쉬움이 적어요.</p>
<p><a href="https://game.smithlab.co.kr/games/sudoku/">스도쿠</a>는 15분이라 쉬는 시간 안에는 '쉬움' 판만 권해요. 메모와 힌트가 있어서 막혔을 때 힌트를 쓰면 시간이 확 줄어요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">조작 방식으로도 한 번 걸러 보세요</h2>
<p>시간 다음으로 중요한 건 지금 내 손 상황이에요. 게임 정보표에서 조작 방식을 세어 보면 '탭'만 쓰는 게임이 12개로 가장 많아요. 여기에 탭과 다른 조작을 함께 쓰는 게임을 더하면 대부분이 손가락 하나로 돼요.</p>
<ul><li><strong>한 손으로 폰만 들고 있을 때</strong>: 탭 위주인 <a href="https://game.smithlab.co.kr/games/water-sort/">물 정렬 퍼즐</a>, <a href="https://game.smithlab.co.kr/games/card-matching/">카드 짝 맞추기</a>, <a href="https://game.smithlab.co.kr/games/lights-out/">불 끄기</a>, <a href="https://game.smithlab.co.kr/games/sequence-memory/">순서 기억</a></li><li><strong>키보드가 앞에 있을 때</strong>: <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억</a>, <a href="https://game.smithlab.co.kr/games/number-baseball/">숫자 야구</a>, <a href="https://game.smithlab.co.kr/games/typing-test/">타자 테스트</a>, <a href="https://game.smithlab.co.kr/games/kordle/">코들</a>(자모 키보드)</li><li><strong>마우스를 쓰는 자리일 때</strong>: <a href="https://game.smithlab.co.kr/games/aim-trainer/">에임 트레이너</a>, <a href="https://game.smithlab.co.kr/games/breakout/">벽돌 깨기</a>, <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a>(클릭·길게 누르기)</li></ul>
<p>회사 자리처럼 소리를 내기 어려운 곳에서는 화면만 보고 조용히 할 수 있는 퍼즐·기억 게임이 편해요. 이 사이트 게임은 모두 브라우저 탭 하나로 열리니, 시간이 끝나면 탭만 닫으면 돼요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/games/shots/snake.webp" alt="뱀 게임의 PC 화면" loading="lazy" decoding="async"><figcaption>뱀 게임 — 방향만 정하면 되는 쉬운 조작이라 멍하니 하기 좋아요</figcaption></figure>
<h2 id="s7">심심풀이가 길어지지 않게 하는 요령</h2>
<p>재미있으면 쉬는 시간이 훌쩍 지나요. 몇 가지 장치를 미리 걸어 두면 좋아요.</p>
<ol><li><strong>시작 전에 판 수를 정해요.</strong> "세 판만" 하고 시작하면, 세 판째에 끝내기가 훨씬 쉬워요.</li><li><strong>한 판이 짧은 걸 고르면 끊기가 쉬워요.</strong> 한 판이 10분인 게임은 중간에 멈추기 아깝지만, 10초짜리는 언제든 멈춰도 손해가 없어요.</li><li><strong>기록이 신경 쓰이면 '평균'을 보세요.</strong> <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>처럼 매번 숫자가 나오는 게임은 한 번 잘 나온 값보다 여러 번의 평균이 내 실력에 더 가까워요.</li><li><strong>막히면 힌트부터.</strong> 시간이 정해진 쉬는 시간에 어려운 판 하나를 붙잡고 있는 건 손해예요. 힌트가 있는 게임은 바로 쓰세요.</li></ol>
<p>이 사이트의 기록은 브라우저 안에만 저장돼서 로그인이나 계정이 필요 없고, 다른 사람에게 보이지도 않아요. 홈의 도장판은 게임 페이지를 열 때마다 도장이 찍히는 방식이라, 하루 한 판씩 도장을 모으는 재미로 써 볼 수 있어요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s8">상황별로 바로 고르는 순서</h2>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/boring-time-games-by-minutes-2.svg" alt="남은 시간이 1분 이하인지, 3분인지, 5분인지에 따라 반응·기억·퍼즐 게임으로 갈라지는 선택 순서도" width="800" height="450" loading="lazy" decoding="async"><figcaption>지금 상황에서 하나 고르는 순서</figcaption></figure>
<p>위 그림을 글로 풀면 이래요. 남은 시간을 먼저 정하고, 머리를 쓰고 싶은지 쉬고 싶은지로 갈라요.</p>
<ul><li><strong>1분 이하 + 쉬고 싶다</strong>: 반응속도 테스트, 10초 챌린지</li><li><strong>1분 이하 + 머리를 쓰고 싶다</strong>: 암산 게임</li><li><strong>3분 + 쉬고 싶다</strong>: 공룡 달리기, 카드 짝 맞추기</li><li><strong>3분 + 머리를 쓰고 싶다</strong>: 숫자 기억, 순서 기억</li><li><strong>5분 + 쉬고 싶다</strong>: 물 정렬 퍼즐, 뱀 게임</li><li><strong>5분 + 머리를 쓰고 싶다</strong>: 코들, 지뢰찾기</li><li><strong>10분 이상</strong>: 솔리테어, 오목, 스도쿠(쉬움)</li></ul>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/games/shots/reaction-time-m.webp" alt="반응속도 테스트의 모바일 화면" loading="lazy" decoding="async"><figcaption>반응속도 테스트 모바일 화면 — 화면 어디를 눌러도 돼서 한 손으로 충분해요</figcaption></figure>
<h2 id="s9">자주 묻는 질문</h2>
<h3>설치 없이 바로 할 수 있는 심심풀이 게임은 어디서 찾나요?</h3>
<p>이 사이트 <a href="https://game.smithlab.co.kr/games/">게임 목록</a>의 게임은 전부 브라우저에서 바로 열려요. 설치도 가입도 없고, 장르 탭이나 검색으로 골라도 되고 홈의 '랜덤' 버튼으로 아무거나 열어도 돼요.</p>
<h3>쉬는 시간이 5분일 때 어떤 게임이 가장 알맞나요?</h3>
<p>한 판이 5분 안에 끝나는 게임 중에서 고르되, 남은 시간의 절반 안에 끝나는 3분 게임이 가장 안전해요. 시간이 남으면 한 판을 더 하면 되니까요. 퍼즐을 좋아하면 <a href="https://game.smithlab.co.kr/games/water-sort/">물 정렬 퍼즐</a>이나 <a href="https://game.smithlab.co.kr/games/kordle/">코들</a>, 가볍게 하고 싶으면 <a href="https://game.smithlab.co.kr/games/snake/">뱀 게임</a>을 권해요.</p>
<h3>폰으로 한 손으로 하기 좋은 게임은요?</h3>
<p>조작이 탭 하나인 게임이 이 사이트에서 가장 많아서 고를 폭이 넓어요. <a href="https://game.smithlab.co.kr/games/water-sort/">물 정렬 퍼즐</a>, <a href="https://game.smithlab.co.kr/games/card-matching/">카드 짝 맞추기</a>, <a href="https://game.smithlab.co.kr/games/lights-out/">불 끄기</a>, <a href="https://game.smithlab.co.kr/games/sequence-memory/">순서 기억</a>은 한 손으로 충분해요.</p>
<h3>게임을 하면 정말 머리가 좋아지나요?</h3>
<p>이 글에서는 어느 쪽이라고 단정하지 않아요. 두뇌 게임이 일상의 인지 능력에 얼마나 도움이 되는지는 연구마다 결과가 달라서, 이 사이트는 '효과를 보장하는 게임'이 아니라 '쉬는 시간에 기분 전환하는 게임'으로 소개해요.</p>
<h3>기록은 어디에 저장되나요?</h3>
<p>기록과 도장은 브라우저(localStorage)에만 저장되고 서버로 보내지 않아요. 그래서 다른 기기나 다른 브라우저에서는 보이지 않고, 브라우저 데이터를 지우면 사라져요.</p>
<h2 id="s10">정리</h2>
<p>심심할 때 게임을 고르는 가장 빠른 방법은 남은 시간을 먼저 정하는 거예요. 1분이면 반응속도 테스트와 10초 챌린지, 3분이면 카드 짝 맞추기와 숫자 기억, 5분이면 물 정렬 퍼즐과 코들, 10분 이상이면 솔리테어와 오목을 열어 보세요. 이 사이트 게임의 약 70%가 5분 안에 끝나요. 판 수를 미리 정해 두면 쉬는 시간이 게임에 다 잡아먹히는 일도 막을 수 있어요. 더 둘러보려면 <a href="https://game.smithlab.co.kr/games/">게임 전체 목록</a>을 열어 보세요.</p>
    ]]></description>
    </item>
    <item>
      <title>노노그램 푸는 법, 줄 하나로 칸을 확정하는 요령과 겹치는 칸 계산</title>
      <link>https://game.smithlab.co.kr/posts/games/nonogram-line-logic-tips/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/nonogram-line-logic-tips/</guid>
      <pubDate>Wed, 11 Nov 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>노노그램(네모네모 로직)을 처음 하면 숫자를 보고 "어디부터 칠하지?" 하고 한참 멍하니 있게 돼요. 결론부터 말하면 <strong>모든 줄에서 먼저 '여유 칸'을 세어 보세요. 여유 칸이 덩어리보다 작으면 그 덩어리의 가운데는 어디에 놓여도 반드시 칠해지고, 여유 칸이 0이면 그 줄은 한 가지로 끝나요.</strong> 찍지 않고 푸는 방법은 사실상 이 계산을 가로·세로로 번갈아 반복하는 것이에요.</p>
<p>이 글에서는 여유 칸과 겹치는 칸을 계산하는 공식, 한눈에 풀리는 줄 알아보는 법, 끝에서 밀어내는 요령, 5×5 판을 처음부터 끝까지 풀어 보는 예시, 판이 커질수록 왜 어려워지는지를 직접 계산한 숫자로 설명해요. <a href="https://game.smithlab.co.kr/games/nonogram/">노노그램 게임</a>을 옆에 켜 두고 따라 하면 더 빨리 감이 와요. 이 사이트의 노노그램은 줄 하나씩 따지는 것만으로 풀리는 판만 내보내서, 이 글의 방법만 알아도 끝까지 풀 수 있어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>여유 칸 = 줄 길이 − (숫자 합 + 덩어리 수 − 1) 이에요. 여유 칸이 0이면 그 줄은 바로 확정돼요.</li><li>덩어리 길이가 여유 칸보다 길면, 겹치는 칸 = 덩어리 길이 − 여유 칸 만큼은 가운데가 항상 칠해져요.</li><li>끝 칸이 칠해졌거나 ✕이면 바깥 덩어리의 위치가 정해져서, 옆 칸을 ✕로 막으면 연쇄적으로 풀려요.</li><li>한 줄에서 막히면 방금 바뀐 칸이 지나가는 반대 방향 줄을 다시 보세요. 새로 알게 된 칸이 거기서 시작돼요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">노노그램 규칙을 한 줄로: 숫자는 칠해진 덩어리의 길이</h2>
<p>노노그램은 격자 왼쪽(가로줄)과 위쪽(세로줄)에 적힌 숫자를 보고 칸을 칠하는 퍼즐이에요. 숫자 하나는 그 줄에서 <strong>이어서 칠해진 칸 덩어리 하나의 길이</strong>이고, 숫자가 여러 개면 적힌 순서대로 덩어리가 있되 덩어리 사이에는 <strong>빈칸이 최소 한 칸</strong> 있어야 해요. 예를 들어 10칸 줄의 <code>3 1</code>은 3칸 덩어리 하나, 한 칸 이상 비우고, 1칸 덩어리 하나가 있다는 뜻이에요.</p>
<p><a href="https://game.smithlab.co.kr/games/nonogram/">노노그램 게임</a>은 5×5, 10×10, 15×15 세 가지 크기가 있고, 칸을 탭하면 칠해지고 ✕ 모드로 바꾸면 "여기는 비어 있다"는 메모를 남길 수 있어요. ✕는 정답 판정에 들어가지 않는 메모일 뿐이라, 마음껏 써도 돼요. 숫자를 다 만족한 줄은 숫자가 흐려져서 어디까지 풀었는지 한눈에 보여요.</p>
<h2 id="s2">1단계: 여유 칸부터 세어요</h2>
<p>모든 풀이의 출발점은 <strong>여유 칸(slack)</strong>이에요.</p>
<blockquote><p>여유 칸 = 줄 길이 − (숫자 합 + 덩어리 수 − 1)</p></blockquote>
<p>숫자를 최대한 왼쪽으로 붙여서 놓았을 때 오른쪽에 남는 빈칸의 개수가 여유 칸이에요. 덩어리들은 이 여유 칸만큼만 오른쪽으로 움직일 수 있어요. 몇 가지를 직접 계산해 볼게요.</p>
<div class="table-wrap"><table><thead><tr><th>줄 길이</th><th>숫자</th><th>숫자 합 + 덩어리 수 − 1</th><th>여유 칸</th><th>가능한 배치 수</th></tr></thead><tbody><tr><td>10</td><td>7</td><td>7</td><td>3</td><td>4</td></tr><tr><td>10</td><td>4 5</td><td>4 + 5 + 1 = 10</td><td>0</td><td>1</td></tr><tr><td>10</td><td>3 1 2</td><td>3 + 1 + 2 + 2 = 8</td><td>2</td><td>10</td></tr><tr><td>15</td><td>8 4</td><td>8 + 4 + 1 = 13</td><td>2</td><td>6</td></tr><tr><td>15</td><td>3 5 2</td><td>3 + 5 + 2 + 2 = 12</td><td>3</td><td>20</td></tr></tbody></table></div>
<p>가능한 배치 수는 여유 칸을 s, 덩어리 수를 k라고 할 때 (s + k)개 중 k개를 고르는 조합 수예요. 여유 칸이 작을수록 배치가 확 줄어서, 여유 칸이 작은 줄부터 보는 게 가장 빠른 길이에요. 반대로 숫자가 <code>1</code>뿐인 15칸 줄은 여유 칸이 14라서 배치가 15가지나 돼요. 이런 줄은 처음에는 건드릴 게 없으니 그냥 넘어가세요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/nonogram-line-logic-tips-1.svg" alt="10칸 줄의 숫자 7을 맨 왼쪽과 맨 오른쪽에 붙여 놓은 두 경우와, 두 경우가 겹쳐 항상 칠해지는 4~7번 칸을 보여 주는 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>숫자 7을 어디에 놓아도 칠해지는 가운데 4칸</figcaption></figure>
<h2 id="s3">2단계: 겹치는 칸은 무조건 칠해요</h2>
<p>덩어리 하나가 움직일 수 있는 범위는 여유 칸만큼이에요. 그래서 <strong>덩어리 길이가 여유 칸보다 길면 가운데 겹치는 칸이 생겨요.</strong></p>
<blockquote><p>겹치는 칸 수 = 덩어리 길이 − 여유 칸 (0보다 클 때만)</p></blockquote>
<p>10칸 줄의 <code>7</code>은 여유 칸이 3이므로 7 − 3 = 4칸이 겹쳐요. 맨 왼쪽에 붙이면 1~7번 칸, 맨 오른쪽에 붙이면 4~10번 칸이라 4~7번이 겹치죠. 컴퓨터로 이 줄을 풀어 보면 <code>...####...</code>처럼 가운데 네 칸만 확정돼요.</p>
<p>덩어리가 여러 개일 때도 덩어리마다 똑같이 적용해요. 10칸 줄의 <code>3 1 2</code>는 여유 칸이 2예요. 3칸 덩어리는 3 − 2 = 1칸이 겹쳐서 3번 칸이 확정되고, 1칸 덩어리와 2칸 덩어리는 길이가 여유 칸 이하라 확정되는 칸이 없어요(<code>..#.......</code>). 15칸 줄의 <code>8 4</code>는 여유 칸이 2라서 8칸 덩어리에서 6칸, 4칸 덩어리에서 2칸이 확정돼요(<code>..######...##..</code>).</p>
<p>아래 차트는 15칸 줄에 덩어리가 하나뿐일 때, 길이별로 겹치는 칸이 몇 개인지 계산한 값이에요. 덩어리가 줄의 절반을 넘기 시작하는 순간부터 확정되는 칸이 빠르게 늘어요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">15칸 줄에서 덩어리 하나의 길이별 겹치는 칸 수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="15칸 줄에서 덩어리 하나의 길이별 겹치는 칸 수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">2.5</text><line class="viz-grid" x1="52" x2="628" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">7.5</text><line class="viz-grid" x1="52" x2="628" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">12.5</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">15</text><rect class="s1" x="62.8" y="254.0" width="50.4" height="0.5" rx="3"><title>7 · 겹치는 칸 0칸</title></rect><text class="viz-val" x="88.0" y="249.0" text-anchor="middle">0</text><text class="viz-ax" x="88.0" y="272" text-anchor="middle">7</text><rect class="s1" x="134.8" y="238.3" width="50.4" height="15.7" rx="3"><title>8 · 겹치는 칸 1칸</title></rect><text class="viz-val" x="160.0" y="233.3" text-anchor="middle">1</text><text class="viz-ax" x="160.0" y="272" text-anchor="middle">8</text><rect class="s1" x="206.8" y="206.8" width="50.4" height="47.2" rx="3"><title>9 · 겹치는 칸 3칸</title></rect><text class="viz-val" x="232.0" y="201.8" text-anchor="middle">3</text><text class="viz-ax" x="232.0" y="272" text-anchor="middle">9</text><rect class="s1" x="278.8" y="175.3" width="50.4" height="78.7" rx="3"><title>10 · 겹치는 칸 5칸</title></rect><text class="viz-val" x="304.0" y="170.3" text-anchor="middle">5</text><text class="viz-ax" x="304.0" y="272" text-anchor="middle">10</text><rect class="s1" x="350.8" y="143.9" width="50.4" height="110.1" rx="3"><title>11 · 겹치는 칸 7칸</title></rect><text class="viz-val" x="376.0" y="138.9" text-anchor="middle">7</text><text class="viz-ax" x="376.0" y="272" text-anchor="middle">11</text><rect class="s1" x="422.8" y="112.4" width="50.4" height="141.6" rx="3"><title>12 · 겹치는 칸 9칸</title></rect><text class="viz-val" x="448.0" y="107.4" text-anchor="middle">9</text><text class="viz-ax" x="448.0" y="272" text-anchor="middle">12</text><rect class="s1" x="494.8" y="80.9" width="50.4" height="173.1" rx="3"><title>13 · 겹치는 칸 11칸</title></rect><text class="viz-val" x="520.0" y="75.9" text-anchor="middle">11</text><text class="viz-ax" x="520.0" y="272" text-anchor="middle">13</text><rect class="s1" x="566.8" y="49.5" width="50.4" height="204.5" rx="3"><title>14 · 겹치는 칸 13칸</title></rect><text class="viz-val" x="592.0" y="44.5" text-anchor="middle">13</text><text class="viz-ax" x="592.0" y="272" text-anchor="middle">14</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">길이 7 이하는 겹치는 칸이 없고, 길이 15는 줄 전체가 칠해져요.</p><div class="viz-cap">단위: 칸 · 자료: 겹치는 칸 = 덩어리 길이 − (15 − 덩어리 길이) 로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>겹치는 칸</th></tr></thead><tbody><tr><td>7</td><td>0</td></tr><tr><td>8</td><td>1</td></tr><tr><td>9</td><td>3</td></tr><tr><td>10</td><td>5</td></tr><tr><td>11</td><td>7</td></tr><tr><td>12</td><td>9</td></tr><tr><td>13</td><td>11</td></tr><tr><td>14</td><td>13</td></tr></tbody></table></div></details></figure>
<h2 id="s4">3단계: 숫자가 줄을 꽉 채우는 줄을 찾아요</h2>
<p>여유 칸이 0이면 겹치는 칸 공식이 줄 전체에 적용돼서 한 번에 다 풀려요. 10칸 줄의 <code>4 5</code>는 4 + 5 + 1 = 10이라 <code>####x#####</code>로 확정이에요. 5칸 줄의 <code>2 2</code>(2 + 2 + 1 = 5)는 <code>##x##</code>, 5칸 줄의 <code>1 1 1</code>은 <code>#x#x#</code>, 5칸 줄의 <code>5</code>는 전체를 칠하면 돼요. 숫자 <code>0</code>(빈 줄)이면 줄 전체를 ✕로 막으면 돼요.</p>
<p>처음 판을 받으면 <strong>여유 칸이 0이거나 1인 줄을 먼저 찾아서 표시</strong>하세요. 5×5에서는 이런 줄만으로도 판의 절반이 정해지는 일이 흔해요.</p>
<h2 id="s5">4단계: 끝에서 밀어내고, 막힌 칸을 ✕로 알려요</h2>
<p>줄에 칠해진 칸이나 ✕가 하나라도 생기면 가능한 배치가 줄어요. 이 줄이 가장 자주 쓰는 방법은 두 가지예요.</p>
<ul><li><strong>끝 칸이 칠해졌을 때</strong>: 줄 맨 끝 칸이 칠해졌다면 그 칸은 가장 바깥 덩어리의 일부예요. 10칸 줄의 <code>3</code>에서 마지막 칸이 칠해졌다면 8~10번 칸이 칠해지고 1~7번 칸은 모두 ✕예요(<code>xxxxxxx###</code>).</li><li><strong>왼쪽이 ✕로 막혔을 때</strong>: 10칸 줄의 <code>4 2</code>에서 1~3번 칸이 ✕라면, 4칸 덩어리는 4~7번에서 시작할 수밖에 없고 그러면 2칸 덩어리는 9~10번밖에 갈 곳이 없어요. 그래서 <code>xxx####x##</code>로 한 번에 풀려요.</li></ul>
<p>이렇게 ✕가 새로 생기는 이유는 대부분 <strong>다른 방향 줄에서 알게 된 정보</strong>예요. 그래서 ✕ 표시를 아끼지 말고 하는 게 좋아요. ✕를 해 두면 그 줄을 다시 볼 때 "남은 구간"이 눈에 바로 들어와서, 여유 칸을 다시 계산하기 쉬워져요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">5단계: 가로와 세로를 번갈아 봐요 (5×5 풀이 예시)</h2>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/nonogram-line-logic-tips-2.svg" alt="여유 칸 계산, 겹치는 칸 칠하기, 끝에서 밀어내기, 방향 바꿔 다시 보기의 네 단계를 순서대로 보여 주는 점검 순서도" width="800" height="450" loading="lazy" decoding="async"><figcaption>한 줄을 푸는 네 가지 점검 순서</figcaption></figure>
<p>예시로 5×5 판 하나를 풀어 볼게요. 힌트는 아래와 같아요.</p>
<div class="table-wrap"><table><thead><tr><th></th><th>힌트</th></tr></thead><tbody><tr><td>가로줄 1~5</td><td><code>1 1</code> / <code>5</code> / <code>5</code> / <code>3</code> / <code>1</code></td></tr><tr><td>세로줄 1~5</td><td><code>2</code> / <code>4</code> / <code>4</code> / <code>4</code> / <code>2</code></td></tr></tbody></table></div>
<p><strong>가로줄 한 번 훑기.</strong> 2번째·3번째 줄은 <code>5</code>라서 5칸 전부 칠해요. 4번째 줄 <code>3</code>은 여유 칸이 2이므로 3 − 2 = 1칸 겹쳐서 가운데(3번 칸)가 칠해져요. 1번째 줄 <code>1 1</code>은 여유 칸이 2(5 − 3)에 덩어리 길이가 1이라 확정되는 칸이 없고, 5번째 줄 <code>1</code>도 마찬가지예요. 여기까지 판은 이래요(<code>#</code> 칠함, <code>.</code> 모름).</p>
<pre class="code-block"><code>.....
#####
#####
..#..
.....</code></pre>
<p><strong>세로줄 한 번 훑기.</strong> 세로줄 1번 <code>2</code>는 이미 2번·3번 칸이 칠해져 있으니 그 2칸으로 덩어리가 끝났어요. 그래서 나머지 칸은 모두 ✕예요. 5번 세로줄도 같은 이유로 나머지가 ✕예요. 세로줄 2~4번의 <code>4</code>는 여유 칸이 1이라 4 − 1 = 3칸 겹쳐서 2~4번 칸이 칠해져요. 여기서 4번째 줄의 <code>###</code>이 가운데 3칸으로 한꺼번에 확정되고, 양끝은 ✕가 돼요.</p>
<pre class="code-block"><code>x...x
#####
#####
x###x
x...x</code></pre>
<p><strong>다시 가로줄 한 번.</strong> 이제 첫 줄 <code>1 1</code>은 1번 칸과 5번 칸이 ✕라서 남은 구간이 2~4번 칸 3칸뿐이에요. <code>1 1</code>은 최소 3칸(1 + 1 + 1)이 필요하니 딱 맞아서 2번·4번 칸이 칠해지고 3번 칸이 ✕예요. 그러면 세로줄 2번과 4번의 <code>4</code>는 1~4번 칸으로 끝나서 5번째 줄의 2번·4번 칸이 ✕가 돼요. 마지막 줄 <code>1</code>에서 남은 칸은 3번뿐이라 거기가 칠해지고, 최종 판은 이래요.</p>
<pre class="code-block"><code>x#x#x
#####
#####
x###x
xx#xx</code></pre>
<p>가로 → 세로 → 가로 → 세로, 이렇게 <strong>네 번만 훑으면 5×5가 끝나요.</strong> (컴퓨터로 같은 순서로 풀어 봐도 세 번째 가로 훑기에서 판이 완성되고 이후로는 바뀌는 칸이 없어요.) 방향을 바꿔 볼 때마다 이전 방향에서 얻은 정보가 새 확정 칸을 만드는 게 느껴지죠? 한 방향만 계속 보면 이 효과를 못 얻어서 막혀요. 줄 하나를 푼 뒤에는 <strong>바뀐 칸이 있는 반대 방향 줄</strong>로 가세요.</p>
<h2 id="s7">판이 커지면 왜 어려워질까요: 직접 세어 본 배치 수</h2>
<p>5×5는 줄마다 놓을 수 있는 배치가 몇 개 안 돼서 머릿속으로 다 따져볼 수 있어요. 10×10과 15×15에서는 숫자가 많은 줄의 배치 수가 빠르게 늘어요. 15칸 줄에서 여유 칸이 크고 덩어리가 많은 줄은 처음에는 사실상 풀 수 없어요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">줄 하나에서 가능한 배치 수 (직접 계산)</figcaption><svg viewBox="0 0 640 220" role="img" aria-label="줄 하나에서 가능한 배치 수 (직접 계산)" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="169" y="29" text-anchor="end">10칸 7</text><rect class="s1" x="179" y="15" width="3.1" height="20" rx="3"><title>10칸 7 · 4가지</title></rect><text class="viz-val" x="188.1" y="29">4가지</text><text class="viz-ax lg" x="169" y="63" text-anchor="end">10칸 3 1 2</text><rect class="s1" x="179" y="49" width="7.8" height="20" rx="3"><title>10칸 3 1 2 · 10가지</title></rect><text class="viz-val" x="192.8" y="63">10가지</text><text class="viz-ax lg" x="169" y="97" text-anchor="end">15칸 8 4</text><rect class="s1" x="179" y="83" width="4.7" height="20" rx="3"><title>15칸 8 4 · 6가지</title></rect><text class="viz-val" x="189.7" y="97">6가지</text><text class="viz-ax lg" x="169" y="131" text-anchor="end">15칸 3 5 2</text><rect class="s1" x="179" y="117" width="15.6" height="20" rx="3"><title>15칸 3 5 2 · 20가지</title></rect><text class="viz-val" x="200.6" y="131">20가지</text><text class="viz-ax lg" x="169" y="165" text-anchor="end">15칸 2 2 2</text><rect class="s1" x="179" y="151" width="93.8" height="20" rx="3"><title>15칸 2 2 2 · 120가지</title></rect><text class="viz-val" x="278.8" y="165">120가지</text><text class="viz-ax lg" x="169" y="199" text-anchor="end">15칸 1 1 1 1 1</text><rect class="s1" x="179" y="185" width="361.3" height="20" rx="3"><title>15칸 1 1 1 1 1 · 462가지</title></rect><text class="viz-val" x="546.3" y="199">462가지</text></svg><p class="viz-note">같은 15칸 줄이어도 숫자가 작고 많으면 처음에는 건드릴 수 없는 줄이 돼요.</p><div class="viz-cap">단위: 가지 · 자료: 배치 수 = (여유 칸 + 덩어리 수) 중 덩어리 수를 고르는 조합 수로 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>배치 수</th></tr></thead><tbody><tr><td>10칸 7</td><td>4</td></tr><tr><td>10칸 3 1 2</td><td>10</td></tr><tr><td>15칸 8 4</td><td>6</td></tr><tr><td>15칸 3 5 2</td><td>20</td></tr><tr><td>15칸 2 2 2</td><td>120</td></tr><tr><td>15칸 1 1 1 1 1</td><td>462</td></tr></tbody></table></div></details></figure>
<p>15칸 줄의 <code>1 1 1 1 1</code>은 462가지나 돼요. 하지만 걱정하지 마세요. 이런 줄은 <strong>처음에 풀려고 하는 줄이 아니에요.</strong> 다른 줄에서 칸 몇 개가 정해지는 순간 배치 수가 한꺼번에 줄어요. 큰 판의 요령은 "쉬운 줄부터, 그리고 쉬운 줄을 계속 새로 만들기"예요.</p>
<h2 id="s8">큰 판(10×10, 15×15)을 풀 때의 순서</h2>
<ol><li><strong>모든 줄의 여유 칸을 한 번씩 계산</strong>해서 여유 칸이 작은 줄과 큰 덩어리가 있는 줄부터 칠해요. 15×15에서는 숫자가 <code>9</code>, <code>10</code> 같은 큰 수인 줄이 출발점이 돼요.</li><li>확정된 칸이 있는 줄만 골라서 다시 봐요. 이미 다 푼 줄(숫자가 흐려진 줄)은 건너뛰면 시간이 확 줄어요.</li><li>끝에 칠해진 칸이 있는 줄은 <strong>4단계(끝에서 밀어내기)</strong> 를 먼저 적용해요.</li><li>막히면 ✕가 누락됐는지 확인하세요. 덩어리가 이미 완성된 자리 양옆은 항상 ✕예요.</li><li>그래도 막히면 확정된 칸이 가장 많은 줄이 어디인지 훑어보세요. 대개 거기에서 새 칸이 나와요.</li></ol>
<p>이 사이트의 판은 <strong>찍지 않아도 풀리도록</strong> 컴퓨터가 미리 확인한 것만 나와요. 그래서 줄을 하나씩 정직하게 따지면 반드시 새 칸이 나오는 줄이 하나는 있어요. "이번 판은 도저히 안 풀려"라고 느껴진다면 대부분 ✕를 빼먹었거나 계산한 겹치는 칸이 틀렸어요. 막힐 때 <a href="https://game.smithlab.co.kr/games/nonogram/">힌트 버튼</a>을 쓰면 틀리게 칠한 칸을 알려 주지만, 힌트를 쓴 판은 최고 기록에서 빠져요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s9">같은 줄 논리를 쓰는 다른 퍼즐</h2>
<p>줄 하나씩 가능한 경우를 지워 가는 방식은 <a href="https://game.smithlab.co.kr/games/sudoku/">스도쿠</a>의 후보 숫자 지우기와 닮았어요. 스도쿠는 줄·칸·블록 안에서 후보를 지우고, 노노그램은 줄 안에서 배치를 지워요. 반면 <a href="https://game.smithlab.co.kr/games/sliding-puzzle/">슬라이딩 퍼즐</a>은 지우기가 아니라 순서를 짜는 퍼즐이라 푸는 느낌이 달라요. 노노그램에서 감을 잡은 뒤 스도쿠로 넘어가면 "확정 → 연쇄" 흐름이 낯익게 느껴져요.</p>
<h2 id="s10">자주 묻는 질문</h2>
<h3>노노그램은 꼭 논리만으로 풀 수 있나요?</h3>
<p>잘 만든 판은 그래요. 이 사이트의 노노그램은 줄 하나에서 가능한 배치를 모두 따져 공통 칸만 확정하는 방법만으로 끝까지 풀리는 판만 내보내요. 막히는 판은 버리고 다시 만들기 때문에 찍을 필요가 없어요.</p>
<h3>겹치는 칸 공식은 숫자가 여러 개일 때도 되나요?</h3>
<p>네, 덩어리마다 따로 계산하면 돼요. 여유 칸은 줄 전체에서 한 번만 계산하고(줄 길이 − 숫자 합 − 덩어리 수 + 1), 각 덩어리의 길이에서 그 값을 빼요. 0 이하면 그 덩어리에서는 확정되는 칸이 없어요.</p>
<h3>✕ 표시는 꼭 해야 하나요?</h3>
<p>완성 판정에는 영향이 없지만, 하는 편이 훨씬 빨라요. 완성된 덩어리 양옆, 끝에서 밀려난 칸 등 "여기는 빈칸"이라는 정보를 눈에 보이게 남기면 다음에 그 줄을 볼 때 남은 구간만 계산하면 되기 때문이에요.</p>
<h3>5×5부터 15×15까지 어느 크기부터 시작하는 게 좋을까요?</h3>
<p>처음에는 5×5로 여유 칸과 겹치는 칸 계산에 익숙해지세요. 5×5를 몇 판 풀면 10×10도 같은 방법이 통한다는 걸 알게 돼요. 15×15는 칸이 225개라 시간이 꽤 걸려요. 크기별 최고 기록이 따로 저장돼서 단계별로 도전하기 좋아요.</p>
<h3>가로줄부터 풀어야 하나요, 세로줄부터 풀어야 하나요?</h3>
<p>상관없어요. 여유 칸이 작은 줄부터 찾는 게 중요하고, 그 줄이 가로인지 세로인지는 상관없어요. 다만 한 줄을 풀었으면 꼭 반대 방향 줄을 이어서 확인하세요.</p>
<h2 id="s11">정리</h2>
<p>노노그램 푸는 법은 "여유 칸 세기 → 겹치는 칸 칠하기 → 끝에서 밀어내기 → 방향 바꿔 다시 보기"가 전부예요. 여유 칸이 0인 줄과 큰 덩어리가 있는 줄에서 시작하고, 새로 알게 된 칸이 있는 반대 방향 줄을 이어서 보면 찍지 않고도 끝까지 풀려요.</p>
<p><a href="https://game.smithlab.co.kr/games/nonogram/">노노그램 게임</a>에서 5×5로 한 판 풀어 보면서 여유 칸을 직접 세어 보세요. 한 줄 논리가 재미있다면 후보를 지워 가는 <a href="https://game.smithlab.co.kr/games/sudoku/">스도쿠</a>와 줄 단위로 푸는 방법이 비슷한 <a href="https://game.smithlab.co.kr/posts/games/15-puzzle-solving-method/">슬라이딩 퍼즐 풀이 글</a>도 함께 읽어 보세요.</p>
    ]]></description>
    </item>
    <item>
      <title>포토카드·띠부씰 전종 컴플릿 — 몇 개를 뽑아야 다 모을까 평균과…</title>
      <link>https://game.smithlab.co.kr/posts/games/collect-all-cards-complete-set-expected-draws/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/collect-all-cards-complete-set-expected-draws/</guid>
      <pubDate>Sat, 31 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>랜덤으로 한 개씩 나오는 포토카드, 띠부씰, 빵 스티커, 편의점 굿즈를 모으다 보면 누구나 같은 경험을 해요. 처음 몇 장은 새 종류가 줄줄이 나오는데, 어느 순간부터 계속 겹치기만 해요. 결론부터 말하면 <strong>종류가 n개일 때 전종을 모으는 평균 개수는 n × (1 + 1/2 + … + 1/n)</strong> 이고, 12종이면 평균 37.2개예요. 종류 수의 3배쯤 되는 숫자예요.</p>
<p>더 중요한 건 평균만 믿고 예산을 잡으면 위험하다는 점이에요. 12종에서 37개를 뽑았을 때 컴플릿할 확률은 59.3%밖에 안 돼요. 열 번 중 네 번은 한두 장이 비어요. 이 글에서는 평균, 90%·99% 확률로 필요한 개수, 마지막 한 장이 가장 오래 걸리는 이유, 예산을 잡는 방법을 직접 계산한 숫자로 정리해요. 모든 종류가 같은 확률로 한 개씩 독립적으로 나오는 경우가 기준이에요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>12종을 전부 모으는 평균은 37.2개, 90% 확률로는 55개, 99% 확률로는 82개예요.</li><li>마지막 한 종류만 남으면 평균 12개를 더 뽑아야 해요. 전체 평균 37.2개 중 마지막 두 종류에만 평균 18개가 들어요.</li><li>예산은 평균이 아니라 90% 개수로 잡고, 빈 칸이 한두 장 남으면 교환이나 중고 구매를 같이 고려하세요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">전종을 모으는 평균 개수는 이렇게 계산해요</h2>
<p>이미 k종을 모았다면 다음에 뽑은 것이 새 종류일 확률은 (n−k)/n 이에요. 새 종류가 나올 때까지 평균 n/(n−k)개를 뽑아야 해요. 이것을 첫 종류부터 마지막 종류까지 더하면 전종 평균이 나와요.</p>
<p>12종을 모으는 과정을 단계별로 보면 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>모으는 순서</th><th>이미 모은 종류</th><th>새 종류가 나올 확률</th><th>그 종류가 나올 때까지 평균</th></tr></thead><tbody><tr><td>1번째</td><td>0종</td><td>12/12</td><td>1.00개</td></tr><tr><td>2번째</td><td>1종</td><td>11/12</td><td>1.09개</td></tr><tr><td>3번째</td><td>2종</td><td>10/12</td><td>1.20개</td></tr><tr><td>4번째</td><td>3종</td><td>9/12</td><td>1.33개</td></tr><tr><td>5번째</td><td>4종</td><td>8/12</td><td>1.50개</td></tr><tr><td>6번째</td><td>5종</td><td>7/12</td><td>1.71개</td></tr><tr><td>7번째</td><td>6종</td><td>6/12</td><td>2.00개</td></tr><tr><td>8번째</td><td>7종</td><td>5/12</td><td>2.40개</td></tr><tr><td>9번째</td><td>8종</td><td>4/12</td><td>3.00개</td></tr><tr><td>10번째</td><td>9종</td><td>3/12</td><td>4.00개</td></tr><tr><td>11번째</td><td>10종</td><td>2/12</td><td>6.00개</td></tr><tr><td>12번째</td><td>11종</td><td>1/12</td><td>12.00개</td></tr></tbody></table></div>
<p>이 열을 모두 더하면 37.24개예요. 앞의 여섯 종류를 모으는 데는 합쳐서 7.8개면 되지만, 마지막 세 종류에는 22개가 들어요. 전체의 약 59%를 마지막 세 종류가 차지해요. 컴플릿이 어렵게 느껴지는 건 기분 탓이 아니라 구조 때문이에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">12종을 모을 때 종류별로 필요한 평균 개수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="12종을 모을 때 종류별로 필요한 평균 개수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">2</text><line class="viz-grid" x1="52" x2="628" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">4</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">6</text><line class="viz-grid" x1="52" x2="628" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">8</text><line class="viz-grid" x1="52" x2="628" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">12</text><rect class="s1" x="62.8" y="234.3" width="50.4" height="19.7" rx="3"><title>1번째 · 평균 개수 1개</title></rect><text class="viz-val" x="88.0" y="229.3" text-anchor="middle">1</text><text class="viz-ax" x="88.0" y="272" text-anchor="middle">1번째</text><rect class="s1" x="134.8" y="230.4" width="50.4" height="23.6" rx="3"><title>3번째 · 평균 개수 1.2개</title></rect><text class="viz-val" x="160.0" y="225.4" text-anchor="middle">1.2</text><text class="viz-ax" x="160.0" y="272" text-anchor="middle">3번째</text><rect class="s1" x="206.8" y="224.5" width="50.4" height="29.5" rx="3"><title>5번째 · 평균 개수 1.5개</title></rect><text class="viz-val" x="232.0" y="219.5" text-anchor="middle">1.5</text><text class="viz-ax" x="232.0" y="272" text-anchor="middle">5번째</text><rect class="s1" x="278.8" y="214.7" width="50.4" height="39.3" rx="3"><title>7번째 · 평균 개수 2개</title></rect><text class="viz-val" x="304.0" y="209.7" text-anchor="middle">2</text><text class="viz-ax" x="304.0" y="272" text-anchor="middle">7번째</text><rect class="s1" x="350.8" y="195.0" width="50.4" height="59.0" rx="3"><title>9번째 · 평균 개수 3개</title></rect><text class="viz-val" x="376.0" y="190.0" text-anchor="middle">3</text><text class="viz-ax" x="376.0" y="272" text-anchor="middle">9번째</text><rect class="s1" x="422.8" y="175.3" width="50.4" height="78.7" rx="3"><title>10번째 · 평균 개수 4개</title></rect><text class="viz-val" x="448.0" y="170.3" text-anchor="middle">4</text><text class="viz-ax" x="448.0" y="272" text-anchor="middle">10번째</text><rect class="s1" x="494.8" y="136.0" width="50.4" height="118.0" rx="3"><title>11번째 · 평균 개수 6개</title></rect><text class="viz-val" x="520.0" y="131.0" text-anchor="middle">6</text><text class="viz-ax" x="520.0" y="272" text-anchor="middle">11번째</text><rect class="s1" x="566.8" y="18.0" width="50.4" height="236.0" rx="3"><title>12번째 · 평균 개수 12개</title></rect><text class="viz-val" x="592.0" y="13.0" text-anchor="middle">12</text><text class="viz-ax" x="592.0" y="272" text-anchor="middle">12번째</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">마지막 한 종류가 앞의 여섯 종류를 합친 것보다 1.5배 이상 많이 필요해요.</p><div class="viz-cap">단위: 개 · 자료: n/(n−k) 공식으로 직접 계산 (12종, 모두 같은 확률)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>평균 개수</th></tr></thead><tbody><tr><td>1번째</td><td>1</td></tr><tr><td>3번째</td><td>1.2</td></tr><tr><td>5번째</td><td>1.5</td></tr><tr><td>7번째</td><td>2</td></tr><tr><td>9번째</td><td>3</td></tr><tr><td>10번째</td><td>4</td></tr><tr><td>11번째</td><td>6</td></tr><tr><td>12번째</td><td>12</td></tr></tbody></table></div></details></figure>
<h2 id="s2">종류 수별 평균과 90%·99% 개수</h2>
<p>종류가 많아질수록 필요한 개수는 종류 수보다 빠르게 늘어요. 아래 표는 모든 종류가 같은 확률일 때 직접 계산한 값이에요. 포함·배제 원리로 정확한 확률을 구한 뒤 목표 확률을 처음 넘는 개수를 찾았어요.</p>
<div class="table-wrap"><table><thead><tr><th>전체 종류</th><th>평균</th><th>50% 확률</th><th>90% 확률</th><th>99% 확률</th></tr></thead><tbody><tr><td>5종</td><td>11.4개</td><td>10개</td><td>18개</td><td>28개</td></tr><tr><td>8종</td><td>21.7개</td><td>20개</td><td>33개</td><td>51개</td></tr><tr><td>12종</td><td>37.2개</td><td>35개</td><td>55개</td><td>82개</td></tr><tr><td>20종</td><td>72.0개</td><td>67개</td><td>103개</td><td>149개</td></tr><tr><td>30종</td><td>119.8개</td><td>113개</td><td>168개</td><td>237개</td></tr><tr><td>50종</td><td>225.0개</td><td>214개</td><td>306개</td><td>422개</td></tr></tbody></table></div>
<p>평균은 50% 확률 개수와 거의 같아요. 즉 <strong>평균만큼 사면 컴플릿할 가능성은 절반을 조금 넘는 정도</strong>예요. 12종이면 평균에 가까운 37개에서 59.3%, 50종이면 평균 225개에서 약 58%예요. 안심하려면 90% 개수가 평균보다 약 1.5배, 99% 개수는 약 2.2배 많다는 점을 기억하세요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">12종에서 뽑은 개수별 컴플릿 확률</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="12종에서 뽑은 개수별 컴플릿 확률" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">25</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">75</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">100</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">24개</text><text class="viz-ax" x="181.5" y="272" text-anchor="middle">36개</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">48개</text><text class="viz-ax" x="440.5" y="272" text-anchor="middle">60개</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">72개</text><polyline class="viz-line s1" points="52.0,218.6 181.5,121.1 311.0,59.1 440.5,33.1 570.0,23.4"/><circle class="viz-dot s1" cx="52.0" cy="218.6" r="4"><title>24개 · 컴플릿 확률 15%</title></circle><circle class="viz-dot s1" cx="181.5" cy="121.1" r="4"><title>36개 · 컴플릿 확률 56.3%</title></circle><circle class="viz-dot s1" cx="311.0" cy="59.1" r="4"><title>48개 · 컴플릿 확률 82.6%</title></circle><circle class="viz-dot s1" cx="440.5" cy="33.1" r="4"><title>60개 · 컴플릿 확률 93.6%</title></circle><circle class="viz-dot s1" cx="570.0" cy="23.4" r="4"><title>72개 · 컴플릿 확률 97.7%</title></circle><text class="viz-val" x="578.0" y="27.4">97.7</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">36개 근처에서 확률이 가파르게 오르다가 60개를 넘으면 천천히 올라요.</p><div class="viz-cap">단위: % · 자료: 포함·배제 원리로 직접 계산 (12종, 모두 같은 확률)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>컴플릿 확률</th></tr></thead><tbody><tr><td>24개</td><td>15</td></tr><tr><td>36개</td><td>56.3</td></tr><tr><td>48개</td><td>82.6</td></tr><tr><td>60개</td><td>93.6</td></tr><tr><td>72개</td><td>97.7</td></tr></tbody></table></div></details></figure>
<h2 id="s3">같은 40개를 사도 결과가 크게 달라요</h2>
<p>12종에서 40개를 뽑았을 때 컴플릿할 확률은 약 67%예요. 그래서 같은 40개를 산 사람 셋 중 한 명은 빈 칸이 남아요. 이게 억울한 일이 아니라 확률의 정상 범위예요. 모의실험으로 12종을 1,000번 컴플릿해 보면 가장 빨리 끝난 경우는 10여 개, 가장 오래 걸린 경우는 100개를 넘는 일도 생겨요. 평균이 37개여도 사람마다 편차가 매우 커요.</p>
<p>그래서 "이번에도 나만 안 나온다"고 느끼는 건 자연스러워요. 뽑기 결과가 몰려 나오는 구간이 항상 있고, 사람은 안 나오는 구간을 더 오래 기억해요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/collect-all-cards-complete-set-expected-draws-1.svg" alt="12종 전종 수집에서 종류별 필요 평균 개수가 1.0개에서 12.0개로 커지는 모습과 마지막 세 종류가 전체의 절반이 넘는 비중을 보여 주는 막대 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>마지막 세 종류에 전체 필요 개수의 절반 이상이 들어가요</figcaption></figure>
<h2 id="s4">최애 한 종만 노릴 때</h2>
<p>전종이 아니라 <strong>특정 한 종</strong>만 필요하다면 계산이 훨씬 단순해요. 한 번 뽑을 때 그 종류가 나올 확률이 1/12이니, 한 번도 안 나올 확률은 (11/12)&lt;sup&gt;m&lt;/sup&gt; 이에요.</p>
<div class="table-wrap"><table><thead><tr><th>뽑은 개수</th><th>12종 중 최애가 나올 확률</th></tr></thead><tbody><tr><td>12개</td><td>64.8%</td></tr><tr><td>24개</td><td>87.6%</td></tr><tr><td>27개</td><td>90.0% 이상</td></tr><tr><td>53개</td><td>99.0% 이상</td></tr></tbody></table></div>
<p>평균은 12개지만, 12개를 뽑아도 최애가 나올 확률은 64.8%예요. 종류가 24종이어도 24개를 뽑았을 때 64.0%로 거의 같아요. 평균 개수는 "대략 이 정도"일 뿐, 확실히 얻으려면 2~4배를 생각하라는 뜻이에요. 확률이 낮은 한정 카드가 따로 있다면 <a href="https://tool.smithlab.co.kr/calculator/gacha-pity-calculator/">뽑기·천장 계산기</a>로 따로 계산하는 게 맞아요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">예산을 잡는 방법</h2>
<p>개당 가격이 2,000원인 12종 굿즈를 예로 들어 볼게요. 가격은 계산을 보여 주기 위한 예시예요.</p>
<div class="table-wrap"><table><thead><tr><th>기준</th><th>필요한 개수</th><th>예산 (개당 2,000원)</th></tr></thead><tbody><tr><td>평균</td><td>37.2개</td><td>약 74,400원</td></tr><tr><td>90% 확률</td><td>55개</td><td>110,000원</td></tr><tr><td>99% 확률</td><td>82개</td><td>164,000원</td></tr></tbody></table></div>
<p>평균만 보고 74,400원을 준비했다가 빈 칸이 남으면 추가 지출이 생겨요. 90% 기준 110,000원을 상한으로 잡고, 도달하기 전에 컴플릿이 되면 남는 돈을 아끼는 방식이 마음이 편해요. 99% 기준은 "무슨 일이 있어도 전종을 모으겠다"는 경우에만 필요한 금액이에요.</p>
<h3>개수를 정해 놓고 멈추기</h3>
<p>마지막 한두 장이 남으면 계속 사고 싶은 마음이 커져요. 마지막 한 종류에 평균 12개(24,000원)가 필요한데, 이 종류를 중고나 교환으로 구하면 보통 훨씬 적게 들어요. 그래서 목표 개수에 도달하면 멈추고 남은 칸은 다른 방법으로 채운다는 규칙을 미리 정해 두세요.</p>
<h3>친구와 같이 모으면</h3>
<p>여러 명이 각자 사서 중복을 교환하면 컴플릿이 훨씬 쉬워져요. 5명이 각자 40개씩 사서 합치면 200개이고, 12종이 모두 있을 확률은 99.9999% 이상이에요. 혼자 모으면 평균 37개가 필요한 걸 생각하면 한 사람당 40개로 5명 모두 컴플릿할 수 있는 셈이에요. 교환이 가능한 환경이라면 혼자 뽑기를 반복하는 것보다 확실히 이득이에요.</p>
<h2 id="s6">이 계산이 맞지 않는 경우</h2>
<ul><li><strong>확률이 다른 종류가 섞여 있을 때</strong>: 시크릿·한정 카드는 보통 일반 카드보다 확률이 낮아요. 이 경우 필요한 개수는 위 표보다 늘어나요.</li><li><strong>박스 단위로 종류가 고르게 들어 있을 때</strong>: 한 박스에 12종이 한 장씩 들어 있다면 한 박스에 컴플릿이에요. 낱개 뽑기와 계산이 달라요. 박스 구성이 공개되어 있는지 확인하세요.</li><li><strong>뽑는 방식이 독립이 아닐 때</strong>: 같은 상자에서 연달아 뽑으면 이미 나온 종류는 상자 안에서 줄어들어요. 이 경우 중복이 덜 나와요.</li><li><strong>유료 확률형 상품일 때</strong>: 확률형 아이템이나 랜덤 상품은 판매자가 확률을 표시해야 하는 경우가 있고, 환불 기준도 상품마다 달라요. 구매 전에 판매처 안내를 확인하세요.</li></ul>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/collect-all-cards-complete-set-expected-draws-2.svg" alt="종류 수 5종부터 50종까지 평균과 90% 개수가 늘어나는 모습을 비교한 설명 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>종류가 많을수록 평균 대비 90% 개수의 절대 차이가 커져요</figcaption></figure>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">직접 해 보면 감이 와요</h2>
<p>계산 결과가 와닿지 않으면 직접 굴려 보는 게 가장 빨라요. <a href="https://tool.smithlab.co.kr/calculator/collection-complete-calculator/">포토카드·띠부씰 컴플릿 계산기</a>에서 종류 수를 넣고 "컴플릿까지 뽑기"를 몇 번 눌러 보세요. 같은 12종인데 어떤 때는 20개 남짓에, 어떤 때는 80개가 넘어서야 끝나요. "1,000번 컴플릿해 보기"를 누르면 평균과 가장 빠를 때·오래 걸릴 때를 막대로 보여 줘요. 수집 체크는 <a href="https://tool.smithlab.co.kr/life/photocard-checklist/">포토카드 수집 체크리스트</a>에서 멤버와 버전별로 관리할 수 있고, 일반적인 확률 계산은 <a href="https://tool.smithlab.co.kr/calculator/probability-calculator/">확률 계산기</a>를 쓰면 돼요.</p>
<p>수학적 배경이 궁금하다면 <a href="https://en.wikipedia.org/wiki/Coupon_collector%27s_problem" target="_blank" rel="noopener">Coupon collector's problem (Wikipedia)</a>에 증명과 변형 문제가 정리되어 있어요. 이 글의 숫자는 위 공식으로 파이썬 분수 계산을 해서 얻었고, 브라우저 계산기 결과와 일치하는 것을 확인했어요.</p>
<h2 id="s8">자주 묻는 질문</h2>
<h3>전종 12개를 모으려면 평균 몇 개를 사야 하나요?</h3>
<p>모든 종류가 같은 확률이라면 평균 37.2개예요. 다만 평균만큼 사면 컴플릿할 확률은 약 59%이고, 90%는 55개, 99%는 82개가 필요해요.</p>
<h3>마지막 한 장이 왜 이렇게 안 나오나요?</h3>
<p>이미 모은 종류가 많을수록 새 종류가 나올 확률이 낮아지기 때문이에요. 12종 중 11종을 모은 상태에서는 새 종류가 나올 확률이 12분의 1이라 평균 12개를 뽑아야 해요.</p>
<h3>종류가 2배면 필요한 개수도 2배인가요?</h3>
<p>2배보다 조금 더 늘어요. 12종은 평균 37.2개, 24종은 평균 약 90.6개로 2.4배 정도예요. 종류가 많아질수록 증가 폭이 더 커져요.</p>
<h3>같은 확률이 아닌 경우는 어떻게 계산하나요?</h3>
<p>확률이 낮은 종류가 섞이면 그 종류 때문에 필요한 개수가 크게 늘어요. 확률이 낮은 종류를 따로 떼어 평균 1/p개로 어림하고, 나머지 종류와 합산해 보세요. 정확한 값은 모의실험이 필요해요.</p>
<h3>박스로 사면 낱개보다 유리한가요?</h3>
<p>박스 안에 종류가 고르게 들어 있다면 훨씬 유리해요. 한 박스가 한 세트라면 한 박스로 컴플릿이에요. 박스 구성이 비공개이거나 랜덤이면 낱개와 비슷하게 봐야 해요.</p>
<h3>친구와 교환하면 얼마나 유리한가요?</h3>
<p>매우 유리해요. 여러 명이 가진 카드를 합치면 각자가 따로 모을 때보다 훨씬 적은 총량으로 모두 컴플릿할 수 있어요. 교환이 가능하다면 마지막 몇 장은 구입 대신 교환이 낫습니다.</p>
<h2 id="s9">정리</h2>
<p>전종 컴플릿은 평균 n × (1 + 1/2 + … + 1/n) 개이고, 12종이면 37.2개예요. 평균에 맞춰 예산을 잡으면 40% 정도는 부족해요. 90% 확률 개수(12종 55개)를 상한으로 잡고, 마지막 한두 장은 교환이나 중고로 채우는 걸 기본 전략으로 삼으세요. 확률형 상품은 구매 전에 판매처의 확률 표시와 환불 기준을 꼭 확인하세요.</p>
    ]]></description>
    </item>
    <item>
      <title>제비뽑기 순서 정하기, 먼저 뽑아야 유리할까? 순번별 당첨 확률 계산</title>
      <link>https://game.smithlab.co.kr/posts/games/draw-lots-order-fair-probability-calculation/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/draw-lots-order-fair-probability-calculation/</guid>
      <pubDate>Fri, 30 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>송년회 경품 추첨이나 청소 당번 뽑기에서 늘 나오는 말이 있어요. "먼저 뽑아야 당첨이 남아 있을 때 뽑으니까 유리하다", 아니면 "뒤에 뽑아야 앞사람 결과를 보고 알 수 있으니까 유리하다"예요. 결론부터 말하면 <strong>상자 안의 제비가 섞여 있고 뽑은 결과를 아직 아무도 모르는 상태라면, 몇 번째로 뽑든 당첨될 확률은 똑같아요.</strong> 10명이 당첨 2개짜리 제비를 한 장씩 뽑는다면 1번째도 5번째도 10번째도 모두 20%예요.</p>
<p>이 글에서는 왜 순서와 상관없이 확률이 같은지, 앞사람이 꽝을 뽑았을 때 내 확률이 오르는 것은 무슨 뜻인지, 중간에 순서를 바꾸거나 뽑은 제비를 다시 넣을 때(복원) 달라지는 점을 숫자로 풀어요. 확률 계산 자체는 <a href="https://tool.smithlab.co.kr/calculator/probability-calculator/">확률 계산기</a>나 <a href="https://tool.smithlab.co.kr/calculator/combination-calculator/">조합 계산기</a>로 따라 해 볼 수 있어요. 모든 숫자는 직접 계산하고 20만 번 무작위 시뮬레이션으로도 확인했어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>섞은 제비를 비밀로 한 채 한 장씩 뽑으면 n번째 사람의 당첨 확률은 순서와 무관하게 당첨 수 ÷ 전체 수예요.</li><li>앞사람이 꽝이라는 것을 내가 "안 상태"에서는 내 확률이 오르지만, 그런 일이 일어날 확률이 그만큼 낮아서 평균은 같아요.</li><li>뽑은 제비를 다시 넣으면(복원) 모든 사람의 확률이 매번 같고, 넣지 않으면(비복원) 앞 결과가 뒤 확률에 영향을 줘요.</li><li>순서를 불공평하게 만드는 건 확률이 아니라 정보예요. 결과를 바로 공개하는 방식이면 뒤 사람이 유리하게 느껴져요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">먼저 뽑으나 나중에 뽑으나 확률이 같은 이유</h2>
<p>10장의 제비 중 당첨이 2장이고 10명이 순서대로 한 장씩 뽑는다고 해 볼게요. 5번째 사람의 당첨 확률을 구하려면 "5번째로 뽑는 제비가 당첨일 확률"을 보면 돼요. 10장을 모두 섞어 일렬로 늘어놓았다고 생각하면, 당첨 제비 2장이 10개 자리 중 어디에 있을지는 모든 경우가 똑같이 일어날 수 있어요. 그중 5번째 자리가 당첨인 경우는 10개 자리에서 당첨 자리 2개를 고르는 경우의 수 C(10,2)=45가지 중에 5번째가 포함된 9가지예요. 9 ÷ 45 = 0.2, 즉 20%예요.</p>
<p>이 계산은 몇 번째를 넣어도 똑같아서 1번째도 9 ÷ 45, 10번째도 9 ÷ 45예요. 더 간단히 말하면 "특정 자리가 당첨일 확률 = 당첨 수 ÷ 전체 수 = 2 ÷ 10"이에요. 아래는 10만 번씩 두 번, 총 20만 번 무작위로 뽑아 순서별로 당첨된 비율을 센 값이에요. 모두 20% 근처에 있어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/draw-lots-order-fair-probability-1.svg" alt="10명 중 2개 당첨 제비를 순서대로 뽑을 때 1번째부터 10번째까지 모두 20%이고, 앞사람이 꽝이면 내 확률이 오르는 폭을 보여 주는 그림" width="800" height="330" loading="lazy" decoding="async"><figcaption>순서에 따라 확률이 달라지지 않아요</figcaption></figure>
<figure class="viz viz-bar"><figcaption class="viz-title">순서별 당첨 비율 — 20만 번 무작위 뽑기 (10명, 당첨 2개)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="순서별 당첨 비율 — 20만 번 무작위 뽑기 (10명, 당첨 2개)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="628" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">15</text><line class="viz-grid" x1="52" x2="628" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">25</text><rect class="s1" x="60.6" y="64.3" width="40.3" height="189.7" rx="3"><title>1번째 · 당첨 비율 20.1%</title></rect><text class="viz-val" x="80.8" y="59.3" text-anchor="middle">20.1</text><text class="viz-ax" x="80.8" y="272" text-anchor="middle">1번째</text><rect class="s1" x="118.2" y="66.1" width="40.3" height="187.9" rx="3"><title>2번째 · 당첨 비율 19.9%</title></rect><text class="viz-val" x="138.4" y="61.1" text-anchor="middle">19.9</text><text class="viz-ax" x="138.4" y="272" text-anchor="middle">2번째</text><rect class="s1" x="175.8" y="65.2" width="40.3" height="188.8" rx="3"><title>3번째 · 당첨 비율 20%</title></rect><text class="viz-val" x="196.0" y="60.2" text-anchor="middle">20</text><text class="viz-ax" x="196.0" y="272" text-anchor="middle">3번째</text><rect class="s1" x="233.4" y="65.2" width="40.3" height="188.8" rx="3"><title>4번째 · 당첨 비율 20%</title></rect><text class="viz-val" x="253.6" y="60.2" text-anchor="middle">20</text><text class="viz-ax" x="253.6" y="272" text-anchor="middle">4번째</text><rect class="s1" x="291.0" y="66.1" width="40.3" height="187.9" rx="3"><title>5번째 · 당첨 비율 19.9%</title></rect><text class="viz-val" x="311.2" y="61.1" text-anchor="middle">19.9</text><text class="viz-ax" x="311.2" y="272" text-anchor="middle">5번째</text><rect class="s1" x="348.6" y="65.2" width="40.3" height="188.8" rx="3"><title>6번째 · 당첨 비율 20%</title></rect><text class="viz-val" x="368.8" y="60.2" text-anchor="middle">20</text><text class="viz-ax" x="368.8" y="272" text-anchor="middle">6번째</text><rect class="s1" x="406.2" y="65.2" width="40.3" height="188.8" rx="3"><title>7번째 · 당첨 비율 20%</title></rect><text class="viz-val" x="426.4" y="60.2" text-anchor="middle">20</text><text class="viz-ax" x="426.4" y="272" text-anchor="middle">7번째</text><rect class="s1" x="463.8" y="65.2" width="40.3" height="188.8" rx="3"><title>8번째 · 당첨 비율 20%</title></rect><text class="viz-val" x="484.0" y="60.2" text-anchor="middle">20</text><text class="viz-ax" x="484.0" y="272" text-anchor="middle">8번째</text><rect class="s1" x="521.4" y="65.2" width="40.3" height="188.8" rx="3"><title>9번째 · 당첨 비율 20%</title></rect><text class="viz-val" x="541.6" y="60.2" text-anchor="middle">20</text><text class="viz-ax" x="541.6" y="272" text-anchor="middle">9번째</text><rect class="s1" x="579.0" y="64.3" width="40.3" height="189.7" rx="3"><title>10번째 · 당첨 비율 20.1%</title></rect><text class="viz-val" x="599.2" y="59.3" text-anchor="middle">20.1</text><text class="viz-ax" x="599.2" y="272" text-anchor="middle">10번째</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">이론값은 모든 순서에서 정확히 20%이고, 시뮬레이션은 소수점 둘째 자리에서 조금씩 흔들려요.</p><div class="viz-cap">단위: % · 자료: 직접 만든 무작위 시뮬레이션(20만 번), 이론값은 모두 20%</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>당첨 비율</th></tr></thead><tbody><tr><td>1번째</td><td>20.1</td></tr><tr><td>2번째</td><td>19.9</td></tr><tr><td>3번째</td><td>20</td></tr><tr><td>4번째</td><td>20</td></tr><tr><td>5번째</td><td>19.9</td></tr><tr><td>6번째</td><td>20</td></tr><tr><td>7번째</td><td>20</td></tr><tr><td>8번째</td><td>20</td></tr><tr><td>9번째</td><td>20</td></tr><tr><td>10번째</td><td>20.1</td></tr></tbody></table></div></details></figure>
<h2 id="s2">앞사람이 꽝일 때 내 확률이 올라가는 것은 무슨 뜻일까</h2>
<p>여기서 헷갈리는 지점이 있어요. 앞사람들이 꽝을 뽑은 것을 내가 봤다면 남은 제비 중 당첨 비율이 커지니 내 확률이 올라가요. 아래 표는 10장 중 당첨 2장에서 앞사람 k명이 모두 꽝이었을 때 다음 사람의 당첨 확률이에요. 공식은 당첨 수 ÷ 남은 제비 수, 즉 2 ÷ (10 − k)예요.</p>
<div class="table-wrap"><table><thead><tr><th>앞사람이 꽝인 수</th><th>남은 제비</th><th>다음 사람 당첨 확률</th></tr></thead><tbody><tr><td>0명</td><td>10장</td><td>20.0%</td></tr><tr><td>1명</td><td>9장</td><td>22.2%</td></tr><tr><td>2명</td><td>8장</td><td>25.0%</td></tr><tr><td>3명</td><td>7장</td><td>28.6%</td></tr><tr><td>4명</td><td>6장</td><td>33.3%</td></tr><tr><td>5명</td><td>5장</td><td>40.0%</td></tr><tr><td>6명</td><td>4장</td><td>50.0%</td></tr><tr><td>7명</td><td>3장</td><td>66.7%</td></tr><tr><td>8명</td><td>2장</td><td>100.0%</td></tr></tbody></table></div>
<p>표만 보면 "뒤로 갈수록 유리하다"고 느껴져요. 하지만 이 표는 "앞사람이 전부 꽝"이라는 조건이 붙은 확률이에요. 그 조건이 일어날 확률은 반대로 점점 낮아져요. 앞 m명이 모두 꽝일 확률은 C(8,m) ÷ C(10,m)이에요.</p>
<div class="table-wrap"><table><thead><tr><th>앞 m명</th><th>모두 꽝일 확률</th><th>한 명이라도 당첨될 확률</th></tr></thead><tbody><tr><td>1명</td><td>80.0%</td><td>20.0%</td></tr><tr><td>2명</td><td>62.2%</td><td>37.8%</td></tr><tr><td>3명</td><td>46.7%</td><td>53.3%</td></tr><tr><td>4명</td><td>33.3%</td><td>66.7%</td></tr><tr><td>5명</td><td>22.2%</td><td>77.8%</td></tr><tr><td>6명</td><td>13.3%</td><td>86.7%</td></tr><tr><td>7명</td><td>6.7%</td><td>93.3%</td></tr><tr><td>8명</td><td>2.2%</td><td>97.8%</td></tr></tbody></table></div>
<p>예를 들어 6번째 사람의 확률을 따져 볼게요. 앞 5명이 모두 꽝일 확률이 22.2%이고 그때 내 확률이 40%예요. 앞 5명 중 당첨이 한 번 나온 경우에는 내 확률이 1장 ÷ 5장 = 20%, 두 번 나왔다면 0%예요. 이 경우들을 모두 평균하면 정확히 20%가 돼요. 조건에 따라 올랐다 내렸다 하지만 평균은 변하지 않는 거예요. 이것이 "순서가 공평하다"는 말의 정확한 뜻이에요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">앞사람이 모두 꽝일 때 다음 사람의 당첨 확률 (10장 중 2장)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="앞사람이 모두 꽝일 때 다음 사람의 당첨 확률 (10장 중 2장)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">25</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">75</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">100</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">0명</text><text class="viz-ax" x="181.5" y="272" text-anchor="middle">2명</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">4명</text><text class="viz-ax" x="440.5" y="272" text-anchor="middle">6명</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">8명</text><polyline class="viz-line s1" points="52.0,206.8 116.8,201.6 181.5,195.0 246.2,186.5 311.0,175.4 375.8,159.6 440.5,136.0 505.2,96.6 570.0,18.0"/><circle class="viz-dot s1" cx="52.0" cy="206.8" r="4"><title>0명 · 다음 사람 확률 20%</title></circle><circle class="viz-dot s1" cx="116.8" cy="201.6" r="4"><title>1명 · 다음 사람 확률 22.2%</title></circle><circle class="viz-dot s1" cx="181.5" cy="195.0" r="4"><title>2명 · 다음 사람 확률 25%</title></circle><circle class="viz-dot s1" cx="246.2" cy="186.5" r="4"><title>3명 · 다음 사람 확률 28.6%</title></circle><circle class="viz-dot s1" cx="311.0" cy="175.4" r="4"><title>4명 · 다음 사람 확률 33.3%</title></circle><circle class="viz-dot s1" cx="375.8" cy="159.6" r="4"><title>5명 · 다음 사람 확률 40%</title></circle><circle class="viz-dot s1" cx="440.5" cy="136.0" r="4"><title>6명 · 다음 사람 확률 50%</title></circle><circle class="viz-dot s1" cx="505.2" cy="96.6" r="4"><title>7명 · 다음 사람 확률 66.7%</title></circle><circle class="viz-dot s1" cx="570.0" cy="18.0" r="4"><title>8명 · 다음 사람 확률 100%</title></circle><text class="viz-val" x="578.0" y="22.0">100</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">조건이 붙었을 때의 확률이라서, 그 조건이 일어날 확률(위 표)과 같이 봐야 해요.</p><div class="viz-cap">단위: % · 자료: 당첨 수 ÷ (10 − 앞사람 수) 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>다음 사람 확률</th></tr></thead><tbody><tr><td>0명</td><td>20</td></tr><tr><td>1명</td><td>22.2</td></tr><tr><td>2명</td><td>25</td></tr><tr><td>3명</td><td>28.6</td></tr><tr><td>4명</td><td>33.3</td></tr><tr><td>5명</td><td>40</td></tr><tr><td>6명</td><td>50</td></tr><tr><td>7명</td><td>66.7</td></tr><tr><td>8명</td><td>100</td></tr></tbody></table></div></details></figure>
<h2 id="s3">결과를 바로 공개하면 정보가 생겨요</h2>
<p>그렇다면 왜 "뒤에 뽑는 게 유리한 것 같다"는 느낌이 드는 걸까요? 이유는 결과를 공개하기 때문이에요. 한 명씩 뽑고 그 자리에서 열어 보여 주면 뒤 사람은 남은 제비 구성을 알게 되고, 마지막 사람에게는 선택의 여지가 없어서 확률이 0%나 100%로 정해져요. 확률의 평균은 같아도 뒤로 갈수록 "결과를 이미 아는 상태"에 가까워지기 때문에 긴장감이 달라요. 특히 이런 상황은 조심해야 해요.</p>
<ul><li><strong>중간에 순서를 바꿀 수 있을 때</strong>: 앞사람 결과를 본 뒤에 순서를 바꿀 수 있다면 그건 정보를 이용한 것이라 공정하지 않아요. 순서는 뽑기 전에 정하세요.</li><li><strong>뽑은 제비를 열어 보기 전에 다른 사람과 바꿀 수 있을 때</strong>: 열어 보지 않았다면 바꿔도 확률은 같아요. 다만 누군가 이미 열어 본 상태에서의 교환은 공정하지 않아요.</li><li><strong>마지막 한 장 남았을 때</strong>: 남은 제비는 이미 결정된 거라 확률 이야기가 아니에요. 끝까지 하는 방식이면 마지막 사람은 선택권이 없어요.</li></ul>
<h2 id="s4">복원과 비복원: 뽑은 제비를 다시 넣으면</h2>
<p>뽑은 제비를 도로 넣고 섞는 방식(복원 추출)이라면 매번 확률은 20%로 똑같아요. 이때는 앞사람 결과가 뒤 확률에 아무 영향도 주지 않아요. 비복원일 때처럼 조건에 따라 오르내리지도 않아요. 다만 복원 방식에서는 당첨이 정확히 2번만 나온다는 보장이 없어요. 10명이 뽑으면 당첨 수가 0명일 수도, 10명일 수도 있어요. 정해진 수의 당첨자를 뽑아야 하는 상황이라면 비복원이 맞아요.</p>
<p>두 방식을 숫자로 비교해 볼게요. 10명이 복원 방식으로 한 번씩 뽑을 때 아무도 당첨되지 않을 확률은 0.8의 10제곱 = 10.7%예요. 반면 비복원 방식으로 당첨 2장을 모두 뽑게 하면 아무도 안 걸릴 확률은 0이에요. 경품처럼 반드시 당첨자가 나와야 하면 비복원, 매번 독립적인 확률 게임이라면 복원이에요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">청소 당번 뽑기로 보는 실제 예시</h2>
<p>20명 중 5명을 청소 당번으로 뽑는 경우를 생각해 볼게요. 한 사람이 걸릴 확률은 5 ÷ 20 = 25%이고, 뽑는 순서와 상관없어요. 매주 새로 뽑는다면 두 주 연속 안 걸릴 확률은 0.75 × 0.75 = 56.25%예요. 두 주 모두 걸릴 확률은 0.25 × 0.25 = 6.25%이고요. 즉 20명 모임에서 한 달 4주를 매주 새로 뽑으면, 한 번도 안 걸릴 확률이 0.75의 4제곱으로 31.6%예요. 세 명 중 한 명쯤은 한 달 동안 한 번도 안 걸리고, 같은 사람이 계속 걸리는 일도 흔히 일어나요. 이것이 불공평하다고 느껴지면 앞선 주에 걸린 사람을 빼고 뽑는 방식(비복원)으로 규칙을 바꾸면 돼요.</p>
<h2 id="s6">사다리타기도 같은 원리일까</h2>
<p>사다리타기는 가로줄이 무작위로 놓이기만 하면 시작 위치와 상관없이 도착 칸이 전부 일대일로 연결돼요. 가로줄이 하나 있을 때마다 두 사람의 도착 칸이 서로 바뀌기 때문에 결과적으로 어떤 사람이든 어떤 칸에 갈 확률이 모든 칸이 같게 되는 구조예요. 가로줄을 사람이 일부러 고르지 않았다면 사다리의 어느 위치를 고르든 공평해요. 다만 가로줄을 적게 그리거나 한쪽에만 몰려 있으면 도착이 옆자리로 한정돼 균등하지 않을 수 있어요. 사다리를 그릴 때는 가로줄을 충분히 넣고 한 사람이 그리지 않도록 하세요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">자주 묻는 질문</h2>
<h3>제비뽑기는 마지막에 뽑는 사람이 손해인가요?</h3>
<p>확률로는 손해가 아니에요. 섞은 제비를 비밀로 한 채 뽑으면 마지막 사람도 처음 사람과 같은 확률이에요. 다만 결과를 열어서 공개하면 마지막 사람은 선택의 여지가 없다는 점이 달라요.</p>
<h3>앞사람이 당첨을 뽑으면 내 확률은 낮아지나요?</h3>
<p>앞사람이 당첨을 뽑았다는 것을 알면 당첨 제비가 줄어서 내 확률이 낮아져요. 10장 중 2장에서 앞사람이 하나 뽑았다면 내 확률은 1 ÷ 9 = 11.1%예요. 모르는 상태에서는 20%가 그대로예요.</p>
<h3>가위바위보로 순서를 정하는 것도 공평한가요?</h3>
<p>세 가지가 똑같이 낼 수 있다면 각 사람이 이길 확률이 같아서 공평해요. 몇 번 만에 결판이 나는지는 <a href="https://tool.smithlab.co.kr/calculator/rps-probability-calculator/">가위바위보 확률 계산기</a>에서 인원별로 확인할 수 있어요.</p>
<h3>인원이 많으면 같은 일이 반복될 확률이 높아지나요?</h3>
<p>네, 쌍의 수가 인원 제곱으로 늘어나기 때문이에요. 모임에서 생일이 같은 사람이 있을 확률이 23명에 50%가 넘는 것도 같은 이유예요. 자세한 계산은 <a href="https://tool.smithlab.co.kr/calculator/birthday-paradox-calculator/">생일 역설 계산기</a>에서 볼 수 있어요.</p>
<h3>당첨자 수가 다르면 순서의 공정성이 달라지나요?</h3>
<p>아니에요. 당첨이 1개든 5개든 당첨 수 ÷ 전체 수가 순서와 상관없이 모두에게 같은 확률이에요. 달라지는 건 확률의 크기뿐이에요.</p>
<h2 id="s8">정리</h2>
<ul><li>섞은 제비를 비밀로 하고 한 장씩 뽑으면 몇 번째든 당첨 확률은 당첨 수 ÷ 전체 수로 같아요. 10장 중 2장이면 모두 20%예요.</li><li>앞사람 결과를 아는 상태에서는 확률이 오르내리지만 평균하면 같아요. 순서가 불공평해지는 때는 정보를 이용해 순서를 바꾸거나 교환할 수 있을 때예요.</li><li>정해진 수의 당첨자를 뽑아야 하면 비복원(뽑은 제비 제외), 매번 독립적으로 뽑으면 복원이에요.</li><li>확률 계산은 <a href="https://tool.smithlab.co.kr/calculator/probability-calculator/">확률 계산기</a>, 경우의 수는 <a href="https://tool.smithlab.co.kr/calculator/combination-calculator/">조합 계산기</a>로 확인하고, 모임 인원이 많을 때의 의외의 확률은 <a href="https://tool.smithlab.co.kr/calculator/birthday-paradox-calculator/">생일 역설 계산기</a>로 볼 수 있어요.</li></ul>
<p>확률의 기본 개념은 <a href="https://en.wikipedia.org/wiki/Conditional_probability" target="_blank" rel="noopener">조건부 확률(Wikipedia)</a>에서도 같은 설명을 찾을 수 있어요.</p>
    ]]></description>
    </item>
    <item>
      <title>확률 1% 뽑기 100번이면 나올까? — 천장 있는 뽑기 확률과 평균…</title>
      <link>https://game.smithlab.co.kr/posts/games/gacha-pity-probability-100-pulls/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/gacha-pity-probability-100-pulls/</guid>
      <pubDate>Fri, 30 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>"확률이 1%면 100번 뽑으면 한 번은 나오겠지." 뽑기나 확률형 아이템, 경품 응모에서 가장 흔한 생각이에요. 결론부터 말하면 <strong>확률 1%를 100번 뽑아서 1개 이상 나올 확률은 63.4%</strong>예요. 열 번 중 서너 번은 100번을 다 뽑고도 빈손으로 끝난다는 뜻이에요. 평균이 100번이라는 말과 100번이면 나온다는 말은 다른 이야기예요.</p>
<p>이 글에서는 평균 횟수와 실제로 필요한 횟수가 왜 다른지, 직전에 안 나왔다고 다음에 잘 나오지는 않는 이유, 천장(일정 횟수째에 확정)이 있으면 평균이 얼마나 줄어드는지를 숫자로 풀어요. 직접 넣어 보려면 <a href="https://tool.smithlab.co.kr/calculator/gacha-pity-calculator/">뽑기 확률·천장 계산기</a>를 쓰면 되고, 일반적인 n번 중 k번 확률은 <a href="https://tool.smithlab.co.kr/calculator/probability-calculator/">확률 계산기</a>에서 구할 수 있어요. 모든 숫자는 정확한 분수 계산과 모의실험으로 따로 검산했어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>1회 확률이 p이고 천장이 없으면, n번 안에 1개 이상 나올 확률은 1 − (1 − p)^n 이에요. 1%는 69번에 50%, 230번에 90%, 459번에 99%예요.</li><li>평균 횟수(1 ÷ p)는 "중간쯤"이 아니에요. 1%의 평균 100번까지 한 번도 못 보는 사람이 36.6%예요.</li><li>직전 결과는 다음 확률을 바꾸지 않아요. 50번 연속 실패한 뒤에도 다음 확률은 그대로 1%예요.</li><li>천장이 있으면 평균이 크게 줄어요. 0.6%에 천장 90이면 평균은 166.7번에서 69.7번으로 내려가요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">1% 뽑기를 n번 뽑으면 나올 확률</h2>
<p>한 번 뽑을 때 안 나올 확률은 99%예요. 두 번 연속 안 나올 확률은 0.99 × 0.99, 100번 연속이면 0.99의 100제곱이에요. 이 값이 0.366(36.6%)이라서 "100번 안에 한 번이라도 나올 확률"은 1에서 빼 63.4%가 돼요. 같은 식으로 구한 횟수별 확률은 다음과 같아요.</p>
<div class="table-wrap"><table><thead><tr><th>뽑은 횟수</th><th>1개 이상 나올 확률</th><th>한 번도 안 나올 확률</th></tr></thead><tbody><tr><td>10번</td><td>9.6%</td><td>90.4%</td></tr><tr><td>30번</td><td>26.0%</td><td>74.0%</td></tr><tr><td>50번</td><td>39.5%</td><td>60.5%</td></tr><tr><td>69번</td><td>50.0%</td><td>50.0%</td></tr><tr><td>100번</td><td>63.4%</td><td>36.6%</td></tr><tr><td>150번</td><td>77.9%</td><td>22.1%</td></tr><tr><td>230번</td><td>90.1%</td><td>9.9%</td></tr><tr><td>300번</td><td>95.1%</td><td>4.9%</td></tr><tr><td>459번</td><td>99.0%</td><td>1.0%</td></tr></tbody></table></div>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/gacha-pity-probability-1.svg" alt="확률 1% 뽑기에서 횟수가 늘 때 1개 이상 나올 확률이 10번 9.6%, 69번 50%, 100번 63.4%, 230번 90%로 올라가는 모습과 평균 100번이어도 36.6%는 빈손이라는 설명 그림" width="800" height="330" loading="lazy" decoding="async"><figcaption>평균 100번이어도 100번 안에 나올 확률은 63.4%</figcaption></figure>
<figure class="viz viz-line"><figcaption class="viz-title">확률 1% 뽑기, 횟수별 1개 이상 나올 확률 (천장 없음)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="확률 1% 뽑기, 횟수별 1개 이상 나올 확률 (천장 없음)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">25</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">75</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">100</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">10번</text><text class="viz-ax" x="181.5" y="272" text-anchor="middle">50번</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">100번</text><text class="viz-ax" x="440.5" y="272" text-anchor="middle">230번</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">459번</text><polyline class="viz-line s1" points="52.0,231.3 116.8,192.6 181.5,160.8 246.2,136.0 311.0,104.4 375.8,70.2 440.5,41.4 505.2,29.6 570.0,20.4"/><circle class="viz-dot s1" cx="52.0" cy="231.3" r="4"><title>10번 · 1개 이상 나올 확률 9.6%</title></circle><circle class="viz-dot s1" cx="116.8" cy="192.6" r="4"><title>30번 · 1개 이상 나올 확률 26%</title></circle><circle class="viz-dot s1" cx="181.5" cy="160.8" r="4"><title>50번 · 1개 이상 나올 확률 39.5%</title></circle><circle class="viz-dot s1" cx="246.2" cy="136.0" r="4"><title>69번 · 1개 이상 나올 확률 50%</title></circle><circle class="viz-dot s1" cx="311.0" cy="104.4" r="4"><title>100번 · 1개 이상 나올 확률 63.4%</title></circle><circle class="viz-dot s1" cx="375.8" cy="70.2" r="4"><title>150번 · 1개 이상 나올 확률 77.9%</title></circle><circle class="viz-dot s1" cx="440.5" cy="41.4" r="4"><title>230번 · 1개 이상 나올 확률 90.1%</title></circle><circle class="viz-dot s1" cx="505.2" cy="29.6" r="4"><title>300번 · 1개 이상 나올 확률 95.1%</title></circle><circle class="viz-dot s1" cx="570.0" cy="20.4" r="4"><title>459번 · 1개 이상 나올 확률 99%</title></circle><text class="viz-val" x="578.0" y="24.4">99</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">평균(100번)에서 63%, 평균의 2.3배(230번)에서 90%예요. 곡선은 끝까지 100%에 닿지 않아요.</p><div class="viz-cap">단위: % · 자료: 1 − 0.99^n 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>1개 이상 나올 확률</th></tr></thead><tbody><tr><td>10번</td><td>9.6</td></tr><tr><td>30번</td><td>26</td></tr><tr><td>50번</td><td>39.5</td></tr><tr><td>69번</td><td>50</td></tr><tr><td>100번</td><td>63.4</td></tr><tr><td>150번</td><td>77.9</td></tr><tr><td>230번</td><td>90.1</td></tr><tr><td>300번</td><td>95.1</td></tr><tr><td>459번</td><td>99</td></tr></tbody></table></div></details></figure>
<p>주목할 점은 <strong>절반에 도달하는 횟수가 평균의 0.69배(69번)</strong>라는 거예요. 확률이 낮은 뽑기일수록 "평균쯤 뽑으면 되겠지"라고 예산을 세우면 열에 서넛은 모자라요. 그래서 계산기에서는 평균 횟수와 함께 50%, 90%, 99%를 넘기려면 몇 번이 필요한지를 따로 보여 줘요.</p>
<h2 id="s2">평균 횟수와 현실의 차이</h2>
<p>천장이 없는 뽑기에서 첫 당첨까지 걸리는 횟수의 평균은 1 ÷ p예요. 1%면 100번, 0.6%면 166.7번, 0.3%면 333.3번이에요. 평균을 못 믿을 것은 아니에요. 아주 많은 사람이 각자 뽑았을 때 그들의 평균 횟수가 100번에 가까워진다는 뜻이에요. 다만 개인 한 명에게는 운이 좋으면 1번에 끝나고 나쁘면 300번을 넘겨요.</p>
<div class="table-wrap"><table><thead><tr><th>1회 확률</th><th>평균(1 ÷ p)</th><th>50% 도달</th><th>90% 도달</th><th>99% 도달</th></tr></thead><tbody><tr><td>0.3%</td><td>333번</td><td>231번</td><td>767번</td><td>1,533번</td></tr><tr><td>0.6%</td><td>167번</td><td>116번</td><td>383번</td><td>766번</td></tr><tr><td>1%</td><td>100번</td><td>69번</td><td>230번</td><td>459번</td></tr><tr><td>3%</td><td>33번</td><td>23번</td><td>76번</td><td>152번</td></tr><tr><td>5%</td><td>20번</td><td>14번</td><td>45번</td><td>90번</td></tr></tbody></table></div>
<p>표에서 90% 도달 횟수는 평균의 약 2.3배, 99% 도달은 약 4.6배예요. 어떤 확률이든 이 배수는 거의 같아요. 예산을 짤 때는 평균이 아니라 "얼마나 확실하게 얻고 싶은가"에 따라 평균의 1배·2.3배·4.6배 중에서 정하는 게 편해요.</p>
<h2 id="s3">직전에 안 나왔으면 다음에는 잘 나올까</h2>
<p>"50번 연속 실패했으니 이제 나올 때가 됐다"는 느낌은 도박사의 오류라고 불리는 착각이에요. 뽑을 때마다 서로 독립이라서 연속 실패의 길이와 상관없이 다음 한 번의 확률은 여전히 1%예요. 이를 확인하려고 확률 1%의 뽑기를 2,000만 번 굴려서 "직전에 50번 이상 연속 실패했던 경우"만 모아 다음 한 번의 당첨 비율을 세어 봤어요. 약 1,210만 건에서 당첨 비율은 1.00%였어요.</p>
<p>그럼 왜 "곧 나올 것 같은 느낌"이 드는가 하면, 100번 연속 실패할 확률(36.6%) 자체는 낮아지고 있기 때문이에요. 이미 50번 실패한 사람이 "앞으로 50번 안에 나올 확률"은 처음부터 50번 뽑는 사람의 확률(39.5%)과 똑같아요. 쌓인 실패는 사라지지도, 보상으로 돌아오지도 않아요.</p>
<h2 id="s4">천장이 있으면 무엇이 달라지나</h2>
<p>천장은 일정 횟수 동안 당첨이 없으면 그 횟수째 뽑기를 확정으로 주는 장치예요. 이 경우 확률이 아무리 낮아도 최대 횟수가 정해져서 예산의 상한을 알 수 있다는 점이 가장 커요. 확률 0.6%, 천장 90회를 기준으로 천장이 없을 때와 비교해 볼게요.</p>
<div class="table-wrap"><table><thead><tr><th>뽑은 횟수</th><th>1개 이상 (천장 없음)</th><th>1개 이상 (천장 90회)</th></tr></thead><tbody><tr><td>10번</td><td>5.8%</td><td>5.8%</td></tr><tr><td>30번</td><td>16.5%</td><td>16.5%</td></tr><tr><td>50번</td><td>26.0%</td><td>26.0%</td></tr><tr><td>70번</td><td>34.4%</td><td>34.4%</td></tr><tr><td>89번</td><td>41.5%</td><td>41.5%</td></tr><tr><td>90번</td><td>41.8%</td><td>100%</td></tr><tr><td>116번</td><td>50.2%</td><td>100%</td></tr><tr><td>180번</td><td>66.2%</td><td>100%</td></tr></tbody></table></div>
<figure class="viz viz-bar"><figcaption class="viz-title">하나 얻기까지 평균 뽑기 횟수 (확률 0.6%)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="하나 얻기까지 평균 뽑기 횟수 (확률 0.6%)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">150</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">200</text><rect class="s1" x="69.3" y="57.3" width="80.6" height="196.7" rx="3"><title>천장 없음 · 평균 뽑기 횟수 167번</title></rect><text class="viz-val" x="109.6" y="52.3" text-anchor="middle">167</text><text class="viz-ax" x="109.6" y="272" text-anchor="middle">천장 없음</text><rect class="s1" x="184.5" y="123.8" width="80.6" height="130.2" rx="3"><title>천장 180 · 평균 뽑기 횟수 110번</title></rect><text class="viz-val" x="224.8" y="118.8" text-anchor="middle">110</text><text class="viz-ax" x="224.8" y="272" text-anchor="middle">천장 180</text><rect class="s1" x="299.7" y="152.9" width="80.6" height="101.1" rx="3"><title>천장 120 · 평균 뽑기 횟수 85.7번</title></rect><text class="viz-val" x="340.0" y="147.9" text-anchor="middle">85.7</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">천장 120</text><rect class="s1" x="414.9" y="171.8" width="80.6" height="82.2" rx="3"><title>천장 90 · 평균 뽑기 횟수 69.7번</title></rect><text class="viz-val" x="455.2" y="166.8" text-anchor="middle">69.7</text><text class="viz-ax" x="455.2" y="272" text-anchor="middle">천장 90</text><rect class="s1" x="530.1" y="194.4" width="80.6" height="59.6" rx="3"><title>천장 60 · 평균 뽑기 횟수 50.5번</title></rect><text class="viz-val" x="570.4" y="189.4" text-anchor="middle">50.5</text><text class="viz-ax" x="570.4" y="272" text-anchor="middle">천장 60</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">천장이 짧을수록 평균은 내려가지만, 어느 쪽이든 천장 직전까지는 확률이 같아요.</p><div class="viz-cap">단위: 번 · 자료: (1 − (1 − p)^N) ÷ p 직접 계산, p = 0.006</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>평균 뽑기 횟수</th></tr></thead><tbody><tr><td>천장 없음</td><td>167</td></tr><tr><td>천장 180</td><td>110</td></tr><tr><td>천장 120</td><td>85.7</td></tr><tr><td>천장 90</td><td>69.7</td></tr><tr><td>천장 60</td><td>50.5</td></tr></tbody></table></div></details></figure>
<p>두 열을 비교하면 천장 직전인 89번째까지는 완전히 같아요. 천장은 <strong>89번 동안 계속 안 나오는 운 나쁜 구간을 잘라 주는 장치</strong>지, 앞쪽 구간의 확률을 올려 주지는 않아요. 그래서 평균은 166.7번에서 69.7번으로 줄지만, 30번이나 50번쯤 뽑았을 때 나올 확률은 천장이 있든 없든 그대로예요. 천장이 90이라고 해서 "50번쯤이면 반쯤 보장된 느낌"으로 계획하면 맞지 않아요. 50번 시점의 확률은 여전히 26.0%예요.</p>
<p>또 하나, 천장 카운트가 당첨 뒤 0으로 돌아간다면 두 번째 당첨을 얻는 데도 같은 구조가 반복돼요. 180번을 뽑을 때 기대되는 당첨 개수는 약 2.31개예요(180 ÷ 69.7 = 2.58이 아닌 이유는 180번째에 진행 중이던 마지막 구간을 세지 않기 때문이에요).</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">원하는 게 2개라면</h2>
<p>"하나만 나오면 된다"가 아니라 "2개가 필요하다"면 필요한 횟수는 거의 두 배로 늘어요. 1% 뽑기를 100번 뽑아 2개 이상 얻을 확률은 26.4%, 3개 이상은 7.9%예요. 2개 이상을 90%의 확률로 얻으려면 천장이 없을 때 388번이 필요해요. 1개 이상 90%가 230번이니까 1.7배예요. 목표 개수가 늘수록 평균 횟수는 개수에 비례해서 늘고, 안전하게 가려면 그보다 조금 더 필요해요.</p>
<h2 id="s6">예산으로 바꿔 보기</h2>
<p>1회 뽑기에 1,600원이 든다고 가정하고 계산해 볼게요. 숫자는 설명을 위한 예시 가격이고, 실제 가격은 서비스마다 달라요.</p>
<div class="table-wrap"><table><thead><tr><th>상황(1회 1,600원 가정)</th><th>횟수</th><th>비용</th></tr></thead><tbody><tr><td>확률 1%, 평균</td><td>100번</td><td>160,000원</td></tr><tr><td>확률 1%, 50% 도달</td><td>69번</td><td>110,400원</td></tr><tr><td>확률 1%, 90% 도달</td><td>230번</td><td>368,000원</td></tr><tr><td>확률 0.6%, 천장 90, 평균</td><td>69.7번</td><td>약 111,500원</td></tr><tr><td>확률 0.6%, 천장 90, 최악</td><td>90번</td><td>144,000원</td></tr><tr><td>확률 0.6%, 천장 없음, 90% 도달</td><td>383번</td><td>612,800원</td></tr></tbody></table></div>
<p>이렇게 보면 "평균 비용만 내면 된다"는 가정이 위험하다는 게 보여요. 확률 1% 뽑기에서 평균 비용인 160,000원을 예산으로 잡은 사람 중 36.6%는 목표를 못 얻어요. 천장이 있는 뽑기는 최악의 비용이 정해져 있어서 상한을 미리 계산해 둘 수 있고요. 예산을 정할 때는 "얻고 싶은 확실성"(50%인지 90%인지)과 "더 쓰지 않을 상한"을 먼저 정한 다음 계산기에서 맞춰 보세요. 상한에 닿기 전에 멈추는 규칙도 미리 정해 두는 편이 좋아요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">자주 묻는 질문</h2>
<h3>확률 1%인데 100번 뽑아도 안 나올 수 있나요?</h3>
<p>네, 천장이 없다면 100번 뽑고도 한 번도 못 보는 확률이 36.6%예요. 평균 100번이라는 말은 100번 안에 반드시 나온다는 뜻이 아니에요. 100번 안에 나올 확률은 63.4%이고, 90%가 되려면 230번이 필요해요.</p>
<h3>10연차를 10번 하는 것과 100번을 한 번에 하는 것은 확률이 다른가요?</h3>
<p>같아요. 각 뽑기가 독립이라서 묶음 단위는 의미가 없고 총 횟수만 중요해요. 10연차를 10번이든 하나씩 100번이든 1개 이상 나올 확률은 63.4%예요. 다만 서비스가 10연차에만 보장(최소 등급 확정 등)을 둔다면 그 보장은 별도로 따져야 해요.</p>
<h3>천장이 있으면 앞쪽 확률도 올라가나요?</h3>
<p>아니에요. 천장은 확정되는 횟수째에서만 작동하고 그 전까지의 확률은 그대로예요. 0.6%에 천장 90이면 89번째까지는 천장이 없는 경우와 같고, 90번째에 100%가 돼요. 그래서 평균 횟수와 최대 횟수가 줄어드는 효과를 얻어요.</p>
<h3>천장 카운트를 이어받으면 어떻게 계산하나요?</h3>
<p>이미 쌓인 횟수를 뺀 남은 횟수를 천장 칸에 넣으면 지금부터의 확률이 나와요. 예를 들어 천장 90에서 60번을 쌓았다면 남은 30번을 천장으로 넣어요. 쌓인 횟수가 있어도 앞쪽 확률은 변하지 않는다는 점만 기억하세요.</p>
<h3>확률이 구간별로 올라가는 방식도 계산할 수 있나요?</h3>
<p>이 글과 계산기는 확률이 일정한 단순 방식만 다뤄요. 일정 횟수 이후부터 확률이 단계적으로 올라가는 방식은 서비스가 공개한 구간별 확률을 하나씩 곱해서 계산해야 해요. 그런 경우 일정 확률로 계산한 값은 실제보다 낮게 나오는 쪽이에요.</p>
<h3>계산이 맞는지 어떻게 확인했나요?</h3>
<p>정확한 분수 계산과 자바스크립트 계산, 그리고 20만 번 모의실험을 서로 비교해서 일치하는 것을 확인했어요. 직전 실패가 다음 확률에 영향이 없다는 것도 2,000만 번 모의실험으로 확인했어요. 다만 서비스의 실제 확률 설정이 표시와 같다는 전제가 필요해요.</p>
<h2 id="s8">정리</h2>
<ul><li>확률 p의 뽑기를 n번 뽑아 1개 이상 나올 확률은 1 − (1 − p)^n 이에요. 1%는 100번에 63.4%, 230번에 90.1%예요.</li><li>평균 횟수(1 ÷ p)는 안전선이 아니에요. 50%는 평균의 0.69배, 90%는 약 2.3배, 99%는 약 4.6배 지점이에요.</li><li>직전 실패는 다음 확률에 영향이 없어요. 천장이 있어도 천장 직전까지의 확률은 그대로이고, 최대 횟수와 평균만 줄어요.</li><li>예산은 평균이 아니라 "원하는 확실성"에 맞춰 잡고, 상한을 먼저 정해 두세요.</li><li>직접 넣어 계산하려면 <a href="https://tool.smithlab.co.kr/calculator/gacha-pity-calculator/">뽑기 확률·천장 계산기</a>, 다른 확률은 <a href="https://tool.smithlab.co.kr/calculator/probability-calculator/">확률 계산기</a>, 모임에서 의외로 자주 겹치는 확률은 <a href="https://tool.smithlab.co.kr/calculator/birthday-paradox-calculator/">생일 역설 계산기</a>, 가위바위보 결판 확률은 <a href="https://tool.smithlab.co.kr/calculator/rps-probability-calculator/">가위바위보 확률 계산기</a>에서 볼 수 있어요.</li></ul>
<p>시행 횟수와 첫 성공의 분포는 <a href="https://en.wikipedia.org/wiki/Geometric_distribution" target="_blank" rel="noopener">기하분포(Wikipedia)</a>, 직전 결과가 다음 확률을 바꾸지 않는다는 점은 <a href="https://en.wikipedia.org/wiki/Gambler%27s_fallacy" target="_blank" rel="noopener">도박사의 오류(Wikipedia)</a>에서도 같은 설명을 볼 수 있어요.</p>
    ]]></description>
    </item>
    <item>
      <title>토너먼트 대진표 시드 배정 — 강팀을 어디에 놓으면 우승 확률이 얼마나…</title>
      <link>https://game.smithlab.co.kr/posts/games/tournament-seeding-win-probability-bracket/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/tournament-seeding-win-probability-bracket/</guid>
      <pubDate>Fri, 30 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>체육대회나 동호회 대회, 송년회 게임 대진표를 짜다 보면 꼭 나오는 질문이 있어요. "잘하는 팀 둘은 따로 떨어뜨려야 하지 않아?" 결론부터 말하면 <strong>맞아요. 강팀 둘을 서로 멀리 떨어뜨릴수록 두 팀 모두 우승 확률이 올라가요.</strong> 8팀 대진표에서 실력이 같은 1700점 강팀 둘을 첫 경기에서 붙이면 둘의 우승 확률 합이 57.7%지만, 양 끝에 놓아 결승에서 만나게 하면 70.4%가 돼요.</p>
<p>그런데 더 놀라운 건 따로 있어요. 대진을 아무리 잘 짜도 <strong>가장 강한 팀이 우승하는 건 생각보다 드물어요.</strong> 다른 팀보다 100점 앞선 팀이 8팀 토너먼트에서 우승할 확률은 26.2%밖에 안 돼요. 이 글에서는 점수 차이가 한 경기 승률로 바뀌는 방법, 라운드를 거듭할수록 확률이 곱해져 줄어드는 과정, 시드 배정이 확률을 바꾸는 크기를 직접 계산한 숫자로 보여 드릴게요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>점수가 100점 앞서면 한 경기 승률은 64.0%이고, 8강·4강·결승을 모두 이겨야 우승하니 0.64를 세 번 곱한 26.2%가 우승 확률이에요.</li><li>같은 실력 8팀이면 팀마다 12.5%, 16팀이면 6.25%예요. 팀이 많을수록 우승은 한 팀에 몰리지 않아요.</li><li>강팀 둘을 같은 묶음에 두면 서로 먼저 만나 탈락 위험이 커져요. 결승에서 만나도록 양 끝에 놓으면 두 팀의 우승 확률 합이 가장 높아요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">점수 차이가 한 경기 승률로 바뀌는 방법</h2>
<p>팀 실력을 숫자로 나타내는 방법 중 하나가 체스 레이팅에서 온 Elo 방식이에요. 두 팀 점수가 Ra, Rb이면 A팀이 이길 확률은 1 ÷ (1 + 10^((Rb − Ra) ÷ 400))으로 계산해요. 점수가 같으면 50%이고 점수 차이가 클수록 한쪽으로 기울어요. 이 식은 어떤 대회의 "진짜 승률"을 알려 주는 게 아니라, 실력 차이를 대략 가늠하기 위한 모형이에요. 그래도 대진표의 구조가 우승 확률에 어떤 영향을 주는지 비교하는 데는 충분해요.</p>
<div class="table-wrap"><table><thead><tr><th>점수 차이</th><th>앞선 팀 승률</th><th>뒤진 팀 승률</th></tr></thead><tbody><tr><td>0점</td><td>50.0%</td><td>50.0%</td></tr><tr><td>50점</td><td>57.1%</td><td>42.9%</td></tr><tr><td>100점</td><td>64.0%</td><td>36.0%</td></tr><tr><td>200점</td><td>76.0%</td><td>24.0%</td></tr><tr><td>300점</td><td>84.9%</td><td>15.1%</td></tr><tr><td>400점</td><td>90.9%</td><td>9.1%</td></tr></tbody></table></div>
<p>100점 차이는 열 번 붙으면 여섯 번 남짓 이기는 정도예요. 같은 학교 안에서 학년 대표끼리 붙일 때처럼 "조금 더 잘하는 팀" 정도의 차이라고 생각하면 돼요. 200점 차이면 네 번 중 세 번 정도 이겨요.</p>
<h2 id="s2">라운드를 거칠수록 확률이 곱해져서 줄어들어요</h2>
<p>단판 토너먼트에서 우승하려면 모든 라운드에서 이겨야 해요. 8팀이면 8강, 4강, 결승 세 번이고 상대가 1500점이라고 하면 각 경기 승률은 점수 차이로 정해져요. 8팀 중 한 팀만 앞서고 나머지가 모두 1500점일 때, 앞선 팀이 각 라운드를 통과할 확률을 계산한 결과예요.</p>
<div class="table-wrap"><table><thead><tr><th>앞선 점수</th><th>8강 통과</th><th>4강 통과</th><th>우승(결승 통과)</th></tr></thead><tbody><tr><td>+50점</td><td>57.1%</td><td>32.7%</td><td>18.7%</td></tr><tr><td>+100점</td><td>64.0%</td><td>41.0%</td><td>26.2%</td></tr><tr><td>+200점</td><td>76.0%</td><td>57.7%</td><td>43.9%</td></tr><tr><td>+300점</td><td>84.9%</td><td>72.1%</td><td>61.2%</td></tr></tbody></table></div>
<p>+100점 팀의 우승 확률 26.2%는 0.64를 세 번 곱한 값이에요(0.64 × 0.64 × 0.64 = 0.262). 첫 경기는 64%로 이기는데 우승은 4번 중 1번 정도라는 뜻이에요. 반대로 같은 실력의 나머지 7팀이 합쳐서 73.8%를 가져가요. "가장 잘하는 팀이 우승한다"는 건 가장 가능성이 높은 한 가지일 뿐 일반적인 결과는 아니에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">8팀 토너먼트, 한 팀만 점수가 앞설 때 우승 확률</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="8팀 토너먼트, 한 팀만 점수가 앞설 때 우승 확률" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">60</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">80</text><rect class="s1" x="73.6" y="198.8" width="100.8" height="55.2" rx="3"><title>+50점 · 우승 확률 18.7%</title></rect><text class="viz-val" x="124.0" y="193.8" text-anchor="middle">18.7</text><text class="viz-ax" x="124.0" y="272" text-anchor="middle">+50점</text><rect class="s1" x="217.6" y="176.7" width="100.8" height="77.3" rx="3"><title>+100점 · 우승 확률 26.2%</title></rect><text class="viz-val" x="268.0" y="171.7" text-anchor="middle">26.2</text><text class="viz-ax" x="268.0" y="272" text-anchor="middle">+100점</text><rect class="s1" x="361.6" y="124.5" width="100.8" height="129.5" rx="3"><title>+200점 · 우승 확률 43.9%</title></rect><text class="viz-val" x="412.0" y="119.5" text-anchor="middle">43.9</text><text class="viz-ax" x="412.0" y="272" text-anchor="middle">+200점</text><rect class="s1" x="505.6" y="73.5" width="100.8" height="180.5" rx="3"><title>+300점 · 우승 확률 61.2%</title></rect><text class="viz-val" x="556.0" y="68.5" text-anchor="middle">61.2</text><text class="viz-ax" x="556.0" y="272" text-anchor="middle">+300점</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">같은 실력이면 12.5%예요. 300점이나 앞서도 우승은 61.2%예요.</p><div class="viz-cap">단위: % · 자료: Elo 방식 승률로 직접 계산 (나머지 7팀은 1500점)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>우승 확률</th></tr></thead><tbody><tr><td>+50점</td><td>18.7</td></tr><tr><td>+100점</td><td>26.2</td></tr><tr><td>+200점</td><td>43.9</td></tr><tr><td>+300점</td><td>61.2</td></tr></tbody></table></div></details></figure>
<h2 id="s3">팀 수가 많을수록 한 팀에 몰리지 않아요</h2>
<p>같은 100점 우위라도 팀 수가 늘면 연속으로 이겨야 하는 경기가 늘어요. 4팀은 두 번, 8팀은 세 번, 16팀은 네 번이에요. 계산해 보면 다음과 같아요.</p>
<div class="table-wrap"><table><thead><tr><th>팀 수</th><th>이겨야 하는 경기</th><th>100점 앞선 팀 우승</th><th>모두 같은 실력일 때</th></tr></thead><tbody><tr><td>4팀</td><td>2번</td><td>41.0%</td><td>25.0%</td></tr><tr><td>8팀</td><td>3번</td><td>26.2%</td><td>12.5%</td></tr><tr><td>16팀</td><td>4번</td><td>16.8%</td><td>6.25%</td></tr></tbody></table></div>
<p>16팀에서 100점 앞선 팀은 같은 실력일 때보다 약 2.7배(16.8 ÷ 6.25) 우승하기 쉽지만, 절대 확률로는 6번 중 1번이 안 돼요. 대회 규모가 커질수록 예상 밖의 팀이 우승하는 일이 더 흔해지는 이유예요.</p>
<h2 id="s4">강팀 둘을 어디에 놓을까: 직접 계산한 시드 배정 효과</h2>
<p>8팀 대진표에서 1700점 강팀 두 팀과 1500점 팀 여섯 팀이 있다고 해 볼게요. 강팀 두 팀을 세 가지 자리에 놓았을 때, 두 팀의 우승 확률을 계산했어요. 강팀끼리는 같은 점수라서 두 팀의 확률은 서로 같아요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/tournament-seeding-win-probability-bracket-1.svg" alt="8팀 대진표에서 강팀 두 팀을 첫 경기, 4강, 결승에서 만나도록 배치한 세 가지 경우와 두 팀 우승 확률 합계를 비교한 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>강팀 둘의 위치에 따른 우승 확률 합 비교</figcaption></figure>
<div class="table-wrap"><table><thead><tr><th>배치</th><th>강팀 한 팀 우승</th><th>한 팀 결승 진출</th><th>두 팀 우승 합</th><th>나머지 6팀 합</th></tr></thead><tbody><tr><td>1·2번 자리 (첫 경기에서 만남)</td><td>28.9%</td><td>38.0%</td><td>57.7%</td><td>42.3%</td></tr><tr><td>1·3번 자리 (4강에서 만남)</td><td>32.5%</td><td>42.7%</td><td>64.9%</td><td>35.1%</td></tr><tr><td>1·8번 자리 (결승에서 만남)</td><td>35.2%</td><td>57.7%</td><td>70.4%</td><td>29.6%</td></tr></tbody></table></div>
<p>양 끝에 놓으면 강팀이 결승 전에 서로 만나지 않으니, 결승 진출 확률이 38.0%에서 57.7%로 크게 올라요. 두 팀이 결승에서 만나는 경우에는 둘 중 한 팀은 반드시 우승하니까 두 팀의 합계가 가장 높아져요. 반대로 첫 경기에서 서로 만나면 한 팀은 바로 떨어지고, 살아남은 팀도 남은 두 경기를 이겨야 해요.</p>
<p>시드 배정은 <strong>강팀이 둘 이상일 때</strong> 의미가 있어요. 모든 팀이 같은 실력이면 어디에 놓아도 확률은 똑같고, 강팀이 한 팀뿐이면 그 팀이 어느 자리에 있어도 만나는 상대는 모두 같은 점수라서 우승 확률이 같아요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">상황별로 대진표 짜는 법</h2>
<ul><li><strong>실력 차이가 비슷한 사내·동호회 대회</strong>: 시드는 사실상 영향이 작아요. 추첨으로 정해도 공정하고, 조작 논란도 줄어요.</li><li><strong>작년 우승·준우승 팀이 있는 대회</strong>: 두 팀을 대진표 양 끝에 놓으면 결승에서 만나는 구도가 가능해져 대회가 흥행하기 쉬워요. 다만 강팀이 일찍 만나 탈락하는 일을 막는다는 건 약팀의 우승 기회를 조금 줄인다는 뜻이기도 해요.</li><li><strong>팀 수가 4·8·16이 아닐 때</strong>: 일부 팀이 첫 경기를 건너뛰는 부전승이 생겨요. 부전승은 보통 상위 시드에게 주는데, 이 경우 상위 시드의 우승 확률은 올라가요. 이 글의 계산은 부전승이 없는 대진표만 다뤄요.</li><li><strong>한 경기로 끝내기 불안할 때</strong>: 3판 2선승제로 바꾸면 같은 점수 차이에서 강팀이 이길 확률이 올라가요. 100점 차 한 경기 승률 64%는 3판 2선승제에서 약 70.5%가 돼요. 시리즈 승률은 별도 계산기로 확인하세요.</li></ul>
<h2 id="s6">계산기로 직접 해 보기</h2>
<p>위 표의 숫자는 <a href="https://tool.smithlab.co.kr/calculator/tournament-win-probability-calculator/">토너먼트 우승 확률 계산기</a>로 바로 확인할 수 있어요. 팀 이름과 점수를 한 줄씩 넣으면 우승 확률과 결승 진출 확률이 나오고, 줄 순서를 바꾸면 시드 배정 효과가 보여요. "한 번 치러 보기"를 누르면 같은 점수로 대회를 실제로 굴려 볼 수 있고, 1,000번 치러 보기를 누르면 계산값에 가까운 비율이 나오는 것도 확인할 수 있어요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">자주 묻는 질문</h2>
<h3>가장 강한 팀이 우승하는 게 보통 아닌가요?</h3>
<p>확률이 가장 높은 건 맞지만 보통은 아니에요. 100점 앞선 팀의 8팀 토너먼트 우승 확률은 26.2%, 16팀이면 16.8%예요. 실력이 확실히 앞서려면 300점쯤 차이가 나야 8팀에서 61.2%가 돼요.</p>
<h3>시드 배정을 하면 약팀이 불리해지나요?</h3>
<p>강팀이 일찍 만나 탈락하는 일이 줄기 때문에 약팀이 이기는 경우의 수는 조금 줄어요. 8팀 예시에서 약팀 여섯의 우승 확률 합은 첫 경기에서 강팀끼리 만나면 42.3%, 결승에서 만나면 29.6%예요. 대회 목적이 흥행인지 공정한 추첨인지에 따라 선택하면 돼요.</p>
<h3>점수는 어떻게 정하나요?</h3>
<p>지난 대회 성적이나 순위를 바탕으로 상대적인 차이로 정해요. 비슷하면 모두 1500점, 눈에 띄게 강하면 +50~100점, 약하면 −50~100점쯤으로 시작해 보세요. 점수 자체는 추정이라서 실제 승률과 다를 수 있어요.</p>
<h3>팀이 6팀이나 10팀이면 어떻게 계산하나요?</h3>
<p>부전승이 생기는 대진표라서 4·8·16팀과 다르게 계산해야 해요. 계산기는 4·8·16팀만 지원해요. 가장 가까운 팀 수로 맞추거나, 경기별 승률을 직접 곱해서 구해야 해요.</p>
<h3>3판 2선승제로 하면 얼마나 달라지나요?</h3>
<p>한 경기 승률이 p이면 3판 2선승제 시리즈 승률은 p² × (3 − 2p)예요. p = 0.64이면 0.4096 × 1.72 ≈ 0.705로 약 70.5%예요. 한 경기 64%가 70%대로 올라가는 만큼 이변이 줄어요.</p>
<h2 id="s8">정리</h2>
<ul><li>우승하려면 모든 라운드를 이겨야 해서, 한 경기 승률이 높아도 곱하면 확 줄어요. 100점 앞선 팀의 8팀 우승 확률은 26.2%예요.</li><li>팀 수가 많을수록 한 팀에 몰리지 않아요. 같은 실력이면 8팀 12.5%, 16팀 6.25%예요.</li><li>강팀이 둘 이상이면 서로 멀리 떨어뜨릴수록 두 팀의 우승 확률 합이 올라가요. 8팀 예시에서 57.7%→64.9%→70.4%였어요.</li><li>직접 계산해 보려면 <a href="https://tool.smithlab.co.kr/calculator/tournament-win-probability-calculator/">토너먼트 우승 확률 계산기</a>를, 시리즈 승부는 <a href="https://tool.smithlab.co.kr/calculator/series-win-probability-calculator/">시리즈 승리 확률 계산기</a>를, 일반 확률은 <a href="https://tool.smithlab.co.kr/calculator/probability-calculator/">확률 계산기</a>를 이용하세요.</li><li>참고 자료: <a href="https://en.wikipedia.org/wiki/Elo_rating_system" target="_blank" rel="noopener">Elo rating system (Wikipedia)</a>, <a href="https://en.wikipedia.org/wiki/Single-elimination_tournament" target="_blank" rel="noopener">Single-elimination tournament (Wikipedia)</a></li></ul>
    ]]></description>
    </item>
    <item>
      <title>15퍼즐 푸는 법, 줄 단위 공식과 안 풀리는 배치 판별법</title>
      <link>https://game.smithlab.co.kr/posts/games/15-puzzle-solving-method/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/15-puzzle-solving-method/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>15퍼즐(슬라이딩 퍼즐)을 처음 잡으면 1·2·3까지는 금방 맞추는데, 4를 넣으려는 순간 3이 빠져나가고 아래 줄은 아예 손을 못 대는 경우가 많아요. 결론부터 말하면 <strong>15퍼즐은 윗줄부터 한 줄씩 끝내고, 끝난 줄은 다시 건드리지 않으며, 줄 끝의 두 칸(3·4)은 "세워 두었다가 한 번에 돌려 넣고", 마지막 두 줄은 세로 짝(9·13, 10·14)으로 맞추면 누구나 풀 수 있어요.</strong> 외울 공식은 사실상 이 하나예요.</p>
<p>이 글에서는 줄 단위 풀이 순서, 줄 끝 두 칸을 넣는 요령, 마지막 2×4 영역 처리법을 단계별로 설명하고, 무작위로 섞은 배치의 정확히 절반이 왜 절대 풀리지 않는지 역전 수(inversion)로 직접 계산해 볼게요. 3×3·4×4·5×5가 얼마나 다른지, 컴퓨터가 찾은 최단 이동 수가 몇인지도 확실한 숫자만 골라 정리했어요. <a href="https://game.smithlab.co.kr/games/sliding-puzzle/">슬라이딩 퍼즐 게임</a>을 옆에 켜 두고 따라 하면 바로 체감돼요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>풀이 순서는 첫 줄(1~4) → 둘째 줄(5~8) → 세로 짝 9·13 → 10·14 → 마지막 2×2(11·12·15) 회전이에요.</li><li>줄 끝의 두 칸은 하나씩 넣으면 서로 밀어내요. 4를 3 자리에, 3을 그 바로 아래에 세워 두고 빈칸을 돌려 한 번에 넣어요.</li><li>4×4에서는 "역전 수 + 빈칸이 아래에서 몇 번째 줄인지"가 홀수여야 풀려요. 타일을 아무렇게나 섞으면 정확히 절반이 안 풀리는 배치예요.</li><li>최단 이동 수의 최댓값은 8퍼즐 31번, 15퍼즐 80번(타일 한 칸 이동 기준)이에요. 사람 공식은 최단보다 몇 배 많이 움직이지만 확실하게 풀려요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">15퍼즐 규칙과 이 게임의 기본 조작</h2>
<p>15퍼즐은 4×4 판에 1부터 15까지 타일 15개와 빈칸 하나가 있고, 빈칸 옆 타일을 밀어 1, 2, 3, …, 15 순서(빈칸은 오른쪽 아래)로 맞추는 퍼즐이에요. 3×3은 8퍼즐, 5×5는 24퍼즐이라고 불러요.</p>
<p><a href="https://game.smithlab.co.kr/games/sliding-puzzle/">슬라이딩 퍼즐 게임</a>은 3×3·4×4·5×5를 고를 수 있고, 조작은 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>조작</th><th>동작</th></tr></thead><tbody><tr><td>타일 클릭·탭</td><td>빈칸과 같은 줄(가로·세로)이면 그 타일까지 한꺼번에 밀어요</td></tr><tr><td>스와이프</td><td>빈칸 옆 타일을 그 방향으로 한 칸 밀어요</td></tr><tr><td>방향키</td><td>타일이 움직이는 방향 기준 (←면 빈칸 오른쪽 타일이 왼쪽으로)</td></tr></tbody></table></div>
<p>이동 수는 <strong>움직인 타일 개수</strong>로 세요. 한 번 클릭으로 타일 3개를 밀면 3번 이동이에요. 퍼즐 이론에서 쓰는 "타일 한 칸 이동" 기준과 같아서, 아래에 나오는 최단 이동 수와 그대로 비교할 수 있어요. 시간은 첫 이동부터 재고, 다른 탭에 가 있는 동안은 멈춰요. 제자리에 들어간 타일은 색이 바뀌고 "맞은 칸" 개수도 보여 줘서 진행 상황을 확인하기 좋아요.</p>
<p>섞을 때는 무작위로 섞은 뒤 풀 수 없는 배치면 빈칸이 아닌 타일 두 개를 맞바꿔 풀 수 있게 고쳐요. 그래서 <strong>이 게임에서 나오는 배치는 항상 풀려요.</strong> 왜 두 개를 바꾸면 고쳐지는지는 뒤의 홀짝 설명에서 나와요.</p>
<h2 id="s2">15퍼즐 푸는 순서: 윗줄부터 한 줄씩</h2>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/15-puzzle-solving-method-1.svg" alt="4×4 15퍼즐을 첫 줄 1~4, 둘째 줄 5~8, 세로 짝 9·13과 10·14, 마지막 2×2 회전 순서로 푸는 네 단계를 판 그림으로 보여 주는 흐름도" width="800" height="450" loading="lazy" decoding="async"><figcaption>15퍼즐 줄 단위 풀이 순서</figcaption></figure>
<p>핵심 원칙은 하나예요. <strong>끝낸 줄은 다시 건드리지 않는다.</strong> 그러면 퍼즐이 점점 작아져요. 4×4에서 위 두 줄을 끝내면 남는 건 2×4 영역뿐이고, 5×5에서는 첫 줄과 첫째 열을 끝내면 4×4가 남아요.</p>
<h3>1단계: 1과 2는 그냥 옮겨 넣기</h3>
<p>1을 왼쪽 위로 옮기는 건 어렵지 않아요. 요령은 <strong>타일을 움직이는 게 아니라 빈칸을 움직인다고 생각하는 것</strong>이에요. 타일을 한 칸 왼쪽으로 옮기고 싶으면 먼저 빈칸을 그 타일의 왼쪽으로 데려온 뒤 타일을 밀어요. 타일을 여러 칸 옮길 때는 빈칸이 타일 주위를 시계 방향이나 반시계 방향으로 돌면서 한 칸씩 끌고 간다고 보면 돼요.</p>
<p>2도 같은 방법으로 1 오른쪽에 넣어요. 이때 빈칸이 이미 맞춘 1을 지나가지 않게, 빈칸은 항상 아래쪽으로 돌아서 움직여요.</p>
<h3>2단계: 3과 4는 "세워 두고" 한 번에 넣기</h3>
<p>여기서 대부분 막혀요. 3을 넣고 4를 넣으려 하면 4 자리로 가는 길이 3 자리를 지나가야 해서 3이 빠져요. 해결책은 이래요.</p>
<ol><li><strong>4를 3의 자리(첫 줄 셋째 칸)에 먼저 넣어요.</strong></li><li><strong>3을 4 바로 아래(둘째 줄 셋째 칸)에 넣어요.</strong> 이때 4가 흐트러지지 않게 빈칸은 아래쪽으로 돌려요.</li><li><strong>빈칸을 4의 목표 자리(첫 줄 넷째 칸)로 데려와요.</strong> 빈칸을 둘째 줄 넷째 칸으로 가져온 다음 위로 올리면 돼요.</li><li>4를 오른쪽으로, 3을 위로 밀면 3과 4가 동시에 제자리에 들어가요.</li></ol>
<p>만약 4가 이미 첫 줄 셋째 칸, 3이 넷째 칸처럼 뒤집혀 들어가 있으면 이 방법이 안 통해요. 그때는 둘 중 하나를 아래 영역으로 빼낸 뒤 1번부터 다시 하는 게 가장 빨라요. 처음엔 손해 같아도 결국 이게 지름길이에요.</p>
<h3>3단계: 둘째 줄도 똑같이</h3>
<p>5와 6은 그냥 넣고, 7과 8은 3·4와 같은 방법으로 "8을 7 자리에, 7을 그 아래에" 세운 뒤 돌려 넣어요. 이제 위 두 줄은 끝났고, 이후로는 절대 위 두 줄에 빈칸을 올리지 않아요.</p>
<h2 id="s3">마지막 두 줄 푸는 법: 세로 짝으로 맞추기</h2>
<p>남은 2×4 영역(9~15와 빈칸)은 가로줄로 풀 수가 없어요. 아래 두 줄밖에 없어서 줄 끝 두 칸을 세울 공간이 없거든요. 그래서 이번에는 <strong>방향을 90도 돌려 왼쪽 세로줄부터</strong> 풀어요.</p>
<ol><li><strong>9와 13을 짝으로 넣어요.</strong> 원리는 3·4와 같아요. 13을 9의 자리(셋째 줄 첫째 칸)에, 9를 13의 오른쪽(셋째 줄 둘째 칸)에 나란히 세운 뒤, 빈칸을 13의 목표 자리(넷째 줄 첫째 칸)로 데려와 13을 아래로, 9를 왼쪽으로 밀어요.</li><li><strong>10과 14도 같은 방법</strong>으로 넣어요. 이제 남은 건 오른쪽 아래 2×2 칸(11, 12, 15, 빈칸)뿐이에요.</li><li><strong>2×2 칸은 빈칸을 한 방향으로 돌리기만 하면 돼요.</strong> 세 타일이 원을 그리며 돌다가 정답 배치가 나오는 순간 멈추면 끝이에요.</li></ol>
<p>여기서 2×2를 아무리 돌려도 11·12·15가 안 맞는다면, 그건 배치 자체가 풀 수 없는 경우예요(직접 타일을 빼서 섞은 실물 퍼즐에서 생겨요). 이 게임에서는 그런 배치가 나오지 않아요.</p>
<h2 id="s4">15퍼즐 절반이 안 풀리는 이유: 역전 수와 홀짝</h2>
<p>실물 15퍼즐에서 타일을 빼서 아무렇게나 다시 끼우면 <strong>정확히 절반의 확률로 영원히 풀리지 않는 배치</strong>가 돼요. 유명한 예가 14와 15만 서로 바뀐 배치예요. 15퍼즐은 1880년 무렵 미국에서 크게 유행했는데, 이 "14·15 문제"가 풀 수 없다는 사실은 그 무렵 수학 논문으로 이미 증명됐어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/15-puzzle-solving-method-2.svg" alt="4×4 퍼즐 두 개를 비교한 그림. 왼쪽은 역전 18개에 빈칸이 맨 아랫줄이라 합이 19 홀수로 풀리는 배치, 오른쪽은 14와 15만 바뀌어 역전 1개, 합 2 짝수로 풀리지 않는 배치" width="800" height="450" loading="lazy" decoding="async"><figcaption>풀리는 배치와 안 풀리는 배치 판별 예시</figcaption></figure>
<h3>역전 수 세는 법 (예시 계산)</h3>
<p><strong>역전(inversion)</strong> 은 빈칸을 빼고 타일을 왼쪽 위부터 읽었을 때, 큰 수가 작은 수보다 앞에 오는 쌍의 개수예요. 위 그림 왼쪽 배치로 직접 세 볼게요.</p>
<pre class="code-block" data-lang="text"><code> 5  1  2  4
 9  6  3  8
13 10  7 11
14 15 12  _</code></pre>
<p>읽는 순서는 5, 1, 2, 4, 9, 6, 3, 8, 13, 10, 7, 11, 14, 15, 12예요. 각 수 뒤에 나오는 더 작은 수를 세면,</p>
<div class="table-wrap"><table><thead><tr><th>수</th><th>뒤에 나오는 더 작은 수</th><th>역전 개수</th></tr></thead><tbody><tr><td>5</td><td>1, 2, 4, 3</td><td>4</td></tr><tr><td>4</td><td>3</td><td>1</td></tr><tr><td>9</td><td>6, 3, 8, 7</td><td>4</td></tr><tr><td>6</td><td>3</td><td>1</td></tr><tr><td>8</td><td>7</td><td>1</td></tr><tr><td>13</td><td>10, 7, 11, 12</td><td>4</td></tr><tr><td>10</td><td>7</td><td>1</td></tr><tr><td>14</td><td>12</td><td>1</td></tr><tr><td>15</td><td>12</td><td>1</td></tr><tr><td>나머지(1, 2, 3, 7, 11, 12)</td><td>없음</td><td>0</td></tr></tbody></table></div>
<p>합계는 <strong>18개</strong>예요.</p>
<h3>4×4 판정 규칙</h3>
<p>가로 칸 수가 짝수인 4×4에서는 역전 수만으로는 안 되고, <strong>빈칸이 아래에서 몇 번째 줄에 있는지</strong>를 더해요(맨 아랫줄 = 1).</p>
<ul><li>역전 수 + 빈칸 줄(아래에서) = <strong>홀수면 풀림</strong>, 짝수면 안 풀림</li><li>왼쪽 예시: 18 + 1 = 19 → 홀수 → 풀려요</li><li>14·15 바뀐 배치: 역전 1개(15가 14보다 앞에 오는 한 쌍) + 1 = 2 → 짝수 → 안 풀려요</li><li>완성 상태: 역전 0 + 1 = 1 → 홀수 (기준점)</li></ul>
<h3>3×3(8퍼즐)과 5×5 판정 규칙</h3>
<p>가로 칸 수가 홀수인 3×3과 5×5는 더 간단해요. <strong>역전 수가 짝수면 풀리고, 홀수면 안 풀려요.</strong> 빈칸 위치는 상관없어요. 예를 들어 8퍼즐 배치 <code>8 1 3 / 4 _ 2 / 7 6 5</code>는 읽는 순서 8, 1, 3, 4, 2, 7, 6, 5에서 8이 뒤의 7개 수보다 커서 7개, 3과 4가 각각 2보다 커서 2개, 7이 6과 5보다 커서 2개, 6이 5보다 커서 1개, 합계 12개라 짝수 → 풀려요.</p>
<h3>왜 이 규칙이 성립할까</h3>
<ul><li><strong>가로로 밀기</strong>: 빈칸과 타일이 같은 줄에서 자리를 바꾸므로 읽는 순서가 그대로예요. 역전 수가 변하지 않아요.</li><li><strong>세로로 밀기</strong>: 타일 하나가 읽는 순서에서 (가로 칸 수 − 1)개의 타일을 건너뛰어요. 3×3이면 2개, 5×5면 4개를 건너뛰니 역전 수가 짝수만큼 변해서 홀짝이 그대로예요. 4×4면 3개를 건너뛰어 역전 수 홀짝이 뒤집히는데, 동시에 빈칸이 한 줄 위나 아래로 가서 빈칸 줄 번호의 홀짝도 뒤집혀요. 둘을 더한 값의 홀짝은 그대로예요.</li></ul>
<p>즉 어떤 이동을 해도 이 홀짝 값은 바뀌지 않으니, 완성 상태와 홀짝이 다른 배치는 영원히 완성에 닿을 수 없어요. 그리고 <strong>빈칸이 아닌 타일 두 개를 맞바꾸면 역전 수의 홀짝이 정확히 한 번 뒤집혀요.</strong> 그래서 풀리는 배치와 안 풀리는 배치가 일대일로 짝지어지고, 무작위 배치의 정확히 절반이 안 풀리는 거예요. 이 게임이 안 풀리는 배치가 나오면 타일 두 개를 바꿔 고치는 것도 같은 원리예요.</p>
<figure class="viz viz-donut"><figcaption class="viz-title">4×4 무작위 배치 중 풀리는 비율</figcaption><svg viewBox="0 0 640 260" role="img" aria-label="4×4 무작위 배치 중 풀리는 비율" preserveAspectRatio="xMidYMid meet"><path class="s1" d="M131.26,25.01 A105,105 0 0 1 131.26,234.99 L130.85,200.99 A71,71 0 0 0 130.85,59.01 Z"><title>풀리는 배치 · 50% (50.0%)</title></path><path class="s2" d="M128.74,234.99 A105,105 0 0 1 128.74,25.01 L129.15,59.01 A71,71 0 0 0 129.15,200.99 Z"><title>안 풀리는 배치 · 50% (50.0%)</title></path><text class="viz-center" x="130" y="137" text-anchor="middle">절반</text><rect class="s1" x="290" y="29" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="41">풀리는 배치</text><text class="viz-val" x="630" y="41" text-anchor="end">50%</text><rect class="s2" x="290" y="61" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="73">안 풀리는 배치</text><text class="viz-val" x="630" y="73" text-anchor="end">50%</text></svg><p class="viz-note">3×3·5×5도 똑같이 정확히 절반이에요</p><div class="viz-cap">단위: % · 자료: 16! = 20922789888000가지 중 정확히 절반(10461394944000가지)이 풀림</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>비율</th></tr></thead><tbody><tr><td>풀리는 배치</td><td>50</td></tr><tr><td>안 풀리는 배치</td><td>50</td></tr></tbody></table></div></details></figure>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">3×3, 4×4, 5×5 차이와 최단 이동 수</h2>
<p>크기가 한 단계 커질 때마다 경우의 수는 폭발적으로 늘어요. 풀 수 있는 배치 수는 (칸 수)! ÷ 2예요.</p>
<div class="table-wrap"><table><thead><tr><th>크기</th><th>타일 수</th><th>풀 수 있는 배치 수</th><th>최단 해의 최댓값</th></tr></thead><tbody><tr><td>3×3 (8퍼즐)</td><td>8</td><td>181,440가지</td><td>31번</td></tr><tr><td>4×4 (15퍼즐)</td><td>15</td><td>약 10조 4,614억 가지</td><td>80번</td></tr><tr><td>5×5 (24퍼즐)</td><td>24</td><td>약 7.76 × 10²⁴가지</td><td>아직 정확히 모름</td></tr></tbody></table></div>
<p>최단 해의 최댓값은 "어떤 배치든 이 횟수 안에 풀 수 있다"는 뜻의 숫자로, 흔히 "신의 수(God's number)"라고 불러요. 모두 타일 한 칸 이동을 1번으로 센 기준이에요. 8퍼즐은 경우의 수가 18만 개뿐이라 노트북으로도 전부 계산할 수 있어서 직접 돌려 봤어요. 완성 상태에서 거꾸로 너비 우선 탐색을 하면 181,440가지 배치 전부의 최단 거리가 나와요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">8퍼즐(3×3) 배치별 최단 이동 수 분포</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="8퍼즐(3×3) 배치별 최단 이동 수 분포" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">20,000</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">40,000</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">60,000</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">80,000</text><rect class="s1" x="62.8" y="254.0" width="50.4" height="0.5" rx="3"><title>0~3번 · 배치 수 15가지</title></rect><text class="viz-val" x="88.0" y="249.0" text-anchor="middle">15</text><text class="viz-ax" x="88.0" y="272" text-anchor="middle">0~3번</text><rect class="s1" x="134.8" y="253.6" width="50.4" height="0.5" rx="3"><title>4~7번 · 배치 수 137가지</title></rect><text class="viz-val" x="160.0" y="248.6" text-anchor="middle">137</text><text class="viz-ax" x="160.0" y="272" text-anchor="middle">4~7번</text><rect class="s1" x="206.8" y="251.2" width="50.4" height="2.8" rx="3"><title>8~11번 · 배치 수 950가지</title></rect><text class="viz-val" x="232.0" y="246.2" text-anchor="middle">950</text><text class="viz-ax" x="232.0" y="272" text-anchor="middle">8~11번</text><rect class="s1" x="278.8" y="235.8" width="50.4" height="18.2" rx="3"><title>12~15번 · 배치 수 6,177가지</title></rect><text class="viz-val" x="304.0" y="230.8" text-anchor="middle">6,177</text><text class="viz-ax" x="304.0" y="272" text-anchor="middle">12~15번</text><rect class="s1" x="350.8" y="163.9" width="50.4" height="90.1" rx="3"><title>16~19번 · 배치 수 30,530가지</title></rect><text class="viz-val" x="376.0" y="158.9" text-anchor="middle">30,530</text><text class="viz-ax" x="376.0" y="272" text-anchor="middle">16~19번</text><rect class="s1" x="422.8" y="23.1" width="50.4" height="230.9" rx="3"><title>20~23번 · 배치 수 78,279가지</title></rect><text class="viz-val" x="448.0" y="18.1" text-anchor="middle">78,279</text><text class="viz-ax" x="448.0" y="272" text-anchor="middle">20~23번</text><rect class="s1" x="494.8" y="75.6" width="50.4" height="178.4" rx="3"><title>24~27번 · 배치 수 60,459가지</title></rect><text class="viz-val" x="520.0" y="70.6" text-anchor="middle">60,459</text><text class="viz-ax" x="520.0" y="272" text-anchor="middle">24~27번</text><rect class="s1" x="566.8" y="239.6" width="50.4" height="14.4" rx="3"><title>28~31번 · 배치 수 4,893가지</title></rect><text class="viz-val" x="592.0" y="234.6" text-anchor="middle">4,893</text><text class="viz-ax" x="592.0" y="272" text-anchor="middle">28~31번</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">평균 21.97번, 31번이 필요한 배치는 단 2가지예요</p><div class="viz-cap">단위: 가지 · 자료: 181440가지 배치 전부를 너비 우선 탐색으로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>배치 수</th></tr></thead><tbody><tr><td>0~3번</td><td>15</td></tr><tr><td>4~7번</td><td>137</td></tr><tr><td>8~11번</td><td>950</td></tr><tr><td>12~15번</td><td>6,177</td></tr><tr><td>16~19번</td><td>30,530</td></tr><tr><td>20~23번</td><td>78,279</td></tr><tr><td>24~27번</td><td>60,459</td></tr><tr><td>28~31번</td><td>4,893</td></tr></tbody></table></div></details></figure>
<p>8퍼즐은 무작위 배치의 대부분이 20~27번 사이에서 풀려요. 이 게임 3×3에서 이동 수가 30번 안쪽이면 최단 해에 꽤 가까운 거예요. 15퍼즐은 무작위 배치의 최단 해가 평균 50번대 초반으로 알려져 있는데, 사람이 줄 단위 공식으로 풀면 보통 그보다 몇 배 많이 움직여요. 최단 해를 찾는 건 컴퓨터도 IDA* 같은 탐색 알고리즘이 필요한 일이라, 사람은 이동 수보다 "막히지 않고 끝까지 푸는 것"을 먼저 목표로 하는 게 맞아요.</p>
<p>5×5는 첫 줄과 첫째 열을 끝내면 4×4가 남으니 공식은 같아요. 다만 줄 끝 두 칸 넣기를 더 여러 번 해야 해서 시간이 두세 배 걸려요.</p>
<h2 id="s6">15퍼즐 빨리 푸는 요령</h2>
<ol><li><strong>빈칸 위치를 먼저 보기</strong>: 다음 타일을 옮기기 전에 빈칸이 어느 쪽으로 돌아가야 하는지 경로를 정해요. 빈칸 경로가 끝난 줄을 지나가면 다른 길을 찾아요.</li><li><strong>여러 칸 한꺼번에 밀기</strong>: 이 게임은 빈칸과 같은 줄의 타일을 클릭하면 사이의 타일이 한꺼번에 밀려요. 이동 수는 같아도 클릭 수가 줄어 시간이 빨라져요.</li><li><strong>다음 타일을 미리 근처로</strong>: 1을 옮기는 동안 2가 근처로 오게 빈칸 경로를 고르면 다음 단계가 짧아져요. 숙련자는 이걸 몇 타일 앞까지 계획해요.</li><li><strong>키보드나 스와이프 한쪽으로 통일</strong>: PC에서는 방향키가 손이 가장 덜 움직여요. 방향키는 "타일이 움직이는 방향" 기준이라는 점만 익숙해지면 돼요.</li><li><strong>3×3으로 감 잡기</strong>: 8퍼즐은 같은 원리를 작은 판에서 연습할 수 있어요. 첫 줄 1·2·3에서 2·3 세워 넣기, 마지막 2×3 영역에서 4·7 세로 짝 넣기를 연습하면 4×4가 쉬워져요.</li></ol>
<p>처음에는 4×4 한 판에 몇 분씩 걸려도 정상이에요. 공식이 손에 익으면 1~2분 안쪽으로 금방 줄어요. 시간 기록보다 이동 수 기록을 줄이고 싶다면, 빈칸이 같은 자리를 왔다 갔다 하는 "헛걸음"을 줄이는 게 가장 효과가 커요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">15퍼즐 흔한 실수</h2>
<ul><li><strong>3·4를 하나씩 넣으려고 계속 시도하기</strong>: 넣는 순간 다른 하나가 빠져요. 세워 두고 한 번에 넣는 방법을 쓰세요.</li><li><strong>끝난 줄로 빈칸을 올리기</strong>: 길이 짧아 보여도 이미 맞춘 타일이 흐트러지면 몇 배로 손해예요.</li><li><strong>마지막 두 줄을 가로로 풀기</strong>: 공간이 부족해 거의 안 풀려요. 세로 짝으로 바꾸세요.</li><li><strong>2×2가 안 맞는다고 계속 돌리기</strong>: 세 바퀴 넘게 돌려도 안 맞으면 앞 단계의 짝이 틀어진 거예요. 실물 퍼즐이라면 배치 자체가 안 풀리는 경우일 수도 있어요.</li></ul>
<h2 id="s8">자주 묻는 질문</h2>
<h3>15퍼즐은 어떤 배치든 다 풀 수 있나요?</h3>
<p>아니요. 타일을 빼서 아무렇게나 끼우면 정확히 절반은 절대 풀리지 않아요. 4×4는 역전 수와 빈칸 줄 번호(아래에서)의 합이 홀수일 때만 풀려요. 이 사이트의 슬라이딩 퍼즐은 항상 풀리는 배치만 내요.</p>
<h3>15퍼즐 최소 몇 번이면 풀 수 있나요?</h3>
<p>배치마다 달라요. 어떤 배치든 타일 한 칸 이동 기준 80번 안에 풀 수 있다는 것이 컴퓨터로 증명돼 있고, 무작위 배치의 최단 해는 평균 50번대 초반이에요. 8퍼즐은 최대 31번, 평균 약 22번이에요.</p>
<h3>3과 4를 넣으면 자꾸 하나가 빠져요. 어떻게 하나요?</h3>
<p>4를 3의 자리에, 3을 그 바로 아래에 세워 두고 빈칸을 4의 목표 자리로 데려와 4를 오른쪽, 3을 위로 밀면 한 번에 들어가요. 마지막 두 줄의 9·13, 10·14도 같은 원리로 세로 짝을 넣어요.</p>
<h3>8퍼즐과 15퍼즐 중 무엇부터 연습하는 게 좋나요?</h3>
<p>8퍼즐로 원리를 익히고 15퍼즐로 넘어가는 걸 추천해요. 줄 끝 두 칸 세워 넣기와 세로 짝 넣기가 3×3에서도 똑같이 나와서, 작은 판에서 손에 익히면 4×4가 훨씬 빨라져요.</p>
<h3>이 게임의 이동 수는 어떻게 세나요?</h3>
<p>움직인 타일 개수로 세요. 한 번 클릭으로 타일 3개를 밀면 3번이에요. 그래서 위에 적은 최단 이동 수(타일 한 칸 이동 기준)와 그대로 비교할 수 있어요.</p>
<h2 id="s9">정리</h2>
<p>15퍼즐 푸는 법은 "윗줄부터 한 줄씩, 줄 끝 두 칸은 세워서 한 번에, 마지막 두 줄은 세로 짝으로"가 전부예요. 안 풀리는 배치는 역전 수 홀짝으로 미리 가려낼 수 있고, 무작위 배치의 정확히 절반이 그런 배치예요.</p>
<p><a href="https://game.smithlab.co.kr/games/sliding-puzzle/">슬라이딩 퍼즐 게임</a>에서 3×3으로 감을 잡은 뒤 4×4, 5×5로 넘어가 보세요. 크기별 최고 시간과 최소 이동 수가 따로 기록돼요. 판을 읽는 퍼즐이 좋다면 <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 공략</a>과 <a href="https://game.smithlab.co.kr/posts/games/minesweeper-patterns/">지뢰찾기 패턴 정리</a>도 함께 읽어 보세요.</p>
    ]]></description>
    </item>
    <item>
      <title>블록 퍼즐 공략, 가운데 비우기부터 콤보 점수 계산까지 고득점 요령</title>
      <link>https://game.smithlab.co.kr/posts/games/block-puzzle-tips-high-score/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/block-puzzle-tips-high-score/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>블록 퍼즐은 처음엔 쉬워 보이는데, 몇 판 하다 보면 꼭 "3×3 정사각형 하나만 들어가면 되는데 자리가 없다"는 순간에 끝나요. 결론부터 말하면 <strong>블록 퍼즐의 핵심은 가장자리부터 채우고 가운데를 넓게 비워 두는 것, 그리고 3×3과 5칸 막대가 들어갈 자리를 늘 하나씩 남겨 두는 것</strong>이에요. 점수는 그다음에 콤보를 끊지 않는 데서 크게 갈려요.</p>
<p>이 글은 스미스 게임 연구소에서 직접 만든 <a href="https://game.smithlab.co.kr/games/block-puzzle/">블록 퍼즐</a>을 기준으로 썼어요. 1010!이나 블록 블라스트 같은 8×8 블록 끼우기 게임과 같은 장르라서, 배치 요령은 그 게임들에도 그대로 통해요. 다만 점수 공식과 블록 확률은 게임마다 달라서, 아래 숫자는 이 버전의 실제 코드에 들어 있는 값을 그대로 옮겼어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>판은 8×8이고, 블록 3개가 한 묶음으로 나와요. 블록은 돌릴 수 없고, 가로줄과 세로줄이 꽉 차면 동시에 지워져요.</li><li>점수는 놓은 칸 수에 줄 보너스 10×n(n+1)/2(1줄 10, 2줄 30, 3줄 60, 4줄 100)를 더하고, 줄 보너스에는 콤보 배수가 곱해져요.</li><li>콤보는 줄을 지울 때마다 1씩 오르고, 줄 없이 3번 연속 놓으면 끊겨요. 콤보가 이미 붙어 있을 때는 여러 줄을 한 번에 지우는 쪽이 훨씬 이득이에요.</li><li>게임 오버의 대부분은 3×3 정사각형(9칸)이나 5칸 막대가 들어갈 자리가 없을 때 와요. 가운데를 비우고, 이 두 블록 자리를 늘 남겨 두세요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">블록 퍼즐 규칙 한눈에 보기</h2>
<p>규칙은 단순해요. 판 아래에 블록 3개가 나오면 하나씩 끌어서 판 위 빈자리에 놓아요. 3개를 모두 놓으면 새 묶음 3개가 나와요. 블록을 놓은 결과 <strong>가로 8칸이 꽉 찬 줄이나 세로 8칸이 꽉 찬 줄이 생기면 그 줄이 지워지는데, 가로와 세로가 같이 차면 둘 다 한꺼번에</strong> 지워져요. 테트리스와 달리 줄이 지워져도 위의 블록이 내려오지 않고, 지워진 칸만 빈칸이 돼요.</p>
<div class="table-wrap"><table><thead><tr><th>항목</th><th>내용</th></tr></thead><tbody><tr><td>판 크기</td><td>8×8, 64칸</td></tr><tr><td>블록 공급</td><td>3개씩 한 묶음. 새 묶음은 그 순간 판에 적어도 하나는 들어가도록 최대 30번까지 다시 뽑음</td></tr><tr><td>회전</td><td>불가. 대신 L·T·S 같은 모양은 방향별로 따로 나옴</td></tr><tr><td>줄 지우기</td><td>꽉 찬 가로줄·세로줄을 동시에 지움. 교차 칸은 한 번만 지워짐</td></tr><tr><td>미리 보기</td><td>끌고 있는 블록을 놓으면 지워질 줄이 블록 색으로 표시됨</td></tr><tr><td>게임 오버</td><td>아직 놓지 않은 블록 가운데 어느 것도 판에 들어가지 않을 때</td></tr></tbody></table></div>
<p>게임 오버 조건을 정확히 알아 두면 좋아요. <strong>남은 블록 중 하나라도 들어갈 자리가 있으면 게임은 계속돼요.</strong> 예를 들어 3×3과 5칸 막대가 들어갈 자리가 없어도 점 하나짜리 블록이 남아 있다면, 그 점을 놓아 줄을 지우고 자리를 만들 기회가 있어요. 그래서 묶음 안의 놓는 순서가 생각보다 중요해요. 놓을 수 없는 블록은 트레이에서 흐리게 보이니, 묶음이 나오면 먼저 흐린 블록이 있는지부터 확인하는 습관을 들이세요.</p>
<h2 id="s2">블록 퍼즐 블록 종류와 나오는 확률</h2>
<p>이 버전에는 모양 13종, 방향까지 따지면 37가지 블록이 나와요. 모양마다 가중치가 있고, 같은 모양의 여러 방향은 그 가중치를 똑같이 나눠 가져요. 가중치 합은 29.5라서, 모양별로 한 번 뽑을 때 나올 확률은 아래와 같아요.</p>
<div class="table-wrap"><table><thead><tr><th>모양</th><th>칸 수</th><th>방향 수</th><th>나올 확률</th></tr></thead><tbody><tr><td>점 (1×1)</td><td>1</td><td>1</td><td>6.8%</td></tr><tr><td>2칸 막대</td><td>2</td><td>2</td><td>10.2%</td></tr><tr><td>3칸 막대</td><td>3</td><td>2</td><td>10.2%</td></tr><tr><td>4칸 막대</td><td>4</td><td>2</td><td>6.8%</td></tr><tr><td>5칸 막대</td><td>5</td><td>2</td><td>6.8%</td></tr><tr><td>2×2 정사각형</td><td>4</td><td>1</td><td>10.2%</td></tr><tr><td>3×3 정사각형</td><td>9</td><td>1</td><td>5.1%</td></tr><tr><td>2×3 직사각형</td><td>6</td><td>2</td><td>5.1%</td></tr><tr><td>3칸 꺾쇠</td><td>3</td><td>4</td><td>10.2%</td></tr><tr><td>4칸 L·J</td><td>4</td><td>8</td><td>10.2%</td></tr><tr><td>T 모양</td><td>4</td><td>4</td><td>6.8%</td></tr><tr><td>S·Z 모양</td><td>4</td><td>4</td><td>6.8%</td></tr><tr><td>5칸 큰 꺾쇠</td><td>5</td><td>4</td><td>5.1%</td></tr></tbody></table></div>
<p>블록 하나의 평균 칸 수는 약 3.86칸이에요. 묶음 하나(3개)로 평균 11.6칸쯤 채우는 셈이라, 64칸 판은 줄을 하나도 못 지우면 대여섯 묶음 만에 꽉 차요. 줄을 꾸준히 지워야만 오래 버틸 수 있는 구조예요.</p>
<p>눈여겨볼 숫자가 하나 더 있어요. 가장 다루기 어려운 세 블록인 3×3 정사각형, 5칸 큰 꺾쇠, 5칸 막대를 합친 확률은 5.1 + 5.1 + 6.8 = 17%예요. 블록 3개가 나오는 한 묶음 안에 이 셋 중 하나라도 섞여 있을 확률은 1 − 0.83³ ≈ 42.7%로, <strong>두 묶음에 한 번꼴로 큰 블록이 찾아온다</strong>는 뜻이에요. 큰 블록 자리를 "가끔 필요한 것"이 아니라 "늘 필요한 것"으로 생각해야 하는 이유예요.</p>
<h2 id="s3">블록 퍼즐 점수 계산 방법</h2>
<p>점수는 두 부분으로 나뉘어요.</p>
<ol><li><strong>놓기 점수</strong>: 블록을 놓을 때마다 블록 칸 수만큼(점 1점, 3×3 9점).</li><li><strong>줄 보너스</strong>: 한 번에 지운 줄 수가 n이면 10 × n(n+1)/2점에 <strong>콤보 배수</strong>를 곱해요. 가로줄과 세로줄을 합쳐서 n을 세요.</li></ol>
<p>판을 완전히 비우는 퍼펙트에는 300점이 따로 붙어요. 이건 콤보 배수와 상관없이 고정이에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">한 번에 지운 줄 수별 줄 보너스 (콤보 배수 ×1)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="한 번에 지운 줄 수별 줄 보너스 (콤보 배수 ×1)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="628" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">150</text><line class="viz-grid" x1="52" x2="628" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">250</text><rect class="s1" x="66.4" y="244.6" width="67.2" height="9.4" rx="3"><title>1줄 · 줄 보너스 10점</title></rect><text class="viz-val" x="100.0" y="239.6" text-anchor="middle">10</text><text class="viz-ax" x="100.0" y="272" text-anchor="middle">1줄</text><rect class="s1" x="162.4" y="225.7" width="67.2" height="28.3" rx="3"><title>2줄 · 줄 보너스 30점</title></rect><text class="viz-val" x="196.0" y="220.7" text-anchor="middle">30</text><text class="viz-ax" x="196.0" y="272" text-anchor="middle">2줄</text><rect class="s1" x="258.4" y="197.4" width="67.2" height="56.6" rx="3"><title>3줄 · 줄 보너스 60점</title></rect><text class="viz-val" x="292.0" y="192.4" text-anchor="middle">60</text><text class="viz-ax" x="292.0" y="272" text-anchor="middle">3줄</text><rect class="s1" x="354.4" y="159.6" width="67.2" height="94.4" rx="3"><title>4줄 · 줄 보너스 100점</title></rect><text class="viz-val" x="388.0" y="154.6" text-anchor="middle">100</text><text class="viz-ax" x="388.0" y="272" text-anchor="middle">4줄</text><rect class="s1" x="450.4" y="112.4" width="67.2" height="141.6" rx="3"><title>5줄 · 줄 보너스 150점</title></rect><text class="viz-val" x="484.0" y="107.4" text-anchor="middle">150</text><text class="viz-ax" x="484.0" y="272" text-anchor="middle">5줄</text><rect class="s1" x="546.4" y="55.8" width="67.2" height="198.2" rx="3"><title>6줄 · 줄 보너스 210점</title></rect><text class="viz-val" x="580.0" y="50.8" text-anchor="middle">210</text><text class="viz-ax" x="580.0" y="272" text-anchor="middle">6줄</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">한 블록으로 동시에 지울 수 있는 최대는 6줄(3×3이 가로 3줄과 세로 3줄을 동시에 채우는 경우 등)이에요.</p><div class="viz-cap">단위: 점 · 자료: 스미스 게임 연구소 블록 퍼즐 코드의 10×n(n+1)/2 공식으로 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>줄 보너스</th></tr></thead><tbody><tr><td>1줄</td><td>10</td></tr><tr><td>2줄</td><td>30</td></tr><tr><td>3줄</td><td>60</td></tr><tr><td>4줄</td><td>100</td></tr><tr><td>5줄</td><td>150</td></tr><tr><td>6줄</td><td>210</td></tr></tbody></table></div></details></figure>
<p>줄 보너스가 줄 수에 비례하지 않고 삼각수(1, 3, 6, 10, 15, 21)로 늘어난다는 점이 중요해요. 1줄은 줄당 10점이지만 4줄을 한 번에 지우면 줄당 25점이에요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/block-puzzle-tips-high-score-1.svg" alt="가로 1줄과 세로 1줄이 한 블록으로 동시에 차서 지워지는 예시와 점수 계산식" width="800" height="450" loading="lazy" decoding="async"><figcaption>가로·세로 동시 지우기 점수 계산 예시</figcaption></figure>
<p>예를 들어 콤보가 없는 상태에서 2×2 정사각형을 놓아 가로 1줄과 세로 1줄을 동시에 채웠다면, 놓기 4점 + 2줄 보너스 30점 × 1 = 34점이에요. 같은 상황에서 콤보가 이미 두 번 이어져 있어 이번이 세 번째 클리어(×3)라면 4 + 30 × 3 = 94점이 돼요.</p>
<h2 id="s4">콤보는 어떻게 이어지고 언제 끊기나</h2>
<p>콤보 배수는 줄을 지울 때마다 1씩 올라가요. 첫 클리어는 ×1, 다음 클리어는 ×2, 그다음은 ×3이에요. 반대로 <strong>줄을 하나도 못 지우고 블록을 3번 연속 놓으면 콤보가 0으로 돌아가요.</strong> 다시 말해 줄 없는 놓기를 두 번까지는 해도 되고, 세 번째 놓기에서 줄을 지우면 콤보가 이어져요. 화면 위 콤보 칸에 "×3 (1)"처럼 괄호 숫자가 보이면, 콤보가 끊기기 전까지 줄 없이 놓을 수 있는 횟수가 1번 남았다는 뜻이에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">콤보 배수별 줄 보너스 (1줄과 2줄 동시)</figcaption><div class="viz-legend"><span><i class="s1"></i>1줄</span><span><i class="s2"></i>2줄 동시</span></div><svg viewBox="0 0 640 300" role="img" aria-label="콤보 배수별 줄 보너스 (1줄과 2줄 동시)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">150</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">200</text><rect class="s1" x="66.4" y="242.2" width="32.6" height="11.8" rx="3"><title>×1 · 1줄 10점</title></rect><rect class="s2" x="101.0" y="218.6" width="32.6" height="35.4" rx="3"><title>×1 · 2줄 동시 30점</title></rect><text class="viz-ax" x="100.0" y="272" text-anchor="middle">×1</text><rect class="s1" x="162.4" y="230.4" width="32.6" height="23.6" rx="3"><title>×2 · 1줄 20점</title></rect><rect class="s2" x="197.0" y="183.2" width="32.6" height="70.8" rx="3"><title>×2 · 2줄 동시 60점</title></rect><text class="viz-ax" x="196.0" y="272" text-anchor="middle">×2</text><rect class="s1" x="258.4" y="218.6" width="32.6" height="35.4" rx="3"><title>×3 · 1줄 30점</title></rect><rect class="s2" x="293.0" y="147.8" width="32.6" height="106.2" rx="3"><title>×3 · 2줄 동시 90점</title></rect><text class="viz-ax" x="292.0" y="272" text-anchor="middle">×3</text><rect class="s1" x="354.4" y="206.8" width="32.6" height="47.2" rx="3"><title>×4 · 1줄 40점</title></rect><rect class="s2" x="389.0" y="112.4" width="32.6" height="141.6" rx="3"><title>×4 · 2줄 동시 120점</title></rect><text class="viz-ax" x="388.0" y="272" text-anchor="middle">×4</text><rect class="s1" x="450.4" y="195.0" width="32.6" height="59.0" rx="3"><title>×5 · 1줄 50점</title></rect><rect class="s2" x="485.0" y="77.0" width="32.6" height="177.0" rx="3"><title>×5 · 2줄 동시 150점</title></rect><text class="viz-ax" x="484.0" y="272" text-anchor="middle">×5</text><rect class="s1" x="546.4" y="183.2" width="32.6" height="70.8" rx="3"><title>×6 · 1줄 60점</title></rect><rect class="s2" x="581.0" y="41.6" width="32.6" height="212.4" rx="3"><title>×6 · 2줄 동시 180점</title></rect><text class="viz-ax" x="580.0" y="272" text-anchor="middle">×6</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><div class="viz-cap">단위: 점 · 자료: 스미스 게임 연구소 블록 퍼즐 코드로 계산 (놓기 점수 제외)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>1줄</th><th>2줄 동시</th></tr></thead><tbody><tr><td>×1</td><td>10</td><td>30</td></tr><tr><td>×2</td><td>20</td><td>60</td></tr><tr><td>×3</td><td>30</td><td>90</td></tr><tr><td>×4</td><td>40</td><td>120</td></tr><tr><td>×5</td><td>50</td><td>150</td></tr><tr><td>×6</td><td>60</td><td>180</td></tr></tbody></table></div></details></figure>
<p>콤보 배수에는 상한이 없어서, 줄을 꾸준히 지우는 판일수록 뒤로 갈수록 한 번의 클리어가 커져요. 콤보 ×10에서 3줄을 동시에 지우면 줄 보너스만 600점이에요.</p>
<h2 id="s5">한 줄씩 vs 여러 줄 동시, 어느 쪽이 이득일까</h2>
<p>재미있는 계산이 하나 있어요. 콤보가 없는 상태에서 시작하면, <strong>1줄씩 k번 지우는 것과 k줄을 한 번에 지우는 것의 줄 보너스가 정확히 같아요.</strong> 1줄씩 네 번이면 10×1 + 10×2 + 10×3 + 10×4 = 100점이고, 4줄 동시는 100 × 1 = 100점이에요. 삼각수 공식과 콤보 배수가 맞물려 이렇게 돼요.</p>
<p>그런데 콤보가 이미 붙어 있으면 이야기가 달라져요. 다음 클리어가 ×3인 상태를 생각해 볼게요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">다음 클리어가 ×3일 때 1줄씩 나눠 지우기 vs 한 번에 지우기</figcaption><div class="viz-legend"><span><i class="s1"></i>1줄씩 나눠서</span><span><i class="s2"></i>한 번에 동시</span></div><svg viewBox="0 0 640 300" role="img" aria-label="다음 클리어가 ×3일 때 1줄씩 나눠 지우기 vs 한 번에 지우기" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="628" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">150</text><line class="viz-grid" x1="52" x2="628" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="628" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">250</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">300</text><rect class="s1" x="80.8" y="198.9" width="66.2" height="55.1" rx="3"><title>2줄 · 1줄씩 나눠서 70점</title></rect><rect class="s2" x="149.0" y="183.2" width="66.2" height="70.8" rx="3"><title>2줄 · 한 번에 동시 90점</title></rect><text class="viz-ax" x="148.0" y="272" text-anchor="middle">2줄</text><rect class="s1" x="272.8" y="159.6" width="66.2" height="94.4" rx="3"><title>3줄 · 1줄씩 나눠서 120점</title></rect><rect class="s2" x="341.0" y="112.4" width="66.2" height="141.6" rx="3"><title>3줄 · 한 번에 동시 180점</title></rect><text class="viz-ax" x="340.0" y="272" text-anchor="middle">3줄</text><rect class="s1" x="464.8" y="112.4" width="66.2" height="141.6" rx="3"><title>4줄 · 1줄씩 나눠서 180점</title></rect><rect class="s2" x="533.0" y="18.0" width="66.2" height="236.0" rx="3"><title>4줄 · 한 번에 동시 300점</title></rect><text class="viz-ax" x="532.0" y="272" text-anchor="middle">4줄</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><div class="viz-cap">단위: 점 · 자료: 스미스 게임 연구소 블록 퍼즐 코드로 계산 (1줄씩은 ×3, ×4, ×5, ×6 순서로 적용)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>1줄씩 나눠서</th><th>한 번에 동시</th></tr></thead><tbody><tr><td>2줄</td><td>70</td><td>90</td></tr><tr><td>3줄</td><td>120</td><td>180</td></tr><tr><td>4줄</td><td>180</td><td>300</td></tr></tbody></table></div></details></figure>
<p>4줄 기준으로 나눠 지우면 180점, 한 번에 지우면 300점이에요. 대신 한 번에 지우면 콤보가 1만 오르고, 나눠 지우면 4가 올라서 그다음 클리어 배수는 나눠 지운 쪽이 높아요. 그래서 실전 판단은 이렇게 하면 돼요.</p>
<ul><li><strong>콤보가 낮거나 없을 때</strong>: 무리해서 여러 줄을 모으지 말고 지울 수 있는 줄은 바로 지워 콤보를 시작하세요. 차이가 없거나 작아요.</li><li><strong>콤보가 높을 때</strong>: 판에 여유가 있다면 거의 찬 줄 두세 개를 한 블록으로 같이 마무리하는 쪽이 커요.</li><li><strong>판이 위험할 때</strong>: 점수 계산은 접어 두고 무조건 빨리 지워 자리부터 만드세요. 게임 오버가 되면 콤보도 의미가 없어요.</li></ul>
<h2 id="s6">고득점 요령 1: 가운데를 비워 두기</h2>
<p>빈 판에서 블록 하나가 들어갈 수 있는 위치 수를 세어 보면 가운데의 가치가 보여요. w×h 크기 블록은 8×8 판에 (9 − w) × (9 − h)곳에 놓을 수 있어요. 점은 64곳, 2×2는 49곳, 3×3은 36곳, 5칸 막대는 32곳이에요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">빈 8×8 판에서 블록별로 놓을 수 있는 위치 수</figcaption><svg viewBox="0 0 640 288" role="img" aria-label="빈 8×8 판에서 블록별로 놓을 수 있는 위치 수" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="65" y="29" text-anchor="end">점</text><rect class="s1" x="75" y="15" width="396.0" height="20" rx="3"><title>점 · 64곳</title></rect><text class="viz-val" x="477.0" y="29">64곳</text><text class="viz-ax lg" x="65" y="63" text-anchor="end">2칸 막대</text><rect class="s1" x="75" y="49" width="346.5" height="20" rx="3"><title>2칸 막대 · 56곳</title></rect><text class="viz-val" x="427.5" y="63">56곳</text><text class="viz-ax lg" x="65" y="97" text-anchor="end">2×2</text><rect class="s1" x="75" y="83" width="303.2" height="20" rx="3"><title>2×2 · 49곳</title></rect><text class="viz-val" x="384.2" y="97">49곳</text><text class="viz-ax lg" x="65" y="131" text-anchor="end">3칸 막대</text><rect class="s1" x="75" y="117" width="297.0" height="20" rx="3"><title>3칸 막대 · 48곳</title></rect><text class="viz-val" x="378.0" y="131">48곳</text><text class="viz-ax lg" x="65" y="165" text-anchor="end">2×3</text><rect class="s1" x="75" y="151" width="259.9" height="20" rx="3"><title>2×3 · 42곳</title></rect><text class="viz-val" x="340.9" y="165">42곳</text><text class="viz-ax lg" x="65" y="199" text-anchor="end">4칸 막대</text><rect class="s1" x="75" y="185" width="247.5" height="20" rx="3"><title>4칸 막대 · 40곳</title></rect><text class="viz-val" x="328.5" y="199">40곳</text><text class="viz-ax lg" x="65" y="233" text-anchor="end">3×3</text><rect class="s1" x="75" y="219" width="222.8" height="20" rx="3"><title>3×3 · 36곳</title></rect><text class="viz-val" x="303.8" y="233">36곳</text><text class="viz-ax lg" x="65" y="267" text-anchor="end">5칸 막대</text><rect class="s1" x="75" y="253" width="198.0" height="20" rx="3"><title>5칸 막대 · 32곳</title></rect><text class="viz-val" x="279.0" y="267">32곳</text></svg><div class="viz-cap">단위: 곳 · 자료: (9 − 가로칸) × (9 − 세로칸)으로 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>위치 수</th></tr></thead><tbody><tr><td>점</td><td>64</td></tr><tr><td>2칸 막대</td><td>56</td></tr><tr><td>2×2</td><td>49</td></tr><tr><td>3칸 막대</td><td>48</td></tr><tr><td>2×3</td><td>42</td></tr><tr><td>4칸 막대</td><td>40</td></tr><tr><td>3×3</td><td>36</td></tr><tr><td>5칸 막대</td><td>32</td></tr></tbody></table></div></details></figure>
<p>같은 칸이라도 어디에 있느냐에 따라 막는 자리 수가 달라요. 판 정중앙 2×2 영역의 칸 하나는 3×3이 들어갈 수 있는 36곳 가운데 9곳에 걸쳐 있고, 모서리 칸은 단 1곳에만 걸쳐 있어요. <strong>가운데에 블록 하나를 흩어 놓으면 3×3 자리가 한꺼번에 여러 개 사라지고, 모서리에 놓으면 하나만 사라져요.</strong> 그래서 가장자리와 모서리부터 채우는 게 정석이에요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/block-puzzle-tips-high-score-2.svg" alt="왼쪽은 가장자리를 채우고 가운데를 비운 좋은 판, 오른쪽은 가운데에 작은 블록이 흩어져 3×3 자리가 없는 나쁜 판" width="800" height="450" loading="lazy" decoding="async"><figcaption>가장자리부터 채운 판(3×3 자리 17곳)과 가운데에 흩어 놓은 판(0곳) 비교</figcaption></figure>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s7">고득점 요령 2: 3×3과 5칸 막대 자리를 늘 하나씩</h2>
<p>게임 오버 직전의 판을 보면 대부분 빈칸 수 자체는 넉넉해요. 빈칸이 20개 넘게 남아 있어도 그 빈칸이 서너 칸씩 흩어져 있으면 3×3(9칸)이나 5칸 막대가 들어갈 곳이 없어요. 블록을 놓기 전에 이렇게 점검해 보세요.</p>
<ol><li>이 블록을 놓은 뒤에도 판 어딘가에 <strong>3×3 빈 정사각형</strong>이 하나 남는가?</li><li>가로든 세로든 <strong>5칸 연속 빈 줄</strong>이 하나 남는가?</li><li>둘 다 안 남는다면, 이 블록으로 줄을 지워서 자리를 되살릴 수 있는가?</li></ol>
<p>세 질문에 모두 "아니요"라면 그 자리는 피하는 게 좋아요. 특히 가장자리 한 줄(1행이나 8열)을 거의 다 채운 상태로 오래 두면, 5칸 막대는 들어가도 3×3이 들어갈 폭이 줄어요. 가장자리 줄은 채웠으면 빨리 지워 주세요.</p>
<h2 id="s8">고득점 요령 3: 묶음 안에서 놓는 순서 정하기</h2>
<p>블록 3개는 원하는 순서로 놓을 수 있어요. 이 순서가 의외로 생존을 크게 좌우해요.</p>
<ul><li><strong>큰 블록부터</strong>: 3×3이나 5칸 막대가 묶음에 있으면 가장 먼저 놓으세요. 작은 블록을 먼저 놓다 보면 큰 블록 자리를 스스로 막는 경우가 많아요.</li><li><strong>줄을 지우는 블록을 먼저</strong>: 어떤 블록이 줄을 완성한다면 그걸 먼저 놓아 자리를 비운 뒤 나머지를 놓으세요. 지워진 칸에 남은 블록이 들어갈 수 있어요.</li><li><strong>점과 2칸 막대는 마지막까지 아껴 두기</strong>: 작은 블록은 어디든 들어가서, 묶음 마지막에 남겨 두면 콤보를 잇는 마무리용으로 쓰기 좋아요.</li></ul>
<p>새 묶음은 3개를 다 놓아야 나와요. 그러니 마지막 블록을 놓기 전에 "다음 묶음에 3×3이 와도 살 수 있나"를 한 번 더 생각해 보면 좋아요.</p>
<h2 id="s9">고득점 요령 4: 거의 찬 줄을 여러 개 만들어 콤보 잇기</h2>
<p>콤보는 3번 안에 한 번씩 줄을 지워야 이어져요. 판에 7칸이 찬 줄이 하나뿐이면 맞는 블록이 안 나올 때 콤보가 끊겨요. 반대로 <strong>7칸 찬 줄이 가로와 세로로 서너 개 있으면 대부분의 블록이 어딘가에서 줄을 완성</strong>해서 콤보를 길게 이어 가기 쉬워요. 이때도 빈칸이 가운데로 몰리지 않게, 비어 있는 한 칸이 가장자리 쪽에 오도록 줄을 만드는 게 안전해요.</p>
<p>끌고 있는 블록이 판 위에 있으면 지워질 줄이 미리 밝게 표시돼요. 놓기 전에 여기저기 대 보면서 가장 많은 줄이 밝아지는 자리를 찾아보세요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s10">블록 퍼즐 흔한 실수</h2>
<div class="table-wrap"><table><thead><tr><th>실수</th><th>왜 문제인가</th><th>이렇게 바꿔 보세요</th></tr></thead><tbody><tr><td>빈자리에 블록을 "일단" 놓기</td><td>가운데에 흩어진 한두 칸이 3×3 자리를 여러 개 막아요</td><td>가장자리부터, 모서리에 붙여서 놓기</td></tr><tr><td>큰 블록을 마지막에 놓기</td><td>작은 블록이 큰 블록 자리를 먼저 차지해요</td><td>3×3·5칸 막대를 묶음에서 먼저 놓기</td></tr><tr><td>줄을 너무 오래 모으기</td><td>판이 차서 큰 블록이 들어갈 곳이 사라져요</td><td>콤보가 낮을 땐 바로바로 지우기</td></tr><tr><td>한 줄만 거의 채워 두기</td><td>맞는 블록이 안 오면 콤보가 끊겨요</td><td>7칸 찬 줄을 여러 개, 가로·세로로 분산</td></tr><tr><td>흐린 블록을 늦게 확인</td><td>묶음 마지막에 못 놓는 블록이 남아요</td><td>묶음이 나오면 흐린 블록부터 자리 만들기</td></tr></tbody></table></div>
<h2 id="s11">자주 묻는 질문</h2>
<h3>블록을 돌릴 수는 없나요?</h3>
<p>없어요. 1010!이나 블록 블라스트와 같은 방식으로 나온 모양 그대로 놓아야 해요. 대신 L·J, T, S·Z, 꺾쇠 같은 모양은 방향별로 따로 나와서 37가지 블록이 등장해요.</p>
<h3>가로줄과 세로줄이 동시에 차면 점수가 어떻게 되나요?</h3>
<p>가로와 세로 줄 수를 합쳐서 n으로 계산해요. 가로 1줄과 세로 1줄이면 2줄 동시라서 30점에 콤보 배수를 곱해요. 교차하는 칸은 한 번만 지워져요.</p>
<h3>퍼펙트(판 비우기)는 얼마나 되나요?</h3>
<p>판의 모든 칸이 비면 300점이 따로 붙어요. 콤보 배수는 곱하지 않아요. 판에 블록이 적은 초반에 노리기 쉽지만, 무리하게 노리다 판을 망치지 않게 주의하세요.</p>
<h3>게임 오버가 됐는데 빈칸은 많았어요.</h3>
<p>게임 오버는 빈칸 수가 아니라, 남은 블록이 들어갈 모양의 빈자리가 있는지로 정해져요. 빈칸이 흩어져 있으면 3×3이나 5칸 막대가 들어갈 곳이 없어요. 가운데를 비워 두는 습관이 이걸 막아 줘요.</p>
<h3>최고 점수는 어디에 저장되나요?</h3>
<p>최고 점수, 최대 콤보, 판 수가 이 브라우저 쿠키에만 저장돼요. 서버로 보내지 않고, 게임 화면 아래 기록 초기화 버튼으로 지울 수 있어요.</p>
<h2 id="s12">정리</h2>
<p>블록 퍼즐은 손이 빠른 게임이 아니라 판을 관리하는 게임이에요. 가장자리와 모서리부터 채워 가운데를 비우고, 3×3과 5칸 막대가 들어갈 자리를 늘 하나씩 남겨 두면 판이 눈에 띄게 오래가요. 점수는 줄 보너스 10×n(n+1)/2에 콤보 배수가 곱해지는 구조라, 콤보를 끊지 않으면서 콤보가 높을 때 여러 줄을 한 번에 지우는 게 고득점의 지름길이에요.</p>
<p>지금 바로 <a href="https://game.smithlab.co.kr/games/block-puzzle/">블록 퍼즐</a>에서 가운데 비우기를 연습해 보세요. 떨어지는 블록을 다루는 게임이 더 좋다면 <a href="https://game.smithlab.co.kr/posts/games/tetris-tips-tspin-scoring/">테트리스 T-스핀과 점수 계산 글</a>과 <a href="https://game.smithlab.co.kr/games/tetris/">테트리스</a>도 있고, 합치기 퍼즐을 좋아한다면 <a href="https://game.smithlab.co.kr/posts/games/suika-game-tips-high-score/">수박 게임 공략</a>도 함께 읽어 보세요.</p>
    ]]></description>
    </item>
    <item>
      <title>공룡 게임 잘하는 법, 점프 타이밍과 새 피하기로 최고 점수 올리기</title>
      <link>https://game.smithlab.co.kr/posts/games/dino-run-game-tips/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/dino-run-game-tips/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>공룡 게임을 하다 보면 200~300점 근처에서 자꾸 끝나는 벽이 있어요. 결론부터 말하면 <strong>공룡 게임 점수는 손이 빠르냐보다 "얼마나 짧게, 얼마나 길게 뛰느냐"를 고르는 데서 갈려요. 스미스 게임 연구소 <a href="https://game.smithlab.co.kr/games/dino-run/">공룡 달리기</a> 기준으로 짧게 톡 친 점프는 0.43초, 끝까지 누른 점프는 0.64초 동안 떠 있고, 이 0.2초 차이 때문에 착지 직후 나오는 다음 장애물에 걸리느냐 마느냐가 정해져요.</strong> 여기에 300점부터 나오는 새를 높이별로 다르게 피하는 법만 익히면, 첫 벽은 금방 넘어가요.</p>
<p>이 글은 스미스 게임 연구소 공룡 달리기의 실제 물리값과 점수 규칙으로 계산한 숫자를 기준으로 정리했어요. 인터넷이 끊겼을 때 크롬 브라우저에 나오는 공룡 게임(주소창에 <code>chrome://dino</code>)에서 아이디어를 얻은 게임이라 감각은 비슷하지만, 그림·코드·속도 규칙은 직접 만든 별도 게임이고 구글과는 관련이 없어요. 그래서 아래 숫자는 스미스 게임 연구소 버전 기준이고, 원조 게임과는 세부 수치가 다를 수 있어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>점프 높이는 누르는 시간으로 조절돼요. 짧게 치면 높이 약 70px로 0.43초, 끝까지 누르면 약 117px로 0.64초 떠 있어요.</li><li>작은 선인장(36px)은 짧은 점프, 큰 선인장 2~3개 묶음(50px)은 긴 점프가 기본이에요. 공중에서 ↓를 누르면 빨리 내려와 다음 점프를 서두를 수 있어요.</li><li>300점부터 새가 낮음·가운데·높음 세 높이로 와요. 낮은 새는 점프, 가운데 새는 숙이기, 높은 새는 아무것도 하지 않는 게 정답이에요.</li><li>속도는 초당 360px에서 시작해 약 117초(약 1,660점)에 초당 780px로 최고가 되고, 700점마다 낮과 밤이 바뀌어요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">공룡 게임 기본 규칙과 점수 계산</h2>
<p>공룡은 제자리에서 계속 달리고, 선인장과 새가 오른쪽에서 다가와요. 닿으면 그 자리에서 게임 오버예요. 점수는 달린 거리로만 매겨지고, 장애물을 넘었다고 따로 주는 보너스는 없어요.</p>
<div class="table-wrap"><table><thead><tr><th>항목</th><th>스미스 게임 연구소 공룡 달리기 값</th></tr></thead><tbody><tr><td>점수</td><td>달린 거리 40px마다 1점</td></tr><tr><td>시작 속도</td><td>초당 360px (초당 9점)</td></tr><tr><td>가속</td><td>1초마다 초당 3.6px씩 빨라짐</td></tr><tr><td>최고 속도</td><td>초당 780px (초당 19.5점), 약 117초에 도달</td></tr><tr><td>새 등장</td><td>300점부터, 장애물의 약 22%</td></tr><tr><td>낮·밤 전환</td><td>700점마다 화면 색 반전</td></tr><tr><td>점수 깜빡임</td><td>100점마다 0.8초</td></tr></tbody></table></div>
<p>점수가 거리라는 건 <strong>오래 살아남는 것 말고는 점수를 올릴 방법이 없다</strong>는 뜻이에요. 무리해서 뭔가를 더 하는 것보다 실수를 줄이는 쪽이 항상 이득이에요. 100점마다 점수가 깜빡이는 건 단순한 연출이라 판정에는 영향이 없지만, 깜빡임에 눈이 가서 앞을 놓치는 경우가 꽤 있으니 시선은 공룡 앞쪽에 두는 게 좋아요.</p>
<h2 id="s2">점프 길이 조절이 공룡 게임 고득점의 핵심</h2>
<p>이 게임의 점프는 누르는 순간 같은 힘으로 튀어 오르고, <strong>누르고 있는 동안에는 올라가는 중력이 약하게 걸려서</strong> 더 높이 올라가요. 계산식으로 보면 처음 속도는 초당 650px로 같고, 손을 뗀 상태의 중력은 3000, 누르고 있는 동안 올라가는 구간의 중력은 1800이에요. 내려올 때는 누르든 안 누르든 3000이 걸려요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/dino-run-game-tips-1.svg" alt="짧은 점프와 긴 점프의 궤적 비교. 짧은 점프는 높이 약 70px, 0.43초, 화면 156px 이동이고 긴 점프는 약 117px, 0.64초, 231px 이동이다. 작은 선인장 36px과 큰 선인장 50px 높이선이 함께 그려져 있다" width="800" height="450" loading="lazy" decoding="async"><figcaption>점프 궤적 — 시작 속도 기준</figcaption></figure>
<div class="table-wrap"><table><thead><tr><th>점프</th><th>최고 높이</th><th>떠 있는 시간</th><th>그동안 화면이 흘러간 거리 (시작 속도)</th></tr></thead><tbody><tr><td>짧게 톡 (바로 뗌)</td><td>약 70px</td><td>0.43초</td><td>약 156px</td></tr><tr><td>끝까지 누름</td><td>약 117px</td><td>0.64초</td><td>약 231px</td></tr><tr><td>중간에 뗌</td><td>70~117px 사이</td><td>0.43~0.64초</td><td>그 사이</td></tr></tbody></table></div>
<p>공룡 키가 44px이고 작은 선인장이 36px, 큰 선인장이 50px이라서 높이만 보면 짧은 점프로도 모두 넘을 수 있어요. 문제는 <strong>가로 길이</strong>예요. 선인장이 2~3개 붙어 있으면 그 폭 전체를 지나는 동안 공중에 떠 있어야 하는데, 짧은 점프는 그 시간이 모자랄 때가 많아요.</p>
<p>반대로 긴 점프만 쓰면 0.2초씩 더 공중에 있게 되고, 착지하자마자 다음 선인장이 와 있는 상황이 생겨요. 그래서 고득점을 내는 사람은 장애물마다 "짧게냐 길게냐"를 먼저 정하고 뛰어요.</p>
<h2 id="s3">장애물별 점프 타이밍 허용 범위</h2>
<p>같은 장애물이라도 언제 뛰어야 통과하는지에는 허용 범위가 있어요. 게임 물리를 그대로 돌려서, 점프를 누르는 순간을 1/120초씩 바꿔 가며 통과한 경우만 세어 봤어요. 아래 값이 클수록 타이밍이 여유롭다는 뜻이에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">장애물별 점프 타이밍 허용 범위 (시작 속도 초당 360px)</figcaption><div class="viz-legend"><span><i class="s1"></i>짧은 점프</span><span><i class="s2"></i>긴 점프</span></div><svg viewBox="0 0 640 300" role="img" aria-label="장애물별 점프 타이밍 허용 범위 (시작 속도 초당 360px)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="628" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">300</text><line class="viz-grid" x1="52" x2="628" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">400</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">500</text><rect class="s1" x="69.3" y="132.2" width="39.3" height="121.8" rx="3"><title>작은 선인장 1개 · 짧은 점프 258ms</title></rect><rect class="s2" x="110.6" y="29.8" width="39.3" height="224.2" rx="3"><title>작은 선인장 1개 · 긴 점프 475ms</title></rect><text class="viz-ax" x="109.6" y="272" text-anchor="middle">작은 선인장 1개</text><rect class="s1" x="184.5" y="183.2" width="39.3" height="70.8" rx="3"><title>작은 선인장 3개 · 짧은 점프 150ms</title></rect><rect class="s2" x="225.8" y="80.8" width="39.3" height="173.2" rx="3"><title>작은 선인장 3개 · 긴 점프 367ms</title></rect><text class="viz-ax" x="224.8" y="272" text-anchor="middle">작은 선인장 3개</text><rect class="s1" x="299.7" y="167.6" width="39.3" height="86.4" rx="3"><title>큰 선인장 1개 · 짧은 점프 183ms</title></rect><rect class="s2" x="341.0" y="61.4" width="39.3" height="192.6" rx="3"><title>큰 선인장 1개 · 긴 점프 408ms</title></rect><text class="viz-ax" x="340.0" y="272" text-anchor="middle">큰 선인장 1개</text><rect class="s1" x="414.9" y="238.4" width="39.3" height="15.6" rx="3"><title>큰 선인장 3개 · 짧은 점프 33ms</title></rect><rect class="s2" x="456.2" y="132.2" width="39.3" height="121.8" rx="3"><title>큰 선인장 3개 · 긴 점프 258ms</title></rect><text class="viz-ax" x="455.2" y="272" text-anchor="middle">큰 선인장 3개</text><rect class="s1" x="530.1" y="139.8" width="39.3" height="114.2" rx="3"><title>낮은 새 · 짧은 점프 242ms</title></rect><rect class="s2" x="571.4" y="45.4" width="39.3" height="208.6" rx="3"><title>낮은 새 · 긴 점프 442ms</title></rect><text class="viz-ax" x="570.4" y="272" text-anchor="middle">낮은 새</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">큰 선인장 3개 묶음은 짧은 점프로는 0.03초밖에 여유가 없어서 사실상 긴 점프만 통해요.</p><div class="viz-cap">단위: ms · 자료: 스미스 게임 연구소 공룡 달리기 물리값으로 직접 시뮬레이션 (1/120초 간격, 짧은 점프는 누르자마자 뗀 경우)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>짧은 점프</th><th>긴 점프</th></tr></thead><tbody><tr><td>작은 선인장 1개</td><td>258</td><td>475</td></tr><tr><td>작은 선인장 3개</td><td>150</td><td>367</td></tr><tr><td>큰 선인장 1개</td><td>183</td><td>408</td></tr><tr><td>큰 선인장 3개</td><td>33</td><td>258</td></tr><tr><td>낮은 새</td><td>242</td><td>442</td></tr></tbody></table></div></details></figure>
<p>시작 속도에서 보면 <strong>모든 장애물에서 긴 점프 쪽 허용 범위가 더 넓어요.</strong> 특히 큰 선인장 3개 묶음은 짧은 점프로 넘으려면 0.033초 안에 정확히 눌러야 해서 거의 불가능하고, 긴 점프면 0.258초로 여유가 생겨요. 초반에 큰 선인장 묶음에서 자주 죽는다면 "길게 누르기"부터 연습해 보세요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">최고 속도(초당 780px)에서의 점프 타이밍 허용 범위</figcaption><div class="viz-legend"><span><i class="s1"></i>짧은 점프</span><span><i class="s2"></i>긴 점프</span></div><svg viewBox="0 0 640 300" role="img" aria-label="최고 속도(초당 780px)에서의 점프 타이밍 허용 범위" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">300</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">400</text><rect class="s1" x="69.3" y="81.7" width="39.3" height="172.3" rx="3"><title>작은 선인장 1개 · 짧은 점프 292ms</title></rect><rect class="s2" x="110.6" y="28.0" width="39.3" height="226.0" rx="3"><title>작은 선인장 1개 · 긴 점프 383ms</title></rect><text class="viz-ax" x="109.6" y="272" text-anchor="middle">작은 선인장 1개</text><rect class="s1" x="184.5" y="111.2" width="39.3" height="142.8" rx="3"><title>작은 선인장 3개 · 짧은 점프 242ms</title></rect><rect class="s2" x="225.8" y="28.0" width="39.3" height="226.0" rx="3"><title>작은 선인장 3개 · 긴 점프 383ms</title></rect><text class="viz-ax" x="224.8" y="272" text-anchor="middle">작은 선인장 3개</text><rect class="s1" x="299.7" y="121.2" width="39.3" height="132.8" rx="3"><title>큰 선인장 1개 · 짧은 점프 225ms</title></rect><rect class="s2" x="341.0" y="37.5" width="39.3" height="216.5" rx="3"><title>큰 선인장 1개 · 긴 점프 367ms</title></rect><text class="viz-ax" x="340.0" y="272" text-anchor="middle">큰 선인장 1개</text><rect class="s1" x="414.9" y="160.8" width="39.3" height="93.2" rx="3"><title>큰 선인장 3개 · 짧은 점프 158ms</title></rect><rect class="s2" x="456.2" y="37.5" width="39.3" height="216.5" rx="3"><title>큰 선인장 3개 · 긴 점프 367ms</title></rect><text class="viz-ax" x="455.2" y="272" text-anchor="middle">큰 선인장 3개</text><rect class="s1" x="530.1" y="67.0" width="39.3" height="187.0" rx="3"><title>낮은 새 · 짧은 점프 317ms</title></rect><rect class="s2" x="571.4" y="22.7" width="39.3" height="231.3" rx="3"><title>낮은 새 · 긴 점프 392ms</title></rect><text class="viz-ax" x="570.4" y="272" text-anchor="middle">낮은 새</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><div class="viz-cap">단위: ms · 자료: 스미스 게임 연구소 공룡 달리기 물리값으로 직접 시뮬레이션 (1/120초 간격)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>짧은 점프</th><th>긴 점프</th></tr></thead><tbody><tr><td>작은 선인장 1개</td><td>292</td><td>383</td></tr><tr><td>작은 선인장 3개</td><td>242</td><td>383</td></tr><tr><td>큰 선인장 1개</td><td>225</td><td>367</td></tr><tr><td>큰 선인장 3개</td><td>158</td><td>367</td></tr><tr><td>낮은 새</td><td>317</td><td>392</td></tr></tbody></table></div></details></figure>
<p>재밌는 건 최고 속도가 되면 짧은 점프의 허용 범위가 오히려 넓어진다는 점이에요. 장애물이 빨리 지나가니 공중에 떠 있어야 하는 시간 자체가 짧아지기 때문이에요. 대신 장애물이 화면 오른쪽 끝에서 공룡까지 오는 시간이 시작할 때 약 1.4초에서 최고 속도일 땐 약 0.67초로 절반 아래로 줄어서, <strong>판단할 시간이 줄어드는 게 진짜 어려움</strong>이 돼요.</p>
<h2 id="s4">새 피하는 법: 높이를 먼저 보기</h2>
<p>점수 300점(시작 후 약 29초)부터는 장애물 중 약 22%가 새로 나와요. 새가 세 번 연속으로 나오지는 않아요. 새는 높이가 세 가지이고, 땅보다 초당 30px 조금 더 빠르게 다가와요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/dino-run-game-tips-2.svg" alt="새 높이별 대처법. 낮은 새는 바닥에서 4~32px로 점프로 넘고, 가운데 새는 32~60px로 숙이면 지나가며, 높은 새는 72~100px로 서 있는 공룡 머리(44px) 위를 지나가므로 그냥 달리면 된다" width="800" height="450" loading="lazy" decoding="async"><figcaption>새 높이별 대처 — 숙이면 키가 26px로 낮아져요</figcaption></figure>
<div class="table-wrap"><table><thead><tr><th>새 높이</th><th>바닥에서의 높이</th><th>정답</th><th>하면 안 되는 것</th></tr></thead><tbody><tr><td>낮은 새</td><td>4~32px</td><td>점프 (짧게도 충분)</td><td>숙이기 — 숙여도 26px라 닿아요</td></tr><tr><td>가운데 새</td><td>32~60px</td><td>숙이기 (↓ 누르고 있기)</td><td>그냥 서 있기</td></tr><tr><td>높은 새</td><td>72~100px</td><td>아무것도 안 하기</td><td>점프 — 머리를 부딪혀요</td></tr></tbody></table></div>
<p>가장 흔한 실수는 <strong>높은 새에 습관처럼 점프하는 것</strong>이에요. 선인장만 나오던 300점 전까지 "뭔가 보이면 뛴다"는 손버릇이 들어 있어서, 새가 보이는 순간 Space를 눌러 버리는 거죠. 서 있는 공룡의 머리는 44px이고 높은 새는 72px 위를 날아서, 가만히 있으면 머리 위로 지나가요.</p>
<p>가운데 새는 긴 점프로도 넘을 수 있지만(허용 범위 약 0.36초), 숙이기는 새가 다 지나갈 때까지 누르고만 있으면 되니 타이밍 부담이 없어요. 숙였을 때 공룡 키는 26px이고 가운데 새의 가장 낮은 부분이 32px이라 6px 여유로 지나가요. 다만 숙인 채로 선인장을 만나면 바로 부딪히니까, 새가 지나가면 손을 떼는 것까지 한 동작으로 익혀 두세요.</p>
<h2 id="s5">공중에서 ↓ 누르기와 착지 직전 입력</h2>
<p>공중에 떠 있을 때 ↓(모바일은 화면 아래쪽 절반이나 숙이기 버튼)를 누르면 중력이 9000으로 세져서 거의 수직으로 떨어져요. 이걸 <strong>빨리 내려오기</strong>라고 부를게요. 긴 점프를 하고 나서 바로 다음 선인장이 보일 때, 정점을 지나자마자 ↓를 눌러 착지 시점을 앞당기면 다음 점프를 제때 할 수 있어요.</p>
<p>또 하나 알아 두면 좋은 건 <strong>착지하기 0.1초 전에 누른 점프는 기억했다가 땅에 닿는 순간 바로 뛰어 준다</strong>는 점이에요. 그래서 연속 장애물에서는 "땅에 닿은 걸 보고 누르기"보다 "곧 닿겠다 싶을 때 미리 누르기"가 안전해요. 반대로 0.1초보다 일찍 누른 입력은 무시되니 너무 서두르지는 마세요.</p>
<div class="table-wrap"><table><thead><tr><th>상황</th><th>추천 동작</th></tr></thead><tbody><tr><td>큰 선인장 묶음 직후 바로 작은 선인장</td><td>긴 점프 → 정점 지나 ↓ → 착지 직전 짧은 점프</td></tr><tr><td>낮은 새 다음 가운데 새</td><td>짧은 점프 → 착지 후 바로 ↓ 누르고 있기</td></tr><tr><td>가운데 새 다음 선인장</td><td>새가 공룡 몸을 지나면 ↓ 떼고 점프 준비</td></tr><tr><td>높은 새와 선인장이 겹침</td><td>선인장만 보고 짧은 점프 (높은 새 높이까지는 안 올라감)</td></tr></tbody></table></div>
<p>마지막 줄은 조심해야 해요. 짧은 점프의 최고 높이는 발 기준 약 70px이라, 공룡 머리 끝은 70+44=114px까지 올라가요. 높은 새가 72~100px에 있으니 <strong>짧은 점프도 높은 새와 겹치면 부딪혀요.</strong> 높은 새 바로 아래에 선인장이 있으면 새가 먼저 지나간 뒤에 뛰는 게 안전해요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">속도 곡선: 점수 구간별로 무엇이 바뀌나</h2>
<p>속도는 점수가 아니라 <strong>흐른 시간</strong>에 따라 일정하게 올라가요. 1초마다 초당 3.6px씩 빨라지다가 약 117초에 초당 780px로 멈추고, 그 뒤로는 같은 속도예요. 점수는 거리라서 속도가 빨라질수록 더 빨리 올라가요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">시간에 따른 달리기 속도와 점수</figcaption><div class="viz-legend"><span><i class="s1"></i>속도(초당 px)</span><span><i class="s2"></i>점수</span></div><svg viewBox="0 0 640 300" role="img" aria-label="시간에 따른 달리기 속도와 점수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">500</text><line class="viz-grid" x1="52" x2="570" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">1,000</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">1,500</text><line class="viz-grid" x1="52" x2="570" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">2,000</text><line class="viz-grid" x1="52" x2="570" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">2,500</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">3,000</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">0초</text><text class="viz-ax" x="181.5" y="272" text-anchor="middle">40초</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">80초</text><text class="viz-ax" x="440.5" y="272" text-anchor="middle">117초</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">160초</text><polyline class="viz-line s1" points="52.0,225.7 116.8,220.0 181.5,214.4 246.2,208.7 311.0,203.0 375.8,197.4 440.5,192.6 505.2,192.6 570.0,192.6"/><circle class="viz-dot s1" cx="52.0" cy="225.7" r="4"><title>0초 · 속도(초당 px) 360초당 px / 점</title></circle><circle class="viz-dot s1" cx="116.8" cy="220.0" r="4"><title>20초 · 속도(초당 px) 432초당 px / 점</title></circle><circle class="viz-dot s1" cx="181.5" cy="214.4" r="4"><title>40초 · 속도(초당 px) 504초당 px / 점</title></circle><circle class="viz-dot s1" cx="246.2" cy="208.7" r="4"><title>60초 · 속도(초당 px) 576초당 px / 점</title></circle><circle class="viz-dot s1" cx="311.0" cy="203.0" r="4"><title>80초 · 속도(초당 px) 648초당 px / 점</title></circle><circle class="viz-dot s1" cx="375.8" cy="197.4" r="4"><title>100초 · 속도(초당 px) 720초당 px / 점</title></circle><circle class="viz-dot s1" cx="440.5" cy="192.6" r="4"><title>117초 · 속도(초당 px) 780초당 px / 점</title></circle><circle class="viz-dot s1" cx="505.2" cy="192.6" r="4"><title>140초 · 속도(초당 px) 780초당 px / 점</title></circle><circle class="viz-dot s1" cx="570.0" cy="192.6" r="4"><title>160초 · 속도(초당 px) 780초당 px / 점</title></circle><text class="viz-val" x="578.0" y="196.6">780</text><polyline class="viz-line s2" points="52.0,254.0 116.8,238.4 181.5,220.0 246.2,198.8 311.0,174.7 375.8,147.8 440.5,123.2 505.2,87.4 570.0,56.7"/><circle class="viz-dot s2" cx="52.0" cy="254.0" r="4"><title>0초 · 점수 0초당 px / 점</title></circle><circle class="viz-dot s2" cx="116.8" cy="238.4" r="4"><title>20초 · 점수 198초당 px / 점</title></circle><circle class="viz-dot s2" cx="181.5" cy="220.0" r="4"><title>40초 · 점수 432초당 px / 점</title></circle><circle class="viz-dot s2" cx="246.2" cy="198.8" r="4"><title>60초 · 점수 702초당 px / 점</title></circle><circle class="viz-dot s2" cx="311.0" cy="174.7" r="4"><title>80초 · 점수 1,008초당 px / 점</title></circle><circle class="viz-dot s2" cx="375.8" cy="147.8" r="4"><title>100초 · 점수 1,350초당 px / 점</title></circle><circle class="viz-dot s2" cx="440.5" cy="123.2" r="4"><title>117초 · 점수 1,663초당 px / 점</title></circle><circle class="viz-dot s2" cx="505.2" cy="87.4" r="4"><title>140초 · 점수 2,118초당 px / 점</title></circle><circle class="viz-dot s2" cx="570.0" cy="56.7" r="4"><title>160초 · 점수 2,508초당 px / 점</title></circle><text class="viz-val" x="578.0" y="60.7">2,508</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><div class="viz-cap">단위: 초당 px / 점 · 자료: 스미스 게임 연구소 공룡 달리기 속도 공식(초당 360 + 3.6×경과 초, 최대 780)과 점수(40px당 1점)로 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>속도(초당 px)</th><th>점수</th></tr></thead><tbody><tr><td>0초</td><td>360</td><td>0</td></tr><tr><td>20초</td><td>432</td><td>198</td></tr><tr><td>40초</td><td>504</td><td>432</td></tr><tr><td>60초</td><td>576</td><td>702</td></tr><tr><td>80초</td><td>648</td><td>1,008</td></tr><tr><td>100초</td><td>720</td><td>1,350</td></tr><tr><td>117초</td><td>780</td><td>1,663</td></tr><tr><td>140초</td><td>780</td><td>2,118</td></tr><tr><td>160초</td><td>780</td><td>2,508</td></tr></tbody></table></div></details></figure>
<div class="table-wrap"><table><thead><tr><th>점수</th><th>도달 시간(대략)</th><th>바뀌는 것</th></tr></thead><tbody><tr><td>0점</td><td>0초</td><td>초당 360px, 선인장만 나옴</td></tr><tr><td>300점</td><td>약 29초</td><td>새 등장 시작</td></tr><tr><td>700점</td><td>약 60초</td><td>첫 밤 (화면 색 반전)</td></tr><tr><td>1,400점</td><td>약 103초</td><td>다시 낮</td></tr><tr><td>약 1,660점</td><td>약 117초</td><td>최고 속도 초당 780px 도달</td></tr><tr><td>2,100점</td><td>약 139초</td><td>두 번째 밤</td></tr></tbody></table></div>
<p>이 표를 보면 <strong>300~700점 구간이 가장 위험</strong>하다는 게 보여요. 새가 처음 섞이기 시작하는데 속도도 꾸준히 오르고 있어서, 손에 익은 리듬이 계속 바뀌거든요. 반대로 117초를 넘기면 속도가 더 이상 변하지 않아서, 그 리듬에 한 번 적응하면 오히려 안정적으로 점수를 쌓을 수 있어요.</p>
<h2 id="s7">장애물 간격과 리듬 읽기</h2>
<p>다음 장애물까지의 빈 간격은 무작위지만 범위가 정해져 있어요. 앞 장애물 끝에서 다음 장애물 시작까지 <strong>"현재 속도 × 0.75~1.35초 + 60px"</strong> 이에요. 시간으로 바꾸면 대략 0.8초에서 1.5초 사이마다 장애물이 하나씩 온다는 뜻이에요.</p>
<p>긴 점프가 0.64초니까, 가장 촘촘한 간격에서도 긴 점프 한 번 뒤에 다시 뛸 시간은 남아 있어요. 다만 그 여유가 0.1~0.2초 정도라서, 긴 점프를 남발하면 연속 장애물에서 착지가 늦어 걸리기 쉬워요. <strong>"작은 건 짧게, 큰 묶음만 길게"</strong> 라는 원칙이 여기서 나와요.</p>
<p>큰 선인장 3개 묶음은 속도가 초당 500px을 넘은 뒤(시작 후 약 39초)부터만 나와요. 그전에는 큰 선인장이 최대 2개까지만 붙어 나오니, 초반에 큰 묶음이 보이면 긴 점프 한 번이면 충분해요.</p>
<h2 id="s8">낮과 밤 전환, 집중력 유지하기</h2>
<p>700점이 되면 1초에 걸쳐 화면 색이 반전되고 달과 별이 떠요. 1,400점에 다시 낮으로 돌아오고, 그 뒤로도 700점마다 바뀌어요. 판정이나 속도는 그대로지만, 색이 바뀌는 1초 동안 장애물 윤곽이 잠깐 흐려 보일 수 있어요.</p>
<p>이런 상황에서 실수를 줄이는 요령을 정리하면 이래요.</p>
<ul><li><strong>시선은 공룡 바로 앞 1/3 지점</strong>에 두기. 점수판이나 오른쪽 끝을 보면 반응이 늦어요.</li><li><strong>점수가 700의 배수에 가까워지면</strong> 색이 바뀔 걸 미리 알고 있기. 놀라서 손이 멈추는 걸 막을 수 있어요.</li><li><strong>한 판이 끝나면 바로 다시 시작</strong>하기. 게임 오버 후 0.45초가 지나면 Space나 탭 한 번으로 바로 새 판이 시작돼서, 리듬 감각이 식기 전에 반복할 수 있어요.</li><li>다른 창이나 탭으로 가면 자동으로 일시정지되니, 알림이 와도 판을 잃지 않아요.</li></ul>
<p>반응 속도 자체가 궁금하다면 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>로 내 평균 반응 시간을 재 보고, <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응속도 평균과 높이는 법</a> 글을 함께 보면 좋아요. 장애물이 화면 끝에서 공룡까지 오는 데 최고 속도 기준 약 0.67초라, 평균 반응 시간(보통 0.2~0.3초)을 빼면 판단에 쓸 수 있는 시간은 0.4초 남짓이에요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s9">모바일에서 공룡 게임 하는 법</h2>
<p>모바일에서는 게임 화면의 <strong>위쪽 절반을 탭하면 점프, 아래쪽 절반을 누르고 있으면 숙이기</strong>예요. 화면 아래에 큰 점프·숙이기 버튼도 있어서, 양손 엄지로 왼쪽은 숙이기, 오른쪽은 점프를 맡기면 편해요. 점프는 누르고 있는 시간만큼 높아지니 버튼에서 손을 바로 떼면 짧은 점프, 꾹 누르면 긴 점프예요.</p>
<p>마우스로 할 때는 게임 화면 어디를 클릭해도 점프예요. 숙이기는 키보드 ↓나 숙이기 버튼을 쓰면 돼요. 물리는 1/120초 고정 간격으로 계산해서, 60Hz 화면이든 120Hz 화면이든 속도와 점프 높이가 똑같아요. 화면이 부드러운 기기라고 유리하거나 불리하지 않아요.</p>
<h2 id="s10">자주 묻는 질문</h2>
<h3>크롬 공룡 게임과 같은 게임인가요?</h3>
<p>아니에요. 인터넷이 끊겼을 때 크롬에 나오는 공룡 게임(<code>chrome://dino</code>)에서 아이디어를 얻었지만, 스미스 게임 연구소 공룡 달리기는 그림과 코드, 속도·점수 규칙을 직접 만든 별도 게임이에요. 그래서 이 글의 숫자도 스미스 게임 연구소 버전 기준이고, 인터넷이 연결된 상태에서도 언제든 할 수 있어요.</p>
<h3>점프를 길게 누르면 왜 더 높이 뛰나요?</h3>
<p>누르는 순간의 힘은 같지만, 누르고 있는 동안 올라가는 구간의 중력이 3000에서 1800으로 약해지기 때문이에요. 그래서 짧게 치면 약 70px·0.43초, 끝까지 누르면 약 117px·0.64초 동안 떠 있어요. 내려올 때는 똑같이 떨어져요.</p>
<h3>높은 새에 점프했는데 왜 죽나요?</h3>
<p>높은 새는 바닥에서 72~100px 높이를 날아서, 서 있는 공룡(44px) 머리 위로 그냥 지나가요. 그런데 점프하면 짧은 점프여도 머리 끝이 약 114px까지 올라가서 새와 겹쳐요. 높은 새는 아무것도 하지 않는 게 정답이에요.</p>
<h3>몇 점부터 어려워지나요?</h3>
<p>300점(약 29초)부터 새가 나오고 속도도 계속 오르는 300~700점 구간이 가장 어려워요. 약 1,660점(117초)에서 최고 속도에 도달하면 속도가 더 변하지 않아 리듬이 고정돼요.</p>
<h3>최고 점수는 어디에 저장되나요?</h3>
<p>최고 점수와 판 수가 이 브라우저 쿠키에만 저장되고 서버로 보내지 않아요. 다른 기기나 브라우저에서는 따로 기록돼요.</p>
<h2 id="s11">정리</h2>
<p>공룡 게임 고득점은 세 가지로 요약돼요. 첫째, <strong>작은 선인장은 짧게, 큰 선인장 묶음은 길게</strong> 뛰어서 공중에 있는 시간을 필요한 만큼만 쓰기. 둘째, 300점부터 나오는 <strong>새는 높이부터 보고</strong> 낮으면 점프, 가운데면 숙이기, 높으면 가만히 있기. 셋째, 공중에서 ↓로 빨리 내려오기와 착지 0.1초 전 미리 누르기로 연속 장애물 리듬 맞추기예요.</p>
<p>이제 <a href="https://game.smithlab.co.kr/games/dino-run/">공룡 달리기</a>에서 300점의 벽부터 넘어 보세요. 비슷하게 순발력을 쓰는 <a href="https://game.smithlab.co.kr/games/snake/">스네이크</a>는 <a href="https://game.smithlab.co.kr/posts/games/snake-game-strategy-high-score/">스네이크 게임 고득점 전략</a>을, 블록을 쌓는 게임이 좋다면 <a href="https://game.smithlab.co.kr/posts/games/tetris-tips-tspin-scoring/">테트리스 잘하는 법</a>을 함께 읽어 보세요.</p>
    ]]></description>
    </item>
    <item>
      <title>플래피 버드 잘하는 법, 탭 리듬과 틈 아래쪽 노리기로 메달 따기</title>
      <link>https://game.smithlab.co.kr/posts/games/flappy-ghost-game-tips/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/flappy-ghost-game-tips/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>플래피 버드 같은 게임을 하면 대부분 5점 안팎에서 계속 끝나요. 결론부터 말하면 <strong>플래피 스타일 게임은 빨리 누르는 게임이 아니라 "일정한 간격으로, 틈의 아래쪽에서" 누르는 게임이에요. 스미스 게임 연구소 <a href="https://game.smithlab.co.kr/games/flappy-ghost/">날아라 유령</a> 기준으로 한 번 누르면 유령이 약 63px 떠올랐다가 0.58초 뒤 정확히 누른 높이로 돌아오고, 틈 가운데에서 누르면 위 장애물에 18px 부딪히지만 틈 바닥 근처에서 누르면 17px 여유가 남아요.</strong> 이 두 숫자만 몸에 익히면 첫 메달인 10점은 금방이에요.</p>
<p>이 글은 날아라 유령의 실제 물리값(중력, 날아오르는 속도, 틈 높이, 이동 속도)과 판정 크기로 직접 계산한 숫자를 기준으로 정리했어요. 2013년에 유행한 플래피 버드에서 아이디어를 얻은 원 버튼 게임이라 감각은 비슷하지만, 캐릭터와 장애물, 수치는 스미스 게임 연구소가 직접 만든 별도 게임이에요. 그래서 아래 숫자는 날아라 유령 기준이고, 다른 플래피 게임과는 세부 값이 다를 수 있어요. 다만 "누르면 일정 속도로 튀어 오르고 중력으로 떨어진다"는 구조는 같아서, 리듬과 위치를 잡는 요령은 어느 게임에나 그대로 통해요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>한 번 누르면 위로 초당 440px 속도가 생기고 중력은 초당 1,500px²이에요. 0.29초 동안 약 63px 올라갔다가 0.58초에 원래 높이로 돌아와요.</li><li>같은 높이를 유지하려면 약 0.58초에 한 번, 1초에 1.7번쯤 누르면 돼요. 0.3초마다 누르면 한 번에 63px씩 계속 올라가요.</li><li>틈의 아래쪽 절반에서 누르는 게 기본이에요. 가장 좁은 틈(120px)에서도 바닥 끝 10px 위에서 누르면 꼭대기에서 위 장애물까지 17px이 남아요.</li><li>틈은 150px에서 1점마다 0.75px씩 줄어 40점에 120px로 고정되고, 속도는 초당 150px에서 50점에 190px로 고정돼요. 동메달 10점까지 약 16초, 금메달 40점까지 약 55초가 걸려요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">플래피 게임 기본 규칙과 점수</h2>
<p>날아라 유령은 화면을 탭하거나 Space를 누를 때마다 유령이 한 번 날아오르는 게임이에요. 손을 떼고 있으면 중력 때문에 떨어지고, 오른쪽에서 다가오는 장애물(서버 랙, 코드 블록, 터미널 창) 사이의 틈을 지나가야 해요. 세 가지 장애물은 겉모습만 다르고 판정은 모두 같은 직사각형이에요.</p>
<div class="table-wrap"><table><thead><tr><th>항목</th><th>날아라 유령 값</th></tr></thead><tbody><tr><td>점수</td><td>틈 하나 지날 때마다 1점</td></tr><tr><td>메달</td><td>10점 동메달, 20점 은메달, 40점 금메달</td></tr><tr><td>날아오르는 속도</td><td>누르는 순간 위로 초당 440px</td></tr><tr><td>중력</td><td>초당 1,500px²</td></tr><tr><td>최대 낙하 속도</td><td>초당 560px</td></tr><tr><td>판정 원</td><td>지름 30px (유령 그림은 52px)</td></tr><tr><td>장애물 너비·간격</td><td>너비 62px, 220px마다 하나</td></tr><tr><td>게임 오버</td><td>바닥(키보드) 또는 장애물에 닿을 때</td></tr></tbody></table></div>
<p>점수는 장애물 가운데를 지나는 순간 올라가요. 화면 맨 위에 닿는 건 게임 오버가 아니고, 그 자리에서 더 못 올라갈 뿐이에요. 그래도 위에 붙어 있으면 다음 틈이 낮게 나왔을 때 내려가는 데 시간이 걸리니 좋은 자리는 아니에요.</p>
<p>중요한 건 <strong>길게 누르는 게 아무 의미가 없다</strong>는 점이에요. 누르는 순간 속도가 초당 440px 위쪽으로 "바뀔" 뿐이라, 0.1초를 누르든 1초를 누르든 똑같아요. 조절할 수 있는 건 누르는 횟수와 타이밍뿐이에요. 그래서 이 게임의 실력은 결국 "언제 누르느냐" 하나로 정리돼요.</p>
<h2 id="s2">한 번 누르면 얼마나 오르나: 탭 한 번의 궤적</h2>
<p>누르는 순간 위로 초당 440px로 출발하고, 중력이 1초에 1,500px/s씩 속도를 깎아요. 그러면 올라가는 속도가 0이 되는 데 440 ÷ 1,500 = 약 0.29초가 걸리고, 그동안 올라가는 높이는 공식으로 440² ÷ (2 × 1,500) = 약 64.5px이에요. 실제 게임은 1/120초 간격으로 나눠 계산하기 때문에 직접 시뮬레이션하면 <strong>약 62.7px</strong>이 나와서, 이 글에서는 63px로 쓸게요.</p>
<p>꼭대기를 찍고 나면 같은 시간 동안 같은 길을 되짚어 떨어지기 때문에, <strong>누른 지 약 0.58초 뒤에 정확히 누른 높이로 돌아와요.</strong> 그 뒤로는 계속 떨어지면서 점점 빨라지고, 누르고 나서 0.67초가 지나면 최대 낙하 속도인 초당 560px에 도달해요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/flappy-ghost-game-tips-1.svg" alt="한 번 누를 때 유령이 그리는 궤적. 0.29초에 약 63px 높이의 꼭대기에 닿고 0.58초 뒤 누른 높이로 돌아오며 그동안 앞으로 약 87px 이동한다. 0.3초마다 누르면 한 번에 63px 상승, 0.58초마다 누르면 높이 유지, 0.7초마다 누르면 한 번에 44px 하강" width="800" height="450" loading="lazy" decoding="async"><figcaption>탭 한 번의 궤적 — 시작 속도 기준</figcaption></figure>
<p>이 0.58초 동안 화면은 시작 속도(초당 150px) 기준으로 약 87px 흘러가요. 장애물 간격이 220px이니, <strong>장애물 하나를 지나는 사이에 대략 2.5번 누르는 셈</strong>이에요. 속도가 최고(초당 190px)가 되면 같은 0.58초에 110px가 흘러가서 장애물 하나당 2번 정도로 줄어요.</p>
<h2 id="s3">누르는 간격별 높이 변화: 리듬이 전부예요</h2>
<p>일정한 간격으로 계속 누를 때 한 번 누를 때마다 높이가 얼마나 바뀌는지 게임과 같은 방식(1/120초 단위)으로 계산해 봤어요. 플러스는 올라감, 마이너스는 내려감이에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">누르는 간격별 탭 한 번당 높이 변화</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="누르는 간격별 탭 한 번당 높이 변화" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">-50</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">-17.5</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">15</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">47.5</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">80</text><rect class="s1" x="66.4" y="50.7" width="67.2" height="112.6" rx="3"><title>0.25초 · 높이 변화 62px</title></rect><text class="viz-val" x="100.0" y="45.7" text-anchor="middle">62</text><text class="viz-ax" x="100.0" y="272" text-anchor="middle">0.25초</text><rect class="s1" x="162.4" y="48.9" width="67.2" height="114.4" rx="3"><title>0.3초 · 높이 변화 63px</title></rect><text class="viz-val" x="196.0" y="43.9" text-anchor="middle">63</text><text class="viz-ax" x="196.0" y="272" text-anchor="middle">0.3초</text><rect class="s1" x="258.4" y="57.9" width="67.2" height="105.3" rx="3"><title>0.4초 · 높이 변화 58px</title></rect><text class="viz-val" x="292.0" y="52.9" text-anchor="middle">58</text><text class="viz-ax" x="292.0" y="272" text-anchor="middle">0.4초</text><rect class="s1" x="354.4" y="108.8" width="67.2" height="54.5" rx="3"><title>0.5초 · 높이 변화 30px</title></rect><text class="viz-val" x="388.0" y="103.8" text-anchor="middle">30</text><text class="viz-ax" x="388.0" y="272" text-anchor="middle">0.5초</text><rect class="s1" x="450.4" y="163.2" width="67.2" height="0.5" rx="3"><title>0.58초 · 높이 변화 0px</title></rect><text class="viz-val" x="484.0" y="158.2" text-anchor="middle">0</text><text class="viz-ax" x="484.0" y="272" text-anchor="middle">0.58초</text><rect class="s1" x="546.4" y="163.2" width="67.2" height="79.9" rx="3"><title>0.7초 · 높이 변화 -44px</title></rect><text class="viz-val" x="580.0" y="158.2" text-anchor="middle">-44</text><text class="viz-ax" x="580.0" y="272" text-anchor="middle">0.7초</text><line class="viz-base" x1="52" x2="628" y1="163.2" y2="163.2"/></svg><p class="viz-note">0.58초 간격이면 높이가 그대로 유지돼요</p><div class="viz-cap">단위: px · 자료: 날아라 유령 물리값(위로 초당 440px, 중력 초당 1500px²)으로 1/120초 단위 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>높이 변화</th></tr></thead><tbody><tr><td>0.25초</td><td>62</td></tr><tr><td>0.3초</td><td>63</td></tr><tr><td>0.4초</td><td>58</td></tr><tr><td>0.5초</td><td>30</td></tr><tr><td>0.58초</td><td>0</td></tr><tr><td>0.7초</td><td>-44</td></tr></tbody></table></div></details></figure>
<p>표로 보면 재밌는 점이 있어요. 0.25초마다 누르든 0.3초마다 누르든 한 번에 오르는 높이는 62~63px로 거의 같아요. 빨리 누를수록 1초에 오르는 높이는 커지지만(0.25초 간격이면 1초에 약 247px), <strong>한 번 누를 때 오르는 높이는 63px를 넘지 못해요.</strong> 반대로 0.58초보다 늦게 누르면 내려가기 시작하고, 0.7초 간격이면 한 번에 44px씩 가라앉아요.</p>
<div class="table-wrap"><table><thead><tr><th>누르는 간격</th><th>1초에 누르는 횟수</th><th>탭 한 번당</th><th>1초 동안</th></tr></thead><tbody><tr><td>0.25초</td><td>4번</td><td>62px 상승</td><td>약 247px 상승</td></tr><tr><td>0.3초</td><td>약 3.3번</td><td>63px 상승</td><td>약 210px 상승</td></tr><tr><td>0.4초</td><td>2.5번</td><td>58px 상승</td><td>약 145px 상승</td></tr><tr><td>0.5초</td><td>2번</td><td>30px 상승</td><td>약 61px 상승</td></tr><tr><td>0.58초</td><td>약 1.7번</td><td>높이 유지</td><td>거의 0</td></tr><tr><td>0.7초</td><td>약 1.4번</td><td>44px 하강</td><td>약 63px 하강</td></tr></tbody></table></div>
<p>이 표가 말해 주는 건 <strong>같은 높이로 날고 싶으면 생각보다 훨씬 천천히 눌러야 한다</strong>는 거예요. 처음 하는 사람은 대부분 초당 3~4번씩 연타해서 천장까지 솟았다가, 겁이 나서 손을 놓고 바닥으로 떨어지는 걸 반복해요. "하나, 둘" 하고 박자를 세는 정도(1초에 1.7번)가 수평 비행이에요. 올라가야 할 땐 간격을 조금 좁히고, 내려가야 할 땐 한 박자 쉬는 식으로 조절하면 돼요.</p>
<h2 id="s4">틈의 아래쪽 절반을 노려야 하는 이유</h2>
<p>플래피 게임 공략에서 가장 많이 듣는 말이 "틈 아래쪽을 노려라"인데, 숫자로 보면 이유가 분명해요. 누르면 위로만 튀어 오르고, 내려가는 건 중력으로 천천히 시작하거든요. 위험한 순간은 누른 직후 63px 솟구칠 때예요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/flappy-ghost-game-tips-2.svg" alt="틈 120px에서 아래쪽 절반을 노리는 이유. 틈 바닥 끝 10px 위에서 누르면 63px 위 꼭대기에서도 위 장애물까지 17px 여유가 남지만, 틈 가운데에서 누르면 위쪽 여유 45px에서 63px 올라 18px 부딪힌다" width="800" height="520" loading="lazy" decoding="async"><figcaption>가장 좁은 틈 120px에서의 계산</figcaption></figure>
<p>가장 좁은 틈인 120px로 계산해 볼게요. 유령의 판정 원은 지름 30px이라, 틈 안에서 원의 중심이 움직일 수 있는 범위는 120 − 30 = 90px이에요.</p>
<ul><li><strong>틈 가운데에서 누르면</strong>: 원의 위쪽 끝에서 위 장애물까지 45px 남아 있는데, 63px를 솟구치니 18px 부딪혀요.</li><li><strong>틈 바닥 끝에서 10px 위(원 아래쪽 끝 기준)에서 누르면</strong>: 63px 올라가도 위 장애물까지 17px이 남아요.</li><li>반대로 너무 아래에서 버티다 누르는 걸 놓치면 그대로 아래 장애물에 닿아요. 그래서 "틈 아래쪽 4분의 1~절반 사이"가 실제로 편한 자리예요.</li></ul>
<p>시작할 때 틈은 150px이라 원이 움직일 수 있는 범위가 120px이에요. 이때는 가운데에서 눌러도 63px − 60px = 3px 차이로 아슬아슬하게 부딪히는 수준이라, 처음부터 아래쪽 절반을 노리는 습관을 들여 두면 틈이 좁아져도 그대로 통해요.</p>
<h2 id="s5">장애물 사이를 지나는 시간과 타이밍</h2>
<p>장애물 너비는 62px이고 판정 원 지름이 30px이니, 유령이 장애물 기둥과 겹치는 구간은 62 + 30 = 92px이에요. 이 구간을 지나는 데 시작 속도에서 0.61초, 최고 속도에서 0.48초가 걸려요.</p>
<div class="table-wrap"><table><thead><tr><th>점수</th><th>틈 높이</th><th>이동 속도(초당)</th><th>장애물 사이 시간</th><th>기둥 통과 시간</th></tr></thead><tbody><tr><td>0점</td><td>150px</td><td>150px</td><td>1.47초</td><td>0.61초</td></tr><tr><td>10점</td><td>142.5px</td><td>158px</td><td>1.39초</td><td>0.58초</td></tr><tr><td>20점</td><td>135px</td><td>166px</td><td>1.33초</td><td>0.55초</td></tr><tr><td>30점</td><td>127.5px</td><td>174px</td><td>1.26초</td><td>0.53초</td></tr><tr><td>40점</td><td>120px</td><td>182px</td><td>1.21초</td><td>0.51초</td></tr><tr><td>50점 이후</td><td>120px</td><td>190px</td><td>1.16초</td><td>0.48초</td></tr></tbody></table></div>
<p>기둥 통과 시간이 0.48~0.61초라는 건, <strong>기둥 안에서 누르는 건 많아야 한 번</strong>이라는 뜻이에요. 0.58초에 한 번 누르는 수평 비행 리듬과 거의 같은 길이거든요. 그래서 기둥 바로 앞(유령이 기둥 왼쪽 끝에 닿기 직전)에서 틈 아래쪽에 맞춰 한 번 누르면, 그 탭의 포물선 하나로 기둥을 통째로 지나갈 수 있어요. 기둥 안에서 허둥지둥 두세 번 누르는 게 가장 흔한 사망 원인이에요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">점수에 따른 틈 높이와 이동 속도</figcaption><div class="viz-legend"><span><i class="s1"></i>틈 높이</span><span><i class="s2"></i>초당 이동 속도</span></div><svg viewBox="0 0 640 300" role="img" aria-label="점수에 따른 틈 높이와 이동 속도" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">150</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">200</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">0점</text><text class="viz-ax" x="138.3" y="272" text-anchor="middle">10점</text><text class="viz-ax" x="224.7" y="272" text-anchor="middle">20점</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">30점</text><text class="viz-ax" x="397.3" y="272" text-anchor="middle">40점</text><text class="viz-ax" x="483.7" y="272" text-anchor="middle">50점</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">60점</text><polyline class="viz-line s1" points="52.0,77.0 138.3,85.8 224.7,94.7 311.0,103.5 397.3,112.4 483.7,112.4 570.0,112.4"/><circle class="viz-dot s1" cx="52.0" cy="77.0" r="4"><title>0점 · 틈 높이 150px</title></circle><circle class="viz-dot s1" cx="138.3" cy="85.8" r="4"><title>10점 · 틈 높이 142px</title></circle><circle class="viz-dot s1" cx="224.7" cy="94.7" r="4"><title>20점 · 틈 높이 135px</title></circle><circle class="viz-dot s1" cx="311.0" cy="103.5" r="4"><title>30점 · 틈 높이 128px</title></circle><circle class="viz-dot s1" cx="397.3" cy="112.4" r="4"><title>40점 · 틈 높이 120px</title></circle><circle class="viz-dot s1" cx="483.7" cy="112.4" r="4"><title>50점 · 틈 높이 120px</title></circle><circle class="viz-dot s1" cx="570.0" cy="112.4" r="4"><title>60점 · 틈 높이 120px</title></circle><text class="viz-val" x="578.0" y="116.4">120</text><polyline class="viz-line s2" points="52.0,77.0 138.3,67.6 224.7,58.1 311.0,48.7 397.3,39.2 483.7,29.8 570.0,29.8"/><circle class="viz-dot s2" cx="52.0" cy="77.0" r="4"><title>0점 · 초당 이동 속도 150px</title></circle><circle class="viz-dot s2" cx="138.3" cy="67.6" r="4"><title>10점 · 초당 이동 속도 158px</title></circle><circle class="viz-dot s2" cx="224.7" cy="58.1" r="4"><title>20점 · 초당 이동 속도 166px</title></circle><circle class="viz-dot s2" cx="311.0" cy="48.7" r="4"><title>30점 · 초당 이동 속도 174px</title></circle><circle class="viz-dot s2" cx="397.3" cy="39.2" r="4"><title>40점 · 초당 이동 속도 182px</title></circle><circle class="viz-dot s2" cx="483.7" cy="29.8" r="4"><title>50점 · 초당 이동 속도 190px</title></circle><circle class="viz-dot s2" cx="570.0" cy="29.8" r="4"><title>60점 · 초당 이동 속도 190px</title></circle><text class="viz-val" x="578.0" y="33.8">190</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">40점 이후 틈은 그대로, 50점 이후 속도도 그대로예요</p><div class="viz-cap">단위: px · 자료: 날아라 유령 난이도 공식(틈 150-0.75×점수 최소 120, 속도 150+0.8×점수 최대 190)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>틈 높이</th><th>초당 이동 속도</th></tr></thead><tbody><tr><td>0점</td><td>150</td><td>150</td></tr><tr><td>10점</td><td>142</td><td>158</td></tr><tr><td>20점</td><td>135</td><td>166</td></tr><tr><td>30점</td><td>128</td><td>174</td></tr><tr><td>40점</td><td>120</td><td>182</td></tr><tr><td>50점</td><td>120</td><td>190</td></tr><tr><td>60점</td><td>120</td><td>190</td></tr></tbody></table></div></details></figure>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">높이 차가 큰 구간 넘기기</h2>
<p>다음 틈은 앞 틈보다 최대 160px까지 높거나 낮게 나와요. 장애물 사이 시간이 1.16~1.47초이니 손이 못 따라갈 정도는 아니지만, 미리 준비하지 않으면 늦어요.</p>
<ul><li><strong>다음 틈이 크게 낮을 때</strong>: 그냥 손을 놓으면 돼요. 정지 상태에서 떨어지기 시작하면 100px를 내려가는 데 약 0.37초, 150px는 약 0.46초가 걸려요. 기둥을 빠져나오자마자 한 박자 쉬고, 다음 틈 바닥 근처에서 다시 리듬을 잡으세요.</li><li><strong>다음 틈이 크게 높을 때</strong>: 0.3~0.4초 간격으로 2~3번 누르면 120~190px 올라가요. 단, 마지막 탭은 반드시 틈 아래쪽 절반에서 끝나야 해요. 마지막 탭이 너무 높으면 위 장애물에 부딪혀요.</li><li><strong>올라갈 땐 일찍, 내려갈 땐 늦게</strong>: 올라가는 건 탭으로 바로 되지만, 내려가는 건 중력에 맡겨야 해서 가속에 시간이 걸려요. 내려가야 하는 구간에서는 기둥을 빠져나오는 순간부터 손을 쉬게 하는 게 좋아요.</li></ul>
<h2 id="s7">메달까지 걸리는 시간과 집중력</h2>
<p>점수는 장애물 하나에 1점이고, 속도가 조금씩 빨라지니 메달까지 걸리는 시간도 계산할 수 있어요. 첫 장애물은 시작 위치에서 약 2.8초 뒤에 지나가고, 그 뒤로 220px마다 1점이에요.</p>
<div class="table-wrap"><table><thead><tr><th>목표</th><th>걸리는 시간(실수 없이)</th><th>대략 탭 수(0.58초에 1번)</th></tr></thead><tbody><tr><td>동메달 10점</td><td>약 15.6초</td><td>약 27번</td></tr><tr><td>은메달 20점</td><td>약 29.2초</td><td>약 50번</td></tr><tr><td>금메달 40점</td><td>약 54.6초</td><td>약 94번</td></tr><tr><td>50점</td><td>약 66.5초</td><td>약 115번</td></tr></tbody></table></div>
<p>금메달까지 약 1분이에요. 그동안 90번 넘게 같은 리듬으로 눌러야 하니, 실력보다 집중력이 먼저 바닥나기 쉬워요. 20~30점 근처에서 갑자기 죽는다면 손이 굳었다기보다 리듬이 빨라졌을 가능성이 커요. 긴장하면 누르는 간격이 짧아지고, 그러면 위로 솟아 위 장애물에 부딪혀요. 그럴 땐 일부러 "하나, 둘" 박자를 입으로 세 보세요.</p>
<h2 id="s8">판정이 그림보다 작다는 걸 이용하기</h2>
<p>유령 그림은 52px이지만 부딪힘 판정은 지름 30px짜리 원이에요. 헤드폰, 노트북, 옷자락 끝이 장애물에 살짝 겹쳐 보여도 원 안쪽만 닿지 않으면 괜찮아요. 판정이 원이라 장애물 모서리를 비스듬히 스칠 때 특히 관대해요.</p>
<p>반대로 이걸 모르고 "그림이 닿을 것 같은" 순간에 놀라서 한 번 더 누르면, 그 탭 때문에 진짜로 위에 부딪혀요. 겹쳐 보일 때는 손을 그대로 두는 게 정답인 경우가 많아요. 몇 판 해 보면서 "이 정도 겹쳐도 산다"는 감을 잡아 두면 좁은 틈에서 훨씬 차분해져요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s9">모바일과 PC에서 플래피 게임 하는 법</h2>
<ul><li><strong>모바일</strong>: 게임 화면 아무 곳이나 탭하면 돼요. 화면 아래쪽, 엄지가 편한 자리에 손가락을 두고 톡톡 치는 게 좋아요. 게임 중에는 화면이 스크롤되지 않게 막아 뒀어요.</li><li><strong>PC</strong>: Space, ↑, W, Enter, 마우스 클릭 모두 같아요. 키를 꾹 누르고 있어도 반복 입력은 무시돼서, 한 번 누를 때 한 번만 날아요.</li><li><strong>화면 주사율</strong>: 물리를 1/120초 고정 간격으로 계산해서 60Hz든 120Hz든 같은 높이로 날아요. 주사율 때문에 기록이 달라지지 않아요.</li><li><strong>일시정지</strong>: 다른 앱이나 탭으로 가면 자동으로 멈춰요. P나 Esc로 직접 멈출 수도 있어요.</li><li><strong>바로 다시 하기</strong>: 게임 오버 후 0.55초가 지나면 탭이나 Space로 바로 새 판이 시작돼요. 실수로 연타하다 다음 판이 시작되지 않도록 잠깐 기다리게 해 뒀어요.</li></ul>
<p>리듬 게임 감각을 키우고 싶다면 <a href="https://game.smithlab.co.kr/games/dino-run/">공룡 달리기</a>도 좋은 연습이 돼요. 점프 길이를 조절하는 요령은 <a href="https://game.smithlab.co.kr/posts/games/dino-run-game-tips/">공룡 게임 잘하는 법</a>에 정리해 뒀고, 손이 늦는 것 같다면 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>로 내 반응 시간을 먼저 재 보는 것도 방법이에요.</p>
<h2 id="s10">자주 묻는 질문</h2>
<h3>플래피 버드에서 왜 자꾸 위에 부딪히나요?</h3>
<p>대부분 너무 자주 누르거나 틈 가운데보다 위에서 누르기 때문이에요. 날아라 유령 기준으로 한 번 누르면 63px 솟구치는데, 가장 좁은 틈에서 가운데 위쪽 여유는 45px뿐이에요. 틈 아래쪽 절반에서 누르고, 간격을 0.58초 정도로 늦추면 확 줄어요.</p>
<h3>길게 누르면 더 높이 올라가나요?</h3>
<p>아니에요. 누르는 순간 위로 초당 440px 속도가 한 번 주어질 뿐이라 길게 눌러도 똑같아요. 더 높이 가려면 0.3~0.4초 간격으로 여러 번 눌러야 해요.</p>
<h3>같은 높이로 날려면 얼마나 자주 눌러야 하나요?</h3>
<p>약 0.58초에 한 번, 1초에 1.7번쯤이에요. 누른 지 0.58초가 지나면 유령이 누른 높이로 정확히 돌아오기 때문이에요. 이보다 빠르면 올라가고, 느리면 내려가요.</p>
<h3>메달은 몇 점에 받나요?</h3>
<p>한 판에서 10점이면 동메달, 20점이면 은메달, 40점이면 금메달이에요. 실수 없이 날면 동메달까지 약 16초, 금메달까지 약 55초가 걸려요.</p>
<h3>갈수록 얼마나 어려워지나요?</h3>
<p>틈은 1점마다 0.75px씩 줄어 40점에 120px로 고정되고, 속도는 1점마다 초당 0.8px씩 빨라져 50점에 초당 190px로 고정돼요. 50점 이후로는 난이도가 더 오르지 않아서 그때부터는 집중력 싸움이에요.</p>
<h2 id="s11">정리</h2>
<p>플래피 스타일 게임에서 기억할 숫자는 세 개예요. <strong>한 번 누르면 63px, 0.58초 뒤 제자리, 틈 아래쪽 절반에서 누르기.</strong> 빨리 누를수록 잘하는 게임이 아니라, 박자를 일정하게 유지하면서 기둥 바로 앞에서 한 번 정확히 누르는 게임이에요. 기둥 안에서는 많아야 한 번만 누르고, 그림이 살짝 겹쳐 보여도 판정은 더 작으니 당황하지 마세요.</p>
<p>지금 바로 <a href="https://game.smithlab.co.kr/games/flappy-ghost/">날아라 유령</a>에서 "하나, 둘" 리듬으로 동메달부터 노려 보세요. 최고 점수는 이 브라우저에 저장돼서 다음에 이어서 도전할 수 있어요.</p>
    ]]></description>
    </item>
    <item>
      <title>오목 이기는 법, 4·3 만드는 요령과 렌주룰·자유룰 차이 총정리</title>
      <link>https://game.smithlab.co.kr/posts/games/gomoku-winning-patterns-renju/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/gomoku-winning-patterns-renju/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>오목을 두다 보면 분명 비슷하게 두고 있었는데 상대가 갑자기 "4·3이요" 하면서 끝나 버리는 판이 있어요. 결론부터 말하면 <strong>오목은 한 수로 막아야 할 곳을 두 군데 만드는 쪽이 이겨요. 가장 확실한 모양이 4·3(닫힌 4 + 열린 3)이고, 자유룰에서는 3·3과 4·4도 똑같이 결정타예요.</strong> 반대로 지는 사람은 대부분 상대의 열린 3을 한 박자 늦게 막아요.</p>
<p>이 글에서는 열린 3과 닫힌 3을 어떻게 구분하는지, 4·3이 왜 막을 수 없는지, 렌주룰과 자유룰이 3·3·4·4·장목(6목 이상)을 어떻게 다르게 다루는지, 첫 몇 수를 어디에 두면 좋은지, 수비는 어떤 순서로 하는지 정리했어요. 마지막에는 <a href="https://game.smithlab.co.kr/games/gomoku/">오목 vs 컴퓨터</a>의 실제 코드를 읽고 쉬움·보통·어려움 난이도가 각각 어떻게 수를 고르는지, 그래서 어떻게 이기면 되는지도 적었어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>열린 3(양 끝이 빈 3)은 다음 수에 막을 수 없는 열린 4가 되므로 보자마자 막아야 하고, 한쪽이 막힌 닫힌 3은 급하지 않아요.</li><li>4·3은 한 수로 "당장 막아야 하는 4"와 "다음에 열린 4가 되는 3"을 동시에 만드는 모양이라, 상대가 4를 막는 사이 3이 열린 4가 되어 이겨요.</li><li>렌주룰은 흑에게만 3·3, 4·4, 장목을 금지해 선수 이점을 줄이고, 자유룰은 금수가 없어요. 이 사이트의 오목은 15×15 자유룰이라 6목 이상도 승리예요.</li><li>컴퓨터 쉬움은 비슷한 점수의 후보 중 무작위로 두고, 보통은 한 수 앞의 모양 점수만 보며, 어려움은 연속 4(VCF)를 9수 깊이까지 읽어요. 흑을 잡고 4·3을 노리는 게 가장 빠른 공략이에요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">오목 기본 규칙과 승리 조건</h2>
<p>오목은 가로·세로·대각선 중 한 방향으로 같은 색 돌 5개를 먼저 잇는 쪽이 이기는 게임이에요. 판은 보통 가로세로 15줄(15×15)을 쓰고, 흑이 먼저 둬요. 규칙은 간단한데, "5개를 정확히 이어야 하는지", "6개 이상 이어도 되는지(장목)", "3·3 같은 모양을 금지하는지"가 지역과 앱마다 달라서 친구와 둘 때는 시작 전에 꼭 맞춰야 해요.</p>
<p>15×15 판에서 5칸짜리 줄이 몇 개나 나오는지 직접 세 보면 가로 165개, 세로 165개, 두 대각선 방향 각 121개로 모두 572개예요. 그런데 칸마다 지나가는 줄 수가 크게 달라요. 구석 칸은 5목 줄 3개에만 걸치지만, 가장자리에서 다섯째 줄 안쪽 칸은 네 방향 × 5개 = 20개 줄에 걸쳐요. 첫 수를 가운데(천원)에 두는 이유가 여기 있어요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">15×15 오목판에서 칸 하나를 지나는 5목 줄 개수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="15×15 오목판에서 칸 하나를 지나는 5목 줄 개수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">15</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">20</text><rect class="s1" x="66.4" y="218.6" width="67.2" height="35.4" rx="3"><title>구석 · 지나는 5목 줄 3개</title></rect><text class="viz-val" x="100.0" y="213.6" text-anchor="middle">3</text><text class="viz-ax" x="100.0" y="272" text-anchor="middle">구석</text><rect class="s1" x="162.4" y="159.6" width="67.2" height="94.4" rx="3"><title>변 가운데 · 지나는 5목 줄 8개</title></rect><text class="viz-val" x="196.0" y="154.6" text-anchor="middle">8</text><text class="viz-ax" x="196.0" y="272" text-anchor="middle">변 가운데</text><rect class="s1" x="258.4" y="183.2" width="67.2" height="70.8" rx="3"><title>2-2 자리 · 지나는 5목 줄 6개</title></rect><text class="viz-val" x="292.0" y="178.2" text-anchor="middle">6</text><text class="viz-ax" x="292.0" y="272" text-anchor="middle">2-2 자리</text><rect class="s1" x="354.4" y="136.0" width="67.2" height="118.0" rx="3"><title>3-3 자리 · 지나는 5목 줄 10개</title></rect><text class="viz-val" x="388.0" y="131.0" text-anchor="middle">10</text><text class="viz-ax" x="388.0" y="272" text-anchor="middle">3-3 자리</text><rect class="s1" x="450.4" y="77.0" width="67.2" height="177.0" rx="3"><title>4-4 자리 · 지나는 5목 줄 15개</title></rect><text class="viz-val" x="484.0" y="72.0" text-anchor="middle">15</text><text class="viz-ax" x="484.0" y="272" text-anchor="middle">4-4 자리</text><rect class="s1" x="546.4" y="18.0" width="67.2" height="236.0" rx="3"><title>5-5 안쪽 · 지나는 5목 줄 20개</title></rect><text class="viz-val" x="580.0" y="13.0" text-anchor="middle">20</text><text class="viz-ax" x="580.0" y="272" text-anchor="middle">5-5 안쪽</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">가장자리에서 다섯째 줄 안쪽이면 모든 칸이 20개로 같아요</p><div class="viz-cap">단위: 개 · 자료: 15×15 판의 5칸 줄 572개를 칸별로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>지나는 5목 줄</th></tr></thead><tbody><tr><td>구석</td><td>3</td></tr><tr><td>변 가운데</td><td>8</td></tr><tr><td>2-2 자리</td><td>6</td></tr><tr><td>3-3 자리</td><td>10</td></tr><tr><td>4-4 자리</td><td>15</td></tr><tr><td>5-5 안쪽</td><td>20</td></tr></tbody></table></div></details></figure>
<p>가장자리에 둔 돌은 같은 한 수라도 쓸 수 있는 줄이 절반 이하예요. 초반에는 가운데 근처에서 싸우고, 상대를 벽 쪽으로 밀어붙이는 게 유리한 이유예요.</p>
<h2 id="s2">열린 3과 닫힌 3, 띈 3과 열린 4 구분하기</h2>
<p>오목 실력의 절반은 "지금 이 모양이 급한가"를 판단하는 데서 나와요. 같은 돌 3개라도 양 끝이 비었는지에 따라 위험도가 완전히 달라요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/gomoku-winning-patterns-renju-1.svg" alt="열린 3, 닫힌 3, 띈 3, 열린 4 네 가지 오목 모양을 돌 배치로 비교하고, 각각 다음 수에 어떤 위협이 되는지와 대응법을 적은 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>오목 모양 4가지와 대응</figcaption></figure>
<div class="table-wrap"><table><thead><tr><th>모양</th><th>예시(● 내 돌, ○ 상대, · 빈칸)</th><th>다음 수에 되는 것</th><th>대응</th></tr></thead><tbody><tr><td>열린 3</td><td>· · ● ● ● · ·</td><td>열린 4 (못 막음)</td><td>즉시 한쪽 끝 막기</td></tr><tr><td>띈 3</td><td>· ● ● · ● ·</td><td>열린 4 (못 막음)</td><td>가운데 빈칸이나 끝 막기</td></tr><tr><td>닫힌 3</td><td>○ ● ● ● · · ·</td><td>닫힌 4 (한 곳만 막으면 됨)</td><td>급하지 않음</td></tr><tr><td>닫힌 4</td><td>○ ● ● ● ● ·</td><td>5목</td><td>남은 한 칸 즉시 막기</td></tr><tr><td>열린 4</td><td>· ● ● ● ● ·</td><td>5목 (양쪽)</td><td>막을 수 없음</td></tr></tbody></table></div>
<p>열린 4는 양 끝 중 어디를 막아도 반대쪽으로 5목이 돼요. 그래서 열린 4가 생기기 직전 단계인 <strong>열린 3과 띈 3이 사실상 "한 수 뒤에 지는 모양"</strong> 이에요. 띈 3(●●·●)은 일직선이 아니라서 초보자 눈에 잘 안 띄는데, 가운데 빈칸을 채우는 순간 열린 4가 되니 열린 3과 똑같이 취급해야 해요.</p>
<p>반대로 닫힌 3은 4가 되어도 닫힌 4라 한 곳만 막으면 끝나요. 닫힌 3을 막으려고 수를 쓰는 대신 내 공격 자리를 두는 편이 대부분 이득이에요. 이 구분만 정확히 해도 "막을 필요 없는 걸 막다가 주도권을 뺏기는" 일이 확 줄어요.</p>
<h2 id="s3">4·3, 3·3, 4·4: 이기는 모양은 전부 "이중 위협"</h2>
<p>오목에서 이기는 원리는 하나예요. <strong>상대가 한 수에 막을 수 있는 위협은 하나뿐이니, 한 수로 위협을 두 개 만들면 이겨요.</strong> 이 이중 위협의 종류가 4·3, 3·3, 4·4예요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/gomoku-winning-patterns-renju-2.svg" alt="흑이 한 수로 가로 닫힌 4와 세로 열린 3을 동시에 만드는 4·3 예시 판과, 자유룰과 렌주룰의 5목·장목·3·3·4·4·4·3 처리 차이를 비교한 표" width="800" height="450" loading="lazy" decoding="async"><figcaption>4·3 원리와 자유룰·렌주룰 비교</figcaption></figure>
<ul><li><strong>4·3</strong>: 한 수로 닫힌 4와 열린 3을 동시에 만들어요. 상대는 4를 반드시 막아야 하고(안 막으면 바로 5목), 그 사이 내 3이 열린 4로 바뀌어 이겨요. 렌주룰에서도 흑이 허용되는, 가장 정석적인 승리 모양이에요.</li><li><strong>3·3</strong>: 한 수로 열린 3을 두 개 만들어요. 상대가 하나를 막으면 다른 하나가 열린 4가 돼요. 단, 상대가 막으면서 동시에 4를 만들어 반격할 수 있으면 깨질 수 있어요.</li><li><strong>4·4</strong>: 한 수로 4를 두 개 만들어요. 둘 다 닫힌 4여도 막을 곳이 두 군데라 바로 이겨요. 한 줄 안에서도 생기는데, ●·●·●·● 모양의 가운데 빈칸에 두면 양쪽 빈칸 두 곳이 모두 5목 자리가 돼요.</li></ul>
<p>위험도 순서로는 4·4 ≥ 4·3 &gt; 3·3이에요. 4가 들어간 위협은 상대가 무조건 받아야 하는 "강제수"라서, 상대에게 반격할 틈을 주지 않거든요. 그래서 고수들은 <strong>4를 연달아 두며 상대를 강제로 끌고 다니다 마지막에 4·3이나 4·4로 끝내는 수순(VCF, Victory by Continuous Fours)</strong> 을 노려요. 3을 섞어 몰아붙이는 수순은 VCT(Victory by Continuous Threats)라고 불러요.</p>
<h3>4·3을 만드는 실전 요령</h3>
<p>4·3은 한 수에 갑자기 나오는 게 아니라, 몇 수 전부터 재료를 깔아 둬야 생겨요.</p>
<ol><li><strong>두 줄이 교차하는 빈칸을 찾기</strong>: 가로로 돌 3개, 세로로 돌 2개가 같은 빈칸을 향하고 있으면 그 칸이 4·3 자리예요.</li><li><strong>띈 모양을 섞기</strong>: ●●·● 같은 띈 모양은 상대가 위협으로 잘 못 알아보고, 빈칸 하나로 여러 줄이 이어져 교차점을 만들기 쉬워요.</li><li><strong>닫힌 3을 버리지 않기</strong>: 닫힌 3은 혼자서는 약하지만 4·3의 "4" 재료로는 훌륭해요. 막혔다고 포기하지 말고 다른 방향 줄과 교차시키세요.</li><li><strong>상대 수비 돌 근처를 피하기</strong>: 상대 돌이 많은 쪽은 내 줄이 막히기 쉬워요. 빈 공간 쪽으로 줄을 뻗어야 교차점이 살아요.</li></ol>
<h2 id="s4">렌주룰과 자유룰 차이: 33 금수, 44 금수, 장목</h2>
<p>오목 규칙이 여러 가지인 이유는 흑(선수)이 너무 유리해서예요. 15×15 자유룰 오목은 1990년대 컴퓨터 분석으로 흑이 완벽하게 두면 반드시 이기는 게임이라는 사실이 밝혀졌어요. 그래서 대회용 규칙인 렌주(Renju)는 흑에게만 제약을 걸어요.</p>
<div class="table-wrap"><table><thead><tr><th>항목</th><th>자유룰 (이 사이트)</th><th>렌주룰</th><th>흔한 동네·앱 규칙</th></tr></thead><tbody><tr><td>5목</td><td>승리</td><td>승리</td><td>승리</td></tr><tr><td>6목 이상(장목)</td><td>승리</td><td>흑은 금수, 백은 승리</td><td>제각각 (무효인 경우 많음)</td></tr><tr><td>3·3</td><td>허용</td><td>흑만 금지</td><td>양쪽 모두 금지하는 경우 많음</td></tr><tr><td>4·4</td><td>허용</td><td>흑만 금지</td><td>허용하는 경우 많음</td></tr><tr><td>4·3</td><td>허용</td><td>허용</td><td>허용</td></tr><tr><td>개시 규칙</td><td>없음</td><td>첫 몇 수 배치를 정하는 규칙 있음</td><td>없음</td></tr></tbody></table></div>
<p>렌주룰에서 흑이 금수 자리에 두면 그 수는 반칙패예요. 그래서 렌주에서는 백이 일부러 흑의 금수 자리를 "강요"하는 전략까지 있어요. 예를 들어 흑이 막아야 하는 자리가 하필 3·3 금수 자리라면 흑은 막지 못하고 져요. 반대로 흑은 금수가 없는 4·3을 주무기로 써요.</p>
<p>우리나라에서 친구끼리 두는 오목은 "쌍삼(3·3) 금지"만 양쪽에 적용하는 경우가 많아요. 이 규칙은 공식 렌주와 다르니, 시작 전에 3·3·4·4·장목 세 가지를 꼭 합의하세요.</p>
<p>이 사이트의 <a href="https://game.smithlab.co.kr/games/gomoku/">오목 vs 컴퓨터</a>는 <strong>자유룰</strong>이에요. 코드상 한 방향으로 같은 색이 5개 이상 이어지면 바로 승리 처리하고, 3·3·4·4 금수 판정은 없어요. 그래서 흑을 잡으면 3·3, 4·4, 장목까지 전부 쓸 수 있어 꽤 유리해요.</p>
<h2 id="s5">오목 첫 수와 초반 운영 요령</h2>
<h3>흑일 때: 가운데에서 대각선으로 붙이기</h3>
<p>흑의 첫 수는 가운데(천원)가 정석이에요. 앞의 차트처럼 가운데 칸은 20개 줄에 걸쳐 있어요. 백이 바로 옆(직접 붙임)이나 대각선 옆(간접 붙임)에 두면, 흑의 둘째 수는 백 돌과 떨어지지 않으면서 내 첫 돌과 줄을 이루는 자리가 좋아요. 초반 3~5수 안에 내 돌이 서로 두 방향 이상으로 이어지게 두면 중반에 교차점이 많이 생겨요.</p>
<h3>백일 때: 흑의 줄을 끊으면서 내 줄 만들기</h3>
<p>백은 기본적으로 한 수 늦어요. 흑의 두 돌 사이 연장선 위에 두되, 그 돌이 내 다른 돌과도 이어지는 자리를 고르세요. "막기만 하는 수"를 세 번 연속 두면 흑에게 주도권이 넘어가요. 막는 수이면서 동시에 내 2나 3을 만드는 수가 백의 핵심이에요.</p>
<h3>초반에 하지 말아야 할 것</h3>
<ul><li>판 가장자리 쪽으로 줄을 뻗기 (줄 수가 절반 이하로 줄어요)</li><li>한 방향 일직선만 고집하기 (상대가 한 수로 끝을 막으면 끝)</li><li>상대 2를 일일이 막기 (2는 아직 위협이 아니에요)</li></ul>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">오목 수비법: 막는 순서를 정해 두기</h2>
<p>수비는 감보다 순서예요. 상대가 수를 둘 때마다 아래 순서로 확인하면 거의 놓치지 않아요.</p>
<ol><li><strong>내가 지금 5목을 만들 수 있나?</strong> → 있으면 그냥 이겨요. 상대 위협보다 먼저 확인하세요.</li><li><strong>상대가 다음 수에 5목을 만들 수 있나(4가 있나)?</strong> → 있으면 무조건 그 칸을 막아요.</li><li><strong>내가 4를 두어 상대를 강제로 끌고 다니며 이길 수 있나?</strong> → VCF가 보이면 수비보다 공격이 먼저예요.</li><li><strong>상대에게 열린 3이나 띈 3이 있나?</strong> → 있으면 막아요. 띈 3은 가운데 빈칸을 막는 게 보통 가장 깔끔해요.</li><li><strong>상대가 다음 수에 4·3이나 3·3을 만들 자리가 있나?</strong> → 그 교차점을 미리 차지해요.</li></ol>
<p>열린 3을 막을 때 어느 쪽 끝을 막을지도 중요해요. <strong>내 돌이 더 많은 쪽, 막는 돌이 내 줄에도 보탬이 되는 쪽</strong>을 고르세요. 열린 3 ·●●●·에서 한쪽을 막으면 상대는 닫힌 4를 만들 수 있는데, 그 4를 막는 자리가 어디인지까지 한 번 더 내다보면 실수가 줄어요.</p>
<h2 id="s7">컴퓨터 난이도별 오목 이기는 법</h2>
<p><a href="https://game.smithlab.co.kr/games/gomoku/">오목 vs 컴퓨터</a>는 15×15 자유룰이고, 흑·백 중 원하는 색을 고를 수 있어요. 컴퓨터는 칸마다 "내가 여기 두면 생기는 모양 점수 + 상대가 여기 두면 생기는 모양 점수 × 수비 가중치"를 매겨 가장 높은 칸에 둬요. 모양 점수는 코드에 아래처럼 정해져 있어요(5목 100만 점, 열린 4 10만 점은 너무 커서 차트에서 뺐어요).</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">컴퓨터가 매기는 모양 점수 (5목·열린 4 제외)</figcaption><svg viewBox="0 0 640 220" role="img" aria-label="컴퓨터가 매기는 모양 점수 (5목·열린 4 제외)" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="52" y="29" text-anchor="end">닫힌 4</text><rect class="s1" x="62" y="15" width="508.0" height="20" rx="3"><title>닫힌 4 · 6,000점</title></rect><text class="viz-val" x="576.0" y="29">6,000점</text><text class="viz-ax lg" x="52" y="63" text-anchor="end">열린 3</text><rect class="s1" x="62" y="49" width="423.3" height="20" rx="3"><title>열린 3 · 5,000점</title></rect><text class="viz-val" x="491.3" y="63">5,000점</text><text class="viz-ax lg" x="52" y="97" text-anchor="end">닫힌 3</text><rect class="s1" x="62" y="83" width="50.8" height="20" rx="3"><title>닫힌 3 · 600점</title></rect><text class="viz-val" x="118.8" y="97">600점</text><text class="viz-ax lg" x="52" y="131" text-anchor="end">열린 2</text><rect class="s1" x="62" y="117" width="33.9" height="20" rx="3"><title>열린 2 · 400점</title></rect><text class="viz-val" x="101.9" y="131">400점</text><text class="viz-ax lg" x="52" y="165" text-anchor="end">닫힌 2</text><rect class="s1" x="62" y="151" width="6.8" height="20" rx="3"><title>닫힌 2 · 80점</title></rect><text class="viz-val" x="74.8" y="165">80점</text><text class="viz-ax lg" x="52" y="199" text-anchor="end">돌 1개</text><rect class="s1" x="62" y="185" width="1.0" height="20" rx="3"><title>돌 1개 · 10점</title></rect><text class="viz-val" x="69.0" y="199">10점</text></svg><p class="viz-note">4와 열린 3을 동시에 만들면 5만 점, 열린 3 두 개는 2만 점이 더 붙어요</p><div class="viz-cap">단위: 점 · 자료: 스미스 게임 연구소 오목 게임 코드(gomoku.js)의 모양 점수표</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>점수</th></tr></thead><tbody><tr><td>닫힌 4</td><td>6,000</td></tr><tr><td>열린 3</td><td>5,000</td></tr><tr><td>닫힌 3</td><td>600</td></tr><tr><td>열린 2</td><td>400</td></tr><tr><td>닫힌 2</td><td>80</td></tr><tr><td>돌 1개</td><td>10</td></tr></tbody></table></div></details></figure>
<p>점수표를 보면 컴퓨터도 열린 3을 닫힌 4와 거의 같은 급으로 보고, 닫힌 3은 그 10분의 1 수준으로 봐요. 이 글에서 설명한 "열린 3은 급하고 닫힌 3은 급하지 않다"를 그대로 숫자로 옮긴 셈이에요.</p>
<div class="table-wrap"><table><thead><tr><th>난이도</th><th>수비 가중치</th><th>수 고르는 방식</th><th>추가 탐색</th></tr></thead><tbody><tr><td>쉬움</td><td>0.6</td><td>점수 상위 5개(최고점의 25% 이상) 중 무작위</td><td>없음</td></tr><tr><td>보통</td><td>0.95</td><td>항상 최고 점수 칸</td><td>없음</td></tr><tr><td>어려움</td><td>1.0</td><td>항상 최고 점수 칸</td><td>연속 4(VCF) 9수 깊이</td></tr></tbody></table></div>
<p>세 난이도 모두 "바로 이기는 수"를 먼저 찾고, 내 4(5목 직전)나 열린 3처럼 점수가 압도적으로 큰 위협은 쉬움에서도 거의 항상 막아요. 직접 같은 배치로 2,000번씩 돌려 봤을 때 닫힌 4와 열린 3을 막는 비율은 세 난이도 모두 100%였어요. 난이도 차이는 "급한 위협이 없을 때 어떤 수를 두느냐"에서 나와요.</p>
<h3>쉬움: 교차점만 만들면 대부분 이겨요</h3>
<p>쉬움은 수비 가중치가 0.6이고, 급한 위협이 없으면 점수 상위 5개 후보 중 무작위로 골라요. 그래서 열린 2 두 개가 겹치는 자리처럼 "다음 수에 3·3이 되는 준비 수"를 잘 끊지 못하고, 자기 공격도 엉성해요. 가운데에서 가로와 대각선으로 2를 두 개 만들어 교차점을 준비하면 3·3이나 4·3이 금방 나와요. 최소 수 기록을 노린다면 흑을 잡고 첫 5~6수 안에 교차점을 만드는 데 집중하세요.</p>
<h3>보통: 한 수 앞만 보니 4·3 교차점을 미리 깔아 두기</h3>
<p>보통은 상대 4는 항상 막고, 열린 3도 거의 막아요. 대신 몇 수 앞을 읽지 않고 "지금 이 칸의 점수"만 보고 둬요. 그래서 4·3 재료를 미리 깔아 두면 막을 방법이 없어요. 띈 모양(●●·●)과 대각선을 섞어 교차점을 두세 군데 만들어 놓고, 한 곳을 막히면 다른 곳에서 4·3을 터뜨리세요. 흑을 잡으면 3·3도 쓸 수 있어 훨씬 쉬워요.</p>
<h3>어려움: 4를 먼저 쓰지 말고 3으로 압박하기</h3>
<p>어려움은 자기에게 연속 4로 이기는 길이 있으면 그 길로 가고, 나에게 그런 길이 있으면 미리 끊는 수를 찾아요(제한 시간 약 0.7초 안에서). 그래서 4만 이어서 이기는 수순은 대부분 미리 막혀요. 대신 이 AI는 <strong>3을 섞는 공격(VCT)은 깊게 읽지 않아요.</strong> 열린 3과 띈 3으로 압박해 컴퓨터가 수비 수를 두게 만들고, 그 사이 다른 쪽에 교차점을 쌓아 마지막에 3·3이나 4·3을 만드는 흐름이 잘 통해요. 흑을 잡고 두는 걸 추천해요.</p>
<p>판이 불리해지면 무르기를 써서 되돌려 볼 수 있어요. 다만 무르기를 쓴 판은 "최소 수 승리" 기록에는 들어가지 않아요. 모바일에서는 실수 방지를 위해 같은 칸을 한 번 더 눌러야 돌이 놓이는 설정이 기본으로 켜져 있어요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s8">오목 흔한 실수 5가지</h2>
<ol><li><strong>띈 3을 못 보고 지나치기</strong>: ●●·●은 일직선이 아니어서 놓치기 쉬워요. 빈칸 하나를 사이에 둔 돌 묶음을 항상 3으로 세세요.</li><li><strong>닫힌 3까지 다 막기</strong>: 급하지 않은 수를 막느라 수를 쓰면 주도권이 넘어가요.</li><li><strong>내 4를 너무 일찍 쓰기</strong>: 4는 상대가 막으면 그 줄은 끝이에요. 4·3이나 VCF 마무리용으로 아껴 두세요.</li><li><strong>장목 규칙 확인 안 하기</strong>: 렌주룰이나 동네 규칙에서는 6목이 무효일 수 있어요. 이 사이트 자유룰에서는 6목도 승리예요.</li><li><strong>수비 순서 무시</strong>: 상대 열린 3을 보는 순간 내 5목 기회를 놓치는 경우가 의외로 많아요. "내 5목 → 상대 4 → 내 VCF → 상대 열린 3" 순서를 지키세요.</li></ol>
<h2 id="s9">자주 묻는 질문</h2>
<h3>오목에서 3·3은 반칙인가요?</h3>
<p>규칙마다 달라요. 공식 렌주룰에서는 흑만 3·3이 금지이고 백은 써도 돼요. 동네 오목이나 일부 앱은 양쪽 모두 금지하기도 해요. 이 사이트의 오목 게임은 자유룰이라 3·3, 4·4 모두 허용돼요.</p>
<h3>오목에서 6목(장목)도 이긴 건가요?</h3>
<p>자유룰에서는 5개 이상이면 승리라 6목도 이겨요. 렌주룰에서는 흑의 장목은 금수(반칙)이고, 백은 장목으로도 이겨요. 정확히 5개만 인정하는 규칙도 있으니 시작 전에 정해 두세요.</p>
<h3>오목은 먼저 두는 쪽이 무조건 유리한가요?</h3>
<p>네, 흑(선수)이 유리해요. 15×15 자유룰 오목은 흑이 완벽하게 두면 반드시 이긴다는 사실이 컴퓨터 분석으로 밝혀졌어요. 그래서 렌주룰은 흑에게 금수를 걸고, 친구끼리 둘 때는 판마다 흑백을 바꾸는 게 공평해요.</p>
<h3>열린 3과 닫힌 3은 어떻게 구분하나요?</h3>
<p>돌 3개의 양 끝이 모두 비어 있으면 열린 3, 한쪽이 상대 돌이나 판 끝으로 막혀 있으면 닫힌 3이에요. 열린 3은 다음 수에 막을 수 없는 열린 4가 되니 즉시 막고, 닫힌 3은 4가 될 때 막아도 늦지 않아요.</p>
<h3>오목 컴퓨터 어려움은 어떻게 이기나요?</h3>
<p>어려움은 연속 4(VCF) 수순을 미리 읽어 끊기 때문에 4만 연달아 두는 공격은 잘 안 통해요. 흑을 잡고 열린 3과 띈 3으로 압박하면서 여러 곳에 교차점을 만든 뒤 3·3이나 4·3으로 마무리하는 편이 잘 통해요.</p>
<h2 id="s10">정리</h2>
<p>오목 이기는 법은 결국 "한 수로 위협 두 개"예요. 열린 3과 띈 3은 즉시 막고, 닫힌 3은 내버려 두고, 내 쪽에서는 교차점을 미리 깔아 4·3을 노리세요. 규칙은 자유룰과 렌주룰, 동네 규칙이 3·3·4·4·장목에서 갈리니 시작 전에 맞추는 게 먼저예요.</p>
<p>배운 모양은 <a href="https://game.smithlab.co.kr/games/gomoku/">오목 vs 컴퓨터</a>에서 쉬움부터 어려움까지 차례로 시험해 보세요. 수를 읽는 추리 게임이 좋다면 <a href="https://game.smithlab.co.kr/posts/games/number-baseball-winning-strategy/">숫자야구 필승 전략</a>과 <a href="https://game.smithlab.co.kr/posts/games/minesweeper-patterns/">지뢰찾기 패턴 정리</a>도 같은 원리(후보를 좁히고 강제수를 찾기)로 실력이 늘어요.</p>
    ]]></description>
    </item>
    <item>
      <title>솔리테어 이기는 법, 클론다이크 규칙과 1장·3장 뽑기 공략</title>
      <link>https://game.smithlab.co.kr/posts/games/klondike-solitaire-how-to-win/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/klondike-solitaire-how-to-win/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>윈도우에 기본으로 들어 있던 카드놀이, 솔리테어를 해 보면 어떤 판은 술술 풀리고 어떤 판은 몇 수 만에 꽉 막혀요. 그래서 "어차피 운"이라고 생각하기 쉬운데, 결론부터 말하면 <strong>클론다이크 솔리테어는 이론상 풀 수 있는 판이 꽤 많고(모든 카드를 안다고 가정한 연구에서 약 80% 안팎으로 추정), 실제로 이기느냐는 뒷면 카드를 여는 순서와 빈 줄·파운데이션을 언제 쓰느냐에 크게 달려 있어요.</strong> 뒷면이 많은 줄부터 열고, 놓을 K가 없으면 줄을 비우지 않고, 높은 카드는 파운데이션에 서둘러 올리지 않는 것, 이 세 가지만 지켜도 승률이 눈에 띄게 달라져요.</p>
<p>이 글은 <a href="https://game.smithlab.co.kr/games/solitaire/">솔리테어 게임</a>을 기준으로 규칙부터 짚고, 판이 처음에 어떻게 깔리는지 숫자로 본 다음, 한 수를 고르는 우선순위와 1장 뽑기·3장 뽑기 각각의 요령을 정리해요. 게임 화면은 휴대폰에서도 일곱 줄이 한 번에 보이고, 무제한 되돌리기와 같은 판 다시하기를 지원해서 아래 요령을 직접 시험해 보기 좋아요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>처음 깔린 28장 중 21장은 뒷면이고, 맨 오른쪽 줄 하나에만 6장이 숨어 있어요. 뒷면 카드를 여는 이동이 언제나 1순위예요.</li><li>빈 줄에는 K만 들어가요. 옮길 K가 보이지 않으면 줄을 비우지 마세요. 뒷면 21장 안에 K가 하나라도 숨어 있을 확률은 약 88%예요.</li><li>A·2는 바로 파운데이션으로, 3 이상은 반대 색 한 단계 낮은 카드 두 장이 올라간 뒤에 올리면 안전해요.</li><li>3장 뽑기는 스톡 한 바퀴에 24장 중 8장만 바로 쓸 수 있어요. 웨이스트에서 한 장을 빼면 다음 바퀴 순서가 바뀐다는 점을 이용하세요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">클론다이크 솔리테어 규칙 한눈에 보기</h2>
<p>솔리테어라는 이름은 원래 "혼자 하는 카드 게임" 전체를 가리키지만, 우리가 흔히 솔리테어라고 부르는 건 <strong>클론다이크(Klondike)</strong> 예요. 52장 한 벌로 하고, 판은 네 구역으로 나뉘어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/klondike-solitaire-how-to-win-1.svg" alt="클론다이크 솔리테어 판 구성: 왼쪽 위 스톡과 웨이스트, 오른쪽 위 무늬별 파운데이션 네 칸, 아래쪽 테이블 일곱 줄에 1장부터 7장까지 깔린 모습" width="800" height="450" loading="lazy" decoding="async"><figcaption>클론다이크 판의 네 구역</figcaption></figure>
<ul><li><strong>테이블(7줄)</strong>: 왼쪽부터 1장, 2장 … 7장씩 깔고 각 줄의 맨 아래 카드만 앞면이에요. 여기서는 <strong>색이 다르고 숫자가 하나 작은 카드</strong>를 이어 붙여요. 검은 9 위에 빨간 8, 그 위에 검은 7 하는 식이에요. 앞면으로 이어진 묶음은 통째로 옮길 수 있고, 줄 맨 아래의 뒷면 카드가 드러나면 뒤집어요.</li><li><strong>빈 줄</strong>: 줄이 완전히 비면 <strong>K 또는 K로 시작하는 묶음만</strong> 놓을 수 있어요. 이 규칙 하나가 공략의 절반이에요.</li><li><strong>스톡과 웨이스트</strong>: 남은 24장은 스톡에 뒷면으로 쌓여 있고, 누를 때마다 1장(1장 뽑기) 또는 3장(3장 뽑기)씩 웨이스트로 넘어가요. 쓸 수 있는 건 웨이스트 맨 위 한 장뿐이에요. 스미스 게임 연구소 게임에서는 두 모드 모두 스톡이 비면 웨이스트를 다시 스톡으로 되돌려 <strong>횟수 제한 없이</strong> 돌릴 수 있어요.</li><li><strong>파운데이션(4칸)</strong>: 무늬별로 A, 2, 3 … K 순서로 올려요. 52장을 모두 올리면 이겨요. 파운데이션 맨 위 카드를 다시 테이블로 내려 쓰는 것도 규칙상 가능해요.</li></ul>
<p>점수를 매기는 방식은 프로그램마다 달라서, 이 게임은 점수 대신 <strong>클리어 시간과 이동 수</strong>를 기록해요. 카드 뽑기와 웨이스트 되돌리기도 1수로 세요.</p>
<h2 id="s2">첫 배치를 숫자로 보면: 28장 중 21장이 뒷면</h2>
<p>판이 어렵게 느껴지는 이유는 처음에 볼 수 있는 카드가 적기 때문이에요. 테이블 28장 가운데 앞면은 7장뿐이고, 나머지 21장이 뒷면이에요. 줄마다 뒷면 카드 수를 그려 보면 오른쪽으로 갈수록 숨어 있는 카드가 많아요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">처음 배치에서 줄별 뒷면 카드 수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="처음 배치에서 줄별 뒷면 카드 수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">1</text><line class="viz-grid" x1="52" x2="628" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">2</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">3</text><line class="viz-grid" x1="52" x2="628" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">4</text><line class="viz-grid" x1="52" x2="628" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">6</text><rect class="s1" x="64.3" y="254.0" width="57.6" height="0.5" rx="3"><title>1번 줄 · 뒷면 카드 0장</title></rect><text class="viz-val" x="93.1" y="249.0" text-anchor="middle">0</text><text class="viz-ax" x="93.1" y="272" text-anchor="middle">1번 줄</text><rect class="s1" x="146.6" y="214.7" width="57.6" height="39.3" rx="3"><title>2번 줄 · 뒷면 카드 1장</title></rect><text class="viz-val" x="175.4" y="209.7" text-anchor="middle">1</text><text class="viz-ax" x="175.4" y="272" text-anchor="middle">2번 줄</text><rect class="s1" x="228.9" y="175.3" width="57.6" height="78.7" rx="3"><title>3번 줄 · 뒷면 카드 2장</title></rect><text class="viz-val" x="257.7" y="170.3" text-anchor="middle">2</text><text class="viz-ax" x="257.7" y="272" text-anchor="middle">3번 줄</text><rect class="s1" x="311.2" y="136.0" width="57.6" height="118.0" rx="3"><title>4번 줄 · 뒷면 카드 3장</title></rect><text class="viz-val" x="340.0" y="131.0" text-anchor="middle">3</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">4번 줄</text><rect class="s1" x="393.5" y="96.7" width="57.6" height="157.3" rx="3"><title>5번 줄 · 뒷면 카드 4장</title></rect><text class="viz-val" x="422.3" y="91.7" text-anchor="middle">4</text><text class="viz-ax" x="422.3" y="272" text-anchor="middle">5번 줄</text><rect class="s1" x="475.8" y="57.3" width="57.6" height="196.7" rx="3"><title>6번 줄 · 뒷면 카드 5장</title></rect><text class="viz-val" x="504.6" y="52.3" text-anchor="middle">5</text><text class="viz-ax" x="504.6" y="272" text-anchor="middle">6번 줄</text><rect class="s1" x="558.1" y="18.0" width="57.6" height="236.0" rx="3"><title>7번 줄 · 뒷면 카드 6장</title></rect><text class="viz-val" x="586.9" y="13.0" text-anchor="middle">6</text><text class="viz-ax" x="586.9" y="272" text-anchor="middle">7번 줄</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">뒷면 합계 21장, 앞면 7장, 스톡 24장</p><div class="viz-cap">단위: 장 · 자료: 클론다이크 표준 배치(1~7장, 줄마다 맨 아래만 앞면)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>뒷면 카드</th></tr></thead><tbody><tr><td>1번 줄</td><td>0</td></tr><tr><td>2번 줄</td><td>1</td></tr><tr><td>3번 줄</td><td>2</td></tr><tr><td>4번 줄</td><td>3</td></tr><tr><td>5번 줄</td><td>4</td></tr><tr><td>6번 줄</td><td>5</td></tr><tr><td>7번 줄</td><td>6</td></tr></tbody></table></div></details></figure>
<p>카드 52장이 놓이는 곳을 나눠 보면 이렇게 돼요.</p>
<figure class="viz viz-donut"><figcaption class="viz-title">게임 시작 시 카드 52장의 위치</figcaption><svg viewBox="0 0 640 260" role="img" aria-label="게임 시작 시 카드 52장의 위치" preserveAspectRatio="xMidYMid meet"><path class="s1" d="M131.26,25.01 A105,105 0 0 1 207.75,59.43 L182.58,82.28 A71,71 0 0 0 130.85,59.01 Z"><title>테이블 앞면 · 7장 (13.5%)</title></path><path class="s2" d="M209.42,61.32 A105,105 0 0 1 106.10,232.24 L113.84,199.14 A71,71 0 0 0 183.71,83.56 Z"><title>테이블 뒷면 · 21장 (40.4%)</title></path><path class="s3" d="M103.65,231.64 A105,105 0 0 1 128.74,25.01 L129.15,59.01 A71,71 0 0 0 112.18,198.73 Z"><title>스톡 · 24장 (46.2%)</title></path><text class="viz-center" x="130" y="137" text-anchor="middle">52장</text><rect class="s1" x="290" y="29" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="41">테이블 앞면</text><text class="viz-val" x="630" y="41" text-anchor="end">7장 · 13%</text><rect class="s2" x="290" y="61" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="73">테이블 뒷면</text><text class="viz-val" x="630" y="73" text-anchor="end">21장 · 40%</text><rect class="s3" x="290" y="93" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="105">스톡</text><text class="viz-val" x="630" y="105" text-anchor="end">24장 · 46%</text></svg><div class="viz-cap">단위: 장 · 자료: 클론다이크 표준 배치</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>카드 수</th></tr></thead><tbody><tr><td>테이블 앞면</td><td>7</td></tr><tr><td>테이블 뒷면</td><td>21</td></tr><tr><td>스톡</td><td>24</td></tr></tbody></table></div></details></figure>
<p>이 숫자에서 몇 가지 확률을 직접 계산할 수 있어요(카드가 고르게 섞였다고 가정).</p>
<div class="table-wrap"><table><thead><tr><th>상황</th><th>계산</th><th>값</th></tr></thead><tbody><tr><td>처음 앞면 7장 중 A가 1장 이상</td><td>1 − C(48,7)/C(52,7)</td><td>약 45%</td></tr><tr><td>뒷면 21장 중 K가 1장 이상 숨어 있음</td><td>1 − C(48,21)/C(52,21)</td><td>약 88%</td></tr><tr><td>뒷면 21장에 숨은 A의 평균 개수</td><td>4 × 21/52</td><td>약 1.6장</td></tr><tr><td>스톡 24장에 들어 있는 A의 평균 개수</td><td>4 × 24/52</td><td>약 1.8장</td></tr></tbody></table></div>
<p>정리하면 <strong>시작할 때 A가 하나도 안 보이는 판이 절반을 넘고, K는 거의 언제나 어딘가에 숨어 있어요.</strong> 그래서 초반은 A를 찾는 것보다 뒷면을 여는 데 집중하고, 빈 줄은 숨어 있는 K가 나올 때까지 아껴 두는 게 맞는 순서예요.</p>
<h2 id="s3">솔리테어 이기는 법 1: 뒷면 카드가 많은 줄부터 연다</h2>
<p>스톡은 언제든 다시 돌려 볼 수 있지만, 테이블의 뒷면 카드는 그 위의 앞면 카드를 치워야만 볼 수 있어요. 그래서 <strong>뒷면 카드를 뒤집게 되는 이동은 거의 항상 가장 가치가 높은 수</strong>예요.</p>
<p>같은 숫자의 카드를 두 곳에서 옮길 수 있다면, 뒷면 카드가 더 많이 남은 줄에서 옮기세요. 예를 들어 검은 9 위에 올릴 수 있는 빨간 8이 2번 줄(뒷면 1장)과 6번 줄(뒷면 5장)에 하나씩 있다면 6번 줄의 8을 옮기는 쪽이 나아요. 2번 줄은 금방 비울 수 있지만, 6번 줄은 지금 열지 않으면 끝까지 막힌 채 남기 쉬워요.</p>
<p>반대로 <strong>아무것도 열지 못하는 이동은 의심</strong>해 보세요. 이미 앞면으로 잘 이어진 묶음을 다른 줄로 옮기기만 하는 이동은 판에 새 정보를 주지 않아요. 다만 그 이동으로 다른 줄 맨 아래가 비어 뒷면이 드러난다면 이야기가 달라요. 스미스 게임 연구소 게임의 <strong>탭 자동 이동</strong>도 이 순서를 따라서, 파운데이션에 갈 수 없는 카드는 뒷면을 뒤집게 되는 줄을 먼저, 그다음 카드가 있는 줄을 고르고, 빈 줄은 마지막 후보로 둬요.</p>
<h2 id="s4">솔리테어 이기는 법 2: K가 없으면 줄을 비우지 않는다</h2>
<p>빈 줄은 K만 받아요. 놓을 K가 없는 빈 줄은 사실상 아무 역할도 못 하는 칸이에요. 그런데 위 표처럼 뒷면 21장 안에 K가 숨어 있을 확률이 약 88%나 되니, <strong>빈 줄은 숨어 있던 K가 드러났을 때 받아 줄 자리</strong>로 아껴 둬야 해요.</p>
<p>실전에서 쓰는 기준은 이래요.</p>
<ul><li><strong>옮길 K가 보이면</strong> 줄을 비워도 좋아요. 특히 뒷면 카드 여러 장 위에 K가 깔려 있다면, K를 빈 줄로 보내는 순간 그 밑 카드가 열려요.</li><li><strong>K가 두 장 이상 보이면</strong> 어느 K를 먼저 보낼지 생각하세요. 아래에 뒷면이 더 많이 깔린 K, 그리고 이어 붙일 Q·J가 이미 보이는 색의 K가 우선이에요.</li><li><strong>K가 줄 맨 위(뒷면 없이 혼자) 있으면</strong> 그 K는 이미 제자리예요. 다른 빈 줄로 옮겨 봐야 의미가 없어요. 게임의 탭 자동 이동도 이런 이동은 고르지 않아요.</li></ul>
<p>빈 줄을 만들 수 있는데 K가 없다면, 그 줄의 마지막 카드를 그대로 두는 것도 좋은 선택이에요. 마지막 카드 하나가 다른 카드를 받는 발판 역할을 계속하거든요.</p>
<h2 id="s5">파운데이션에 올리는 타이밍</h2>
<p>파운데이션에 올린 카드는 점수처럼 느껴져서 보이는 대로 올리고 싶어지는데, 너무 일찍 올리면 테이블에서 쓸 발판이 사라져요. 예를 들어 빨간 6을 파운데이션에 올려 버리면, 테이블에 있는 검은 5를 받을 자리가 하나 줄어들어요.</p>
<p>안전한 기준은 다음과 같아요.</p>
<ul><li><strong>A와 2는 바로 올려요.</strong> A 위에 올 카드가 없고, 2를 받을 수 있는 건 A뿐이라 테이블에서 쓸 일이 거의 없어요.</li><li><strong>3 이상은 반대 색의 한 단계 낮은 카드 두 장이 모두 파운데이션에 올라간 뒤</strong>에 올리면 손해가 없어요. 빨간 6이라면 검은 5 두 장(♠5, ♣5)이 이미 올라가 있을 때예요. 그러면 그 6 위에 놓일 카드가 더 이상 테이블에 없으니까요.</li><li>이 기준을 어겨도 되는 경우는, 올리는 순간 뒷면 카드가 열리거나 다른 줄을 비워 K를 받을 수 있게 되는 등 <strong>당장 얻는 것이 분명할 때</strong>예요.</li></ul>
<p>탭으로 카드를 옮기면 파운데이션이 먼저라서 편하지만, 중반 이후 높은 카드를 올리기 전에는 한 번 멈춰 생각해 보세요. 실수해도 되돌리기가 무제한이니 바로 돌아가면 돼요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/klondike-solitaire-how-to-win-2.svg" alt="솔리테어에서 한 수를 고르는 순서: A와 2 올리기, 뒷면 여는 이동, K 확인 후 빈 줄 만들기, 웨이스트 카드 내리기, 스톡 넘기기" width="800" height="520" loading="lazy" decoding="async"><figcaption>한 수를 고르는 우선순위</figcaption></figure>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">1장 뽑기와 3장 뽑기 차이와 승률</h2>
<p>두 모드는 스톡을 넘길 때 웨이스트로 가는 카드 수만 다르지만 난이도 차이는 커요. 1장 뽑기는 스톡 24장을 한 바퀴 돌리면 모두 한 번씩 맨 위에 올라오고, 3장 뽑기는 3장 묶음의 맨 위만 쓸 수 있어서 아무것도 빼지 않고 돌리면 <strong>24장 중 8장(3번째, 6번째 … 24번째)</strong> 만 쓸 수 있어요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">스톡 한 바퀴에 바로 쓸 수 있는 카드 수 (아무것도 빼지 않았을 때)</figcaption><svg viewBox="0 0 640 84" role="img" aria-label="스톡 한 바퀴에 바로 쓸 수 있는 카드 수 (아무것도 빼지 않았을 때)" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="65" y="29" text-anchor="end">1장 뽑기</text><rect class="s1" x="75" y="15" width="475.2" height="20" rx="3"><title>1장 뽑기 · 24장</title></rect><text class="viz-val" x="556.2" y="29">24장</text><text class="viz-ax lg" x="65" y="63" text-anchor="end">3장 뽑기</text><rect class="s1" x="75" y="49" width="158.4" height="20" rx="3"><title>3장 뽑기 · 8장</title></rect><text class="viz-val" x="239.4" y="63">8장</text></svg><div class="viz-cap">단위: 장 · 자료: 스톡 24장 기준 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>쓸 수 있는 카드</th></tr></thead><tbody><tr><td>1장 뽑기</td><td>24</td></tr><tr><td>3장 뽑기</td><td>8</td></tr></tbody></table></div></details></figure>
<p>승률 통계는 출처마다 조건이 달라서 조심해서 봐야 해요. 모든 카드 위치를 안다고 가정하고 최선의 수를 찾는 "생각하는 솔리테어(thoughtful solitaire)" 연구에서는 <strong>약 80% 안팎(자주 인용되는 값은 79~82% 정도)의 판이 이론상 풀린다고 추정</strong>해요. 하지만 실제 게임은 뒷면 카드를 모르는 상태에서 두기 때문에 사람이 내는 승률은 이보다 훨씬 낮고, 3장 뽑기는 1장 뽑기보다 확연히 낮아요. 정확한 숫자는 규칙(스톡 재사용 횟수 제한 여부 등)에 따라 달라서, 여기서는 "1장 뽑기가 훨씬 쉽다" 정도로만 말할게요. 스미스 게임 연구소 게임은 두 모드 모두 스톡 재사용에 제한이 없어서, 제한이 있는 규칙보다는 쉬운 편이에요.</p>
<h2 id="s7">3장 뽑기 공략: 스톡 순서를 바꾸는 법</h2>
<p>3장 뽑기에서 막혔을 때의 핵심은 <strong>웨이스트에서 카드를 한 장 빼 쓰면 다음 바퀴의 묶음이 한 칸씩 밀린다</strong>는 점이에요. 실제로 계산해 볼게요. 스톡 순서를 1~24번이라고 하면 아무것도 빼지 않았을 때 쓸 수 있는 카드는 3, 6, 9, 12, 15, 18, 21, 24번이에요.</p>
<p>첫 묶음에서 3번 카드를 테이블로 내렸다면, 다음 바퀴에는 23장이 남고 묶음이 (1,2,4), (5,6,7), (8,9,10) … 으로 바뀌어서 쓸 수 있는 카드가 <strong>4, 7, 10, 13, 16, 19, 22, 24번</strong>이 돼요. 전에 못 쓰던 카드 7장이 새로 보이는 거예요.</p>
<div class="table-wrap"><table><thead><tr><th>상황</th><th>다음 바퀴에 쓸 수 있는 카드 (스톡 순서 번호)</th></tr></thead><tbody><tr><td>아무것도 안 뺌</td><td>3, 6, 9, 12, 15, 18, 21, 24</td></tr><tr><td>첫 묶음에서 3번을 뺌</td><td>4, 7, 10, 13, 16, 19, 22, 24</td></tr></tbody></table></div>
<p>그래서 3장 뽑기에서는 이렇게 해요.</p>
<ul><li>스톡 한 바퀴를 돌리면서 <strong>어떤 카드가 어느 묶음에 있는지 대략 기억</strong>해 두세요. 특히 A와 K의 위치요.</li><li>필요한 카드가 쓸 수 없는 자리(묶음의 1·2번째)에 있다면, 그보다 앞쪽에서 한 장을 빼 써서 순서를 밀어 보세요.</li><li>웨이스트에 카드가 쌓였을 때 맨 위 카드를 내리면 그 밑 카드가 바로 쓸 수 있게 돼요. 한 번에 연달아 내릴 수 있는지 보세요.</li></ul>
<p>1장 뽑기에서는 스톡 순서가 덜 중요해요. 대신 스톡을 넘기기 전에 테이블에서 할 수 있는 이동을 모두 해 두면, 같은 스톡을 덜 돌려서 이동 수와 시간을 줄일 수 있어요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s8">흔한 실수와 막혔을 때 체크리스트</h2>
<p>자주 하는 실수부터 짚어 볼게요.</p>
<ul><li><strong>보이는 카드부터 옮기기</strong>: 왼쪽 줄부터 습관적으로 처리하면 뒷면이 많은 오른쪽 줄이 끝까지 안 열려요.</li><li><strong>K 없이 줄 비우기</strong>: 빈 줄이 아무것도 못 받고 남아요.</li><li><strong>높은 카드 서둘러 올리기</strong>: 테이블에서 받쳐 줄 발판이 사라져 다른 카드가 갈 곳을 잃어요.</li><li><strong>스톡을 먼저 넘기기</strong>: 테이블에서 할 수 있는 이동을 남겨 둔 채 스톡을 넘기면, 3장 뽑기에서는 그 바퀴의 순서가 아깝게 지나가요.</li></ul>
<p>막혔을 때는 아래 순서로 확인해 보세요.</p>
<ol><li>파운데이션 맨 위 카드를 테이블로 내리면 열리는 이동이 있는지</li><li>다른 색 같은 숫자 카드(예: 빨간 7 두 장 중 다른 쪽)를 썼다면 결과가 달랐을지 — 되돌리기로 확인</li><li>3장 뽑기라면 웨이스트에서 한 장을 빼 스톡 순서를 바꿀 수 있는지</li><li>그래도 안 되면 그 판은 풀리지 않는 판일 수 있어요. 모든 판이 풀리는 건 아니에요.</li></ol>
<p>스미스 게임 연구소 게임은 <strong>게임 번호</strong>로 카드 배치가 정해져서 같은 판 다시(R) 버튼으로 똑같은 판에 다시 도전할 수 있어요. 주소 끝에 <code>?deal=번호</code>를 붙여 보내면 친구도 같은 판으로 시작하니, 누가 더 빨리 푸는지 겨뤄 볼 수도 있어요. 스톡과 웨이스트가 비고 테이블 카드가 모두 앞면이 되면 남은 카드는 자동으로 파운데이션에 올라가요. 이 상태는 각 줄이 이미 숫자 순서대로 이어져 있어서 언제나 끝까지 풀리거든요.</p>
<h2 id="s9">자주 묻는 질문</h2>
<h3>솔리테어는 모든 판을 이길 수 있나요?</h3>
<p>아니에요. 카드 배치 때문에 어떻게 해도 풀리지 않는 판이 있어요. 모든 카드 위치를 안다고 가정한 연구에서도 이론상 풀 수 있는 판은 약 80% 안팎으로 추정되고, 실제로 뒷면을 모르는 채 두면 승률은 그보다 낮아요.</p>
<h3>1장 뽑기와 3장 뽑기 중 어느 쪽이 쉬운가요?</h3>
<p>1장 뽑기가 훨씬 쉬워요. 스톡 24장을 한 바퀴 돌릴 때 1장 뽑기는 모든 카드를 쓸 수 있지만, 3장 뽑기는 아무것도 빼지 않으면 8장만 쓸 수 있어요. 처음이라면 1장 뽑기로 규칙과 요령을 익힌 뒤 3장 뽑기에 도전해 보세요.</p>
<h3>빈 줄에 K 말고 다른 카드를 놓을 수는 없나요?</h3>
<p>표준 클론다이크 규칙에서는 K나 K로 시작하는 묶음만 놓을 수 있어요. 그래서 옮길 K가 없을 때 줄을 비우는 건 대개 손해예요. 일부 변형 규칙은 아무 카드나 허용하지만, 스미스 게임 연구소 게임은 표준 규칙을 따라요.</p>
<h3>파운데이션에 올린 카드를 다시 내릴 수 있나요?</h3>
<p>네. 파운데이션 맨 위 카드는 테이블 규칙(색이 다르고 숫자가 하나 작게)에 맞는 자리로 다시 내릴 수 있어요. 막혔을 때 이 방법으로 길이 열리는 경우가 꽤 있어요.</p>
<h3>되돌리기를 쓰면 기록에 불리한가요?</h3>
<p>이 게임에서는 되돌리기 횟수에 제한이 없고 벌점도 없어요. 되돌리면 이동 수도 함께 되돌아가요. 다만 시간은 계속 흐르니, 최단 시간 기록을 노린다면 되돌리기를 줄이는 게 좋아요.</p>
<h2 id="s10">정리</h2>
<p>클론다이크 솔리테어는 처음 28장 중 21장이 뒷면이고 그중 K가 숨어 있을 확률이 약 88%인 게임이에요. 그래서 <strong>뒷면이 많은 줄부터 열고, K가 보일 때만 줄을 비우고, 3 이상 카드는 반대 색 낮은 카드 두 장이 올라간 뒤에 파운데이션으로</strong> 보내는 것이 기본 전략이에요. 3장 뽑기에서는 웨이스트에서 한 장을 빼 스톡 순서를 바꾸는 요령까지 써 보세요.</p>
<p>바로 연습해 보려면 <a href="https://game.smithlab.co.kr/games/solitaire/">솔리테어 게임</a>에서 1장 뽑기로 시작해 보세요. 비슷하게 추리와 순서가 중요한 게임으로는 <a href="https://game.smithlab.co.kr/posts/games/minesweeper-patterns/">지뢰찾기 패턴 공략</a>과 <a href="https://game.smithlab.co.kr/posts/games/15-puzzle-solving-method/">15 퍼즐 푸는 법</a>도 함께 읽어 보면 좋아요.</p>
    ]]></description>
    </item>
    <item>
      <title>꼬들 첫 단어 추천과 공략, 한글 워들 자모 빈도를 직접 세어 봤어요</title>
      <link>https://game.smithlab.co.kr/posts/games/kordle-korean-wordle-tips/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/kordle-korean-wordle-tips/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>영어 워들(Wordle)이 한창 유행할 때 "한국어로는 못 하나?" 싶었던 분들이 많았을 거예요. 그 답이 <strong>꼬들</strong>이에요. 결론부터 말하면 꼬들은 <strong>두 글자 낱말을 자음·모음 6칸으로 풀어서 6번 안에 맞히는 게임</strong>이고, 첫 줄에는 <strong>방석(ㅂㅏㅇㅅㅓㄱ)·산골(ㅅㅏㄴㄱㅗㄹ)·장군(ㅈㅏㅇㄱㅜㄴ)처럼 자주 나오는 자모 6개가 하나도 겹치지 않는 낱말</strong>을 넣는 게 가장 유리해요.</p>
<p>이 글은 스미스 게임 연구소의 <a href="https://game.smithlab.co.kr/games/kordle/">꼬들 (한글 워들)</a>에 들어 있는 정답 낱말 447개 전체를 컴퓨터로 분해해서, 어떤 자모가 얼마나 자주 나오는지, 첫 단어 후보마다 정답 후보가 평균 몇 개로 줄어드는지 직접 계산한 결과를 바탕으로 썼어요. 규칙이 헷갈리는 부분(겹모음, 겹받침, 같은 자모가 두 번 나올 때 색깔)도 그림으로 정리했으니, 게임을 옆에 켜 두고 따라 해 보세요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>꼬들은 두 글자 낱말을 자모 6칸으로 맞히는 한글판 워들이에요. 겹모음(ㅘ → ㅗㅏ)과 겹받침(ㄼ → ㄹㅂ)은 두 칸으로 나누고, 쌍자음(ㄲㄸㅃㅆㅉ)과 ㅐㅔㅒㅖ는 한 칸이에요.</li><li>정답 447개 중 ㅇ이 들어간 낱말이 60.9%, ㅏ 46.8%, ㄱ 44.5%, ㄴ 40.7%로 가장 흔해요.</li><li>첫 줄에 방석을 넣으면 남는 정답 후보가 평균 4.6개로 가장 적었어요. 학생(9.8개)이나 온천(16.5개)보다 두세 배 효율적이에요.</li><li>정답의 97%(433개)가 "자음+모음+받침" 글자 두 개라서, 3번째·6번째 칸은 받침 자음(ㅇ·ㄴ·ㄹ·ㄱ) 자리라고 생각하면 거의 맞아요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">꼬들(한글 워들)이란? 기본 규칙</h2>
<p>꼬들은 영어 단어 맞히기 게임 워들을 한글에 맞게 바꾼 게임이에요. 영어 워들은 다섯 글자 영단어를 알파벳 단위로 맞히지만, 한글은 글자 하나에 자음과 모음이 모여 있어서 <strong>글자를 자모로 풀어 칸을 만든다</strong>는 점이 달라요.</p>
<p>기본 규칙은 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>항목</th><th>꼬들 (스미스 게임 연구소 기준)</th><th>영어 워들</th></tr></thead><tbody><tr><td>정답</td><td>두 글자 한국어 명사</td><td>다섯 글자 영단어</td></tr><tr><td>칸 수</td><td>자모 6칸</td><td>알파벳 5칸</td></tr><tr><td>기회</td><td>6번</td><td>6번</td></tr><tr><td>🟩 초록</td><td>그 자리에 그 자모가 맞음</td><td>그 자리에 그 글자가 맞음</td></tr><tr><td>🟨 노랑</td><td>정답에 있지만 자리가 다름</td><td>정답에 있지만 자리가 다름</td></tr><tr><td>⬜ 회색</td><td>정답에 없음 (또는 이미 다 찾음)</td><td>정답에 없음</td></tr><tr><td>오늘의 문제</td><td>한국 시간 자정마다 바뀜</td><td>현지 자정마다 바뀜</td></tr></tbody></table></div>
<p>꼬들은 만든 곳마다 칸 수가 조금씩 달라요. 5칸으로 하는 곳도 있고, 겹모음을 한 칸으로 치는 곳도 있어요. 이 글의 숫자는 모두 <a href="https://game.smithlab.co.kr/games/kordle/">꼬들 게임</a>의 <strong>자모 6칸, 겹모음·겹받침은 나눔</strong> 규칙으로 계산했어요.</p>
<h2 id="s2">자모를 6칸으로 나누는 규칙</h2>
<p>헷갈리기 쉬운 부분이 "어디까지 나누느냐"예요. 가장 쉬운 기준은 <strong>두벌식 자판에서 키를 몇 번 누르느냐</strong>예요. 학생을 칠 때 ㅎ·ㅏ·ㄱ·ㅅ·ㅐ·ㅇ 여섯 번 누르니까 6칸이고, 과일은 ㄱ·ㅗ·ㅏ·ㅇ·ㅣ·ㄹ 여섯 번이라 역시 6칸이에요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/kordle-korean-wordle-tips-1.svg" alt="학생, 과일, 넓이를 자모 6칸으로 나눈 예시: 학생은 3+3, 과일은 ㅘ를 ㅗ와 ㅏ로 나눠 3+3, 넓이는 겹받침 ㄼ을 ㄹ과 ㅂ으로 나눠 4+2" width="800" height="450" loading="lazy" decoding="async"><figcaption>자모 6칸으로 푸는 법</figcaption></figure>
<div class="table-wrap"><table><thead><tr><th>구분</th><th>처리</th><th>예</th></tr></thead><tbody><tr><td>겹모음</td><td>기본 모음 두 칸</td><td>ㅘ → ㅗ ㅏ, ㅝ → ㅜ ㅓ, ㅚ → ㅗ ㅣ, ㅢ → ㅡ ㅣ</td></tr><tr><td>겹받침</td><td>자음 두 칸</td><td>ㄳ → ㄱ ㅅ, ㄼ → ㄹ ㅂ, ㅄ → ㅂ ㅅ</td></tr><tr><td>쌍자음</td><td>한 칸</td><td>ㄲ ㄸ ㅃ ㅆ ㅉ (Shift 키)</td></tr><tr><td>ㅐ ㅔ ㅒ ㅖ</td><td>한 칸</td><td>자판에 키가 따로 있어서 나누지 않아요</td></tr></tbody></table></div>
<p>그래서 사랑(ㅅㅏㄹㅏㅇ)이나 공부(ㄱㅗㅇㅂㅜ)처럼 자모가 5개인 낱말은 정답이 될 수 없고, 입력도 되지 않아요. 반대로 닭장(ㄷㅏㄹㄱㅈㅏㅇ)은 7칸이라 역시 안 돼요. 두 글자인데 자모가 딱 6개가 되는 낱말만 써야 한다는 게 꼬들의 첫 번째 관문이에요.</p>
<p>정답 447개를 모양별로 나눠 보면 대부분이 "받침 있는 글자 두 개"예요.</p>
<figure class="viz viz-donut"><figcaption class="viz-title">꼬들 정답 447개의 글자 구조</figcaption><svg viewBox="0 0 640 260" role="img" aria-label="꼬들 정답 447개의 글자 구조" preserveAspectRatio="xMidYMid meet"><path class="s1" d="M131.26,25.01 A105,105 0 1 1 108.24,27.28 L115.28,60.54 A71,71 0 1 0 130.85,59.01 Z"><title>3+3 (받침 글자 둘) · 433개 (96.9%)</title></path><path class="s2" d="M110.71,26.79 A105,105 0 0 1 119.90,25.49 L123.17,59.33 A71,71 0 0 0 116.95,60.21 Z"><title>4+2 (앞 글자가 4칸) · 8개 (1.8%)</title></path><path class="s3" d="M122.41,25.27 A105,105 0 0 1 128.74,25.01 L129.15,59.01 A71,71 0 0 0 124.87,59.19 Z"><title>2+4 (뒤 글자가 4칸) · 6개 (1.3%)</title></path><text class="viz-center" x="130" y="137" text-anchor="middle">447개</text><rect class="s1" x="290" y="29" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="41">3+3 (받침 글자 둘)</text><text class="viz-val" x="630" y="41" text-anchor="end">433개 · 97%</text><rect class="s2" x="290" y="61" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="73">4+2 (앞 글자가 4칸)</text><text class="viz-val" x="630" y="73" text-anchor="end">8개 · 2%</text><rect class="s3" x="290" y="93" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="105">2+4 (뒤 글자가 4칸)</text><text class="viz-val" x="630" y="105" text-anchor="end">6개 · 1%</text></svg><p class="viz-note">4칸 글자는 겹모음+받침(광·권·환 등) 또는 겹받침(넓) 글자예요.</p><div class="viz-cap">단위: 개 · 자료: 스미스 게임 연구소 꼬들 정답 목록 447개를 직접 분해해 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>낱말 수</th></tr></thead><tbody><tr><td>3+3 (받침 글자 둘)</td><td>433</td></tr><tr><td>4+2 (앞 글자가 4칸)</td><td>8</td></tr><tr><td>2+4 (뒤 글자가 4칸)</td><td>6</td></tr></tbody></table></div></details></figure>
<p>433개(96.9%)가 "자음+모음+받침" 두 개라는 건 아주 큰 힌트예요. 처음부터 <strong>1·4번째 칸은 첫소리, 2·5번째 칸은 모음, 3·6번째 칸은 받침</strong>이라고 가정하고 시작해도 거의 틀리지 않아요. 4칸짜리 글자가 들어간 낱말은 계획·광고·광부·권리·넓이·사원·소원·완두·왕자·재활·주황·초원·환자·황사 14개뿐이에요.</p>
<h2 id="s3">색깔 판정, 같은 자모가 두 번 나오면?</h2>
<p>꼬들에서 가장 많이 헷갈리는 게 회색의 뜻이에요. 회색은 "정답에 없음"이 아니라 <strong>"정답에 남은 개수를 넘었음"</strong>이에요. 판정은 두 단계로 해요.</p>
<ol><li>자리까지 맞는 칸을 먼저 초록으로 칠해요.</li><li>정답에 남은 자모 개수만큼만 왼쪽부터 노랑을 주고, 개수를 넘는 칸은 회색이에요.</li></ol>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/kordle-korean-wordle-tips-2.svg" alt="정답 방석에 강산을 넣었을 때의 판정: 1단계로 ㅏ, ㅇ, ㅅ이 초록, 2단계로 남은 ㄱ이 노랑, 둘째 ㅏ와 ㄴ은 회색" width="800" height="520" loading="lazy" decoding="async"><figcaption>중복 자모 판정 순서</figcaption></figure>
<p>정답이 방석(ㅂㅏㅇㅅㅓㄱ)이고 강산(ㄱㅏㅇㅅㅏㄴ)을 넣으면 결과는 🟨🟩🟩🟩⬜⬜이에요. 둘째 ㅏ가 회색이지만 ㅏ는 정답에 분명히 있어요. 정답에 ㅏ가 하나뿐이고, 그 하나를 이미 두 번째 칸에서 초록으로 찾았기 때문이에요. 이 원리를 모르면 "ㅏ는 없구나" 하고 지워 버리는 실수를 하게 돼요.</p>
<p>반대로 이 규칙을 이용할 수도 있어요. 같은 자모를 일부러 두 번 넣었는데 둘 다 초록이나 노랑이 나오면, 그 자모가 정답에 두 번 들어 있다는 확실한 증거예요. 정답 중에는 공간(ㄱㅗㅇㄱㅏㄴ)·강산·감각처럼 같은 자모가 두 번 나오는 낱말이 꽤 있어서, 후반에 후보가 좁혀졌을 때 쓸모가 있어요.</p>
<h2 id="s4">꼬들 자모 빈도: 정답에 가장 많이 나오는 자모</h2>
<p>좋은 첫 단어를 고르려면 정답에 어떤 자모가 자주 들어가는지 알아야 해요. 정답 447개에서 각 자모가 <strong>들어 있는 낱말의 비율</strong>을 세어 봤어요(한 낱말에 두 번 나와도 한 번으로 셌어요).</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">꼬들 정답에 각 자모가 들어 있는 비율</figcaption><svg viewBox="0 0 640 492" role="img" aria-label="꼬들 정답에 각 자모가 들어 있는 비율" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="50" y="29" text-anchor="end">ㅇ</text><rect class="s1" x="60" y="15" width="388.2" height="20" rx="3"><title>ㅇ · 60.9%</title></rect><text class="viz-val" x="454.2" y="29">60.9%</text><text class="viz-ax lg" x="50" y="63" text-anchor="end">ㅏ</text><rect class="s1" x="60" y="49" width="298.4" height="20" rx="3"><title>ㅏ · 46.8%</title></rect><text class="viz-val" x="364.4" y="63">46.8%</text><text class="viz-ax lg" x="50" y="97" text-anchor="end">ㄱ</text><rect class="s1" x="60" y="83" width="283.7" height="20" rx="3"><title>ㄱ · 44.5%</title></rect><text class="viz-val" x="349.7" y="97">44.5%</text><text class="viz-ax lg" x="50" y="131" text-anchor="end">ㄴ</text><rect class="s1" x="60" y="117" width="259.5" height="20" rx="3"><title>ㄴ · 40.7%</title></rect><text class="viz-val" x="325.5" y="131">40.7%</text><text class="viz-ax lg" x="50" y="165" text-anchor="end">ㅅ</text><rect class="s1" x="60" y="151" width="192.5" height="20" rx="3"><title>ㅅ · 30.2%</title></rect><text class="viz-val" x="258.5" y="165">30.2%</text><text class="viz-ax lg" x="50" y="199" text-anchor="end">ㄹ</text><rect class="s1" x="60" y="185" width="185.5" height="20" rx="3"><title>ㄹ · 29.1%</title></rect><text class="viz-val" x="251.5" y="199">29.1%</text><text class="viz-ax lg" x="50" y="233" text-anchor="end">ㅗ</text><rect class="s1" x="60" y="219" width="185.5" height="20" rx="3"><title>ㅗ · 29.1%</title></rect><text class="viz-val" x="251.5" y="233">29.1%</text><text class="viz-ax lg" x="50" y="267" text-anchor="end">ㅂ</text><rect class="s1" x="60" y="253" width="181.1" height="20" rx="3"><title>ㅂ · 28.4%</title></rect><text class="viz-val" x="247.1" y="267">28.4%</text><text class="viz-ax lg" x="50" y="301" text-anchor="end">ㅁ</text><rect class="s1" x="60" y="287" width="176.6" height="20" rx="3"><title>ㅁ · 27.7%</title></rect><text class="viz-val" x="242.6" y="301">27.7%</text><text class="viz-ax lg" x="50" y="335" text-anchor="end">ㅓ</text><rect class="s1" x="60" y="321" width="161.3" height="20" rx="3"><title>ㅓ · 25.3%</title></rect><text class="viz-val" x="227.3" y="335">25.3%</text><text class="viz-ax lg" x="50" y="369" text-anchor="end">ㅣ</text><rect class="s1" x="60" y="355" width="158.1" height="20" rx="3"><title>ㅣ · 24.8%</title></rect><text class="viz-val" x="224.1" y="369">24.8%</text><text class="viz-ax lg" x="50" y="403" text-anchor="end">ㅈ</text><rect class="s1" x="60" y="389" width="145.3" height="20" rx="3"><title>ㅈ · 22.8%</title></rect><text class="viz-val" x="211.3" y="403">22.8%</text><text class="viz-ax lg" x="50" y="437" text-anchor="end">ㅜ</text><rect class="s1" x="60" y="423" width="145.3" height="20" rx="3"><title>ㅜ · 22.8%</title></rect><text class="viz-val" x="211.3" y="437">22.8%</text><text class="viz-ax lg" x="50" y="471" text-anchor="end">ㅕ</text><rect class="s1" x="60" y="457" width="116.7" height="20" rx="3"><title>ㅕ · 18.3%</title></rect><text class="viz-val" x="182.7" y="471">18.3%</text></svg><p class="viz-note">ㅇ은 받침(ㅇ)과 첫소리(소리 없는 ㅇ) 양쪽에 다 쓰여서 압도적으로 많아요.</p><div class="viz-cap">단위: % · 자료: 스미스 게임 연구소 꼬들 정답 447개를 직접 세어 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>들어 있는 비율</th></tr></thead><tbody><tr><td>ㅇ</td><td>60.9</td></tr><tr><td>ㅏ</td><td>46.8</td></tr><tr><td>ㄱ</td><td>44.5</td></tr><tr><td>ㄴ</td><td>40.7</td></tr><tr><td>ㅅ</td><td>30.2</td></tr><tr><td>ㄹ</td><td>29.1</td></tr><tr><td>ㅗ</td><td>29.1</td></tr><tr><td>ㅂ</td><td>28.4</td></tr><tr><td>ㅁ</td><td>27.7</td></tr><tr><td>ㅓ</td><td>25.3</td></tr><tr><td>ㅣ</td><td>24.8</td></tr><tr><td>ㅈ</td><td>22.8</td></tr><tr><td>ㅜ</td><td>22.8</td></tr><tr><td>ㅕ</td><td>18.3</td></tr></tbody></table></div></details></figure>
<p>몇 가지 눈에 띄는 점이 있어요.</p>
<ul><li><strong>ㅇ이 1등(60.9%)</strong>이에요. 받침 ㅇ(강·방·생)과 첫소리 ㅇ(안·얼·음)을 둘 다 차지해서예요. 첫 줄에 ㅇ을 안 넣는 건 손해예요.</li><li><strong>모음은 ㅏ &gt; ㅗ &gt; ㅓ &gt; ㅣ &gt; ㅜ &gt; ㅕ 순</strong>이에요. ㅏ가 들어간 낱말이 209개로 절반 가까이 돼요. 반대로 ㅑ(10개), ㅛ(5개), ㅔ(4개), ㅠ(3개), ㅖ(1개)는 아주 드물어서, 초반에 확인할 필요가 거의 없어요.</li><li><strong>받침 자리는 ㅇ·ㄴ·ㄹ·ㄱ이 대부분</strong>이에요. 3+3 낱말 433개 중 3번째 칸이 ㅇ인 게 116개, ㄴ이 104개, ㄹ이 64개, ㄱ이 51개였고, 6번째 칸은 ㅇ 106개, ㄱ 87개, ㄴ 72개, ㄹ 62개였어요.</li><li>쌍자음이 들어간 정답은 24개(5.4%)뿐이에요. 쌍자음은 다른 정보를 다 모은 뒤에 떠올려도 늦지 않아요.</li></ul>
<h2 id="s5">꼬들 첫 단어 추천: 방석·산골·장군이 좋은 이유</h2>
<p>자모 빈도만 보면 "흔한 자모 6개가 겹치지 않는 낱말"이 좋은 첫 단어예요. 더 정확하게 비교하려고, 정답 447개 각각을 첫 단어로 넣었을 때 나오는 색깔 패턴을 전부 계산하고 <strong>첫 줄 뒤에 남는 정답 후보 수의 평균</strong>을 구했어요. 작을수록 첫 줄이 정보를 많이 준 거예요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">첫 단어별 첫 줄 뒤 남는 정답 후보 수 (평균)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="첫 단어별 첫 줄 뒤 남는 정답 후보 수 (평균)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">15</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">20</text><rect class="s1" x="61.6" y="199.7" width="44.8" height="54.3" rx="3"><title>방석 · 남는 후보 평균 4.6개</title></rect><text class="viz-val" x="84.0" y="194.7" text-anchor="middle">4.6</text><text class="viz-ax" x="84.0" y="272" text-anchor="middle">방석</text><rect class="s1" x="125.6" y="193.8" width="44.8" height="60.2" rx="3"><title>산골 · 남는 후보 평균 5.1개</title></rect><text class="viz-val" x="148.0" y="188.8" text-anchor="middle">5.1</text><text class="viz-ax" x="148.0" y="272" text-anchor="middle">산골</text><rect class="s1" x="189.6" y="192.6" width="44.8" height="61.4" rx="3"><title>장군 · 남는 후보 평균 5.2개</title></rect><text class="viz-val" x="212.0" y="187.6" text-anchor="middle">5.2</text><text class="viz-ax" x="212.0" y="272" text-anchor="middle">장군</text><rect class="s1" x="253.6" y="192.6" width="44.8" height="61.4" rx="3"><title>긴장 · 남는 후보 평균 5.2개</title></rect><text class="viz-val" x="276.0" y="187.6" text-anchor="middle">5.2</text><text class="viz-ax" x="276.0" y="272" text-anchor="middle">긴장</text><rect class="s1" x="317.6" y="191.5" width="44.8" height="62.5" rx="3"><title>중간 · 남는 후보 평균 5.3개</title></rect><text class="viz-val" x="340.0" y="186.5" text-anchor="middle">5.3</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">중간</text><rect class="s1" x="381.6" y="183.2" width="44.8" height="70.8" rx="3"><title>강물 · 남는 후보 평균 6개</title></rect><text class="viz-val" x="404.0" y="178.2" text-anchor="middle">6</text><text class="viz-ax" x="404.0" y="272" text-anchor="middle">강물</text><rect class="s1" x="445.6" y="146.6" width="44.8" height="107.4" rx="3"><title>과일 · 남는 후보 평균 9.1개</title></rect><text class="viz-val" x="468.0" y="141.6" text-anchor="middle">9.1</text><text class="viz-ax" x="468.0" y="272" text-anchor="middle">과일</text><rect class="s1" x="509.6" y="138.4" width="44.8" height="115.6" rx="3"><title>학생 · 남는 후보 평균 9.8개</title></rect><text class="viz-val" x="532.0" y="133.4" text-anchor="middle">9.8</text><text class="viz-ax" x="532.0" y="272" text-anchor="middle">학생</text><rect class="s1" x="573.6" y="59.3" width="44.8" height="194.7" rx="3"><title>온천 · 남는 후보 평균 16.5개</title></rect><text class="viz-val" x="596.0" y="54.3" text-anchor="middle">16.5</text><text class="viz-ax" x="596.0" y="272" text-anchor="middle">온천</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">정답 목록을 모두 아는 컴퓨터 기준이에요. 사람에게는 상대 비교로만 보세요.</p><div class="viz-cap">단위: 개 · 자료: 스미스 게임 연구소 꼬들 정답 447개 전체에 대해 직접 계산 (색깔 패턴별 후보 수의 제곱 평균)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>남는 후보 평균</th></tr></thead><tbody><tr><td>방석</td><td>4.6</td></tr><tr><td>산골</td><td>5.1</td></tr><tr><td>장군</td><td>5.2</td></tr><tr><td>긴장</td><td>5.2</td></tr><tr><td>중간</td><td>5.3</td></tr><tr><td>강물</td><td>6</td></tr><tr><td>과일</td><td>9.1</td></tr><tr><td>학생</td><td>9.8</td></tr><tr><td>온천</td><td>16.5</td></tr></tbody></table></div></details></figure>
<div class="table-wrap"><table><thead><tr><th>첫 단어</th><th>자모</th><th>나올 수 있는 색 패턴</th><th>최악일 때 남는 후보</th></tr></thead><tbody><tr><td>방석</td><td>ㅂㅏㅇㅅㅓㄱ</td><td>182가지</td><td>16개</td></tr><tr><td>산골</td><td>ㅅㅏㄴㄱㅗㄹ</td><td>173가지</td><td>12개</td></tr><tr><td>장군</td><td>ㅈㅏㅇㄱㅜㄴ</td><td>165가지</td><td>14개</td></tr><tr><td>긴장</td><td>ㄱㅣㄴㅈㅏㅇ</td><td>171가지</td><td>17개</td></tr><tr><td>학생</td><td>ㅎㅏㄱㅅㅐㅇ</td><td>126가지</td><td>29개</td></tr><tr><td>온천</td><td>ㅇㅗㄴㅊㅓㄴ</td><td>100가지</td><td>46개</td></tr></tbody></table></div>
<p>방석이 1등인 이유는 간단해요. <strong>ㅂ·ㅏ·ㅇ·ㅅ·ㅓ·ㄱ 여섯 개가 모두 빈도 상위권이고, 서로 겹치지 않으며, 받침 자리에 가장 흔한 ㅇ과 ㄱ이 들어가 있어서</strong>예요. 학생은 ㅐ(10.3%)와 ㅎ(15.0%)처럼 덜 흔한 자모에 칸을 두 개 쓰고, 온천은 ㄴ이 두 번 나와 칸 하나를 버리는 데다 ㅊ이 드물어서 효율이 크게 떨어져요.</p>
<h3>둘째 줄 짝꿍 단어</h3>
<p>첫 줄에서 초록·노랑이 거의 안 나왔다면, 둘째 줄은 첫 줄과 자모가 하나도 겹치지 않는 낱말로 남은 빈도 상위 자모를 확인하는 게 좋아요. 방석 다음으로는 <strong>질문(ㅈㅣㄹㅁㅜㄴ)</strong>이 남은 자모 중 흔한 것들(ㅈ·ㅣ·ㄹ·ㅁ·ㅜ·ㄴ)을 가장 많이 덮어요. 방석 + 질문 두 줄이면 빈도 상위 14개 자모 중 12개를 확인할 수 있어요. 문화(ㅁㅜㄴㅎㅗㅏ)나 달님(ㄷㅏㄹㄴㅣㅁ)도 괜찮은 짝이에요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">단계별 꼬들 공략법</h2>
<h3>1단계: 첫 두 줄은 정보 모으기</h3>
<p>첫 줄은 방석·산골·장군 중 하나, 둘째 줄은 겹치지 않는 낱말로 자모를 최대한 많이 확인해요. 이 단계에서는 정답을 맞히려 하지 말고 "어떤 자모가 있고 없는지"만 모은다고 생각하세요. 꼬들은 사전 검사를 하지 않아서 자모 6개가 두 글자로만 조합되면 다 받아 주는데, 그래도 처음 두 줄은 실제 낱말로 넣는 걸 추천해요. 진짜 낱말일수록 정답과 비슷한 자모 배치를 가지고 있어서 초록이 나올 확률이 높아요.</p>
<h3>2단계: 칸의 역할로 후보 좁히기</h3>
<p>3+3 구조라고 가정하면 각 칸의 역할이 정해져 있어요.</p>
<div class="table-wrap"><table><thead><tr><th>칸</th><th>역할</th><th>자주 나오는 자모</th></tr></thead><tbody><tr><td>1, 4</td><td>첫소리</td><td>ㅇ ㄱ ㅅ ㅂ ㅈ ㅎ</td></tr><tr><td>2, 5</td><td>모음</td><td>ㅏ ㅗ ㅓ ㅜ ㅣ ㅕ</td></tr><tr><td>3, 6</td><td>받침</td><td>ㅇ ㄴ ㄹ ㄱ ㅁ ㅂ</td></tr></tbody></table></div>
<p>노랑이 나온 자음은 "첫소리였는지 받침이었는지"부터 따져 보세요. 예를 들어 1번째 칸 ㄱ이 노랑이면 ㄱ은 4번째 칸(둘째 글자 첫소리)이거나 3·6번째 칸(받침)일 가능성이 커요. 모음이 노랑이면 다른 모음 칸(2↔5)으로 옮기면 대부분 맞아요.</p>
<h3>3단계: 남은 후보를 반으로 가르는 낱말</h3>
<p>후보가 서너 개로 좁혀지면, 그중 하나를 찍기보다 <strong>후보끼리 다른 자모를 최대한 많이 담은 낱말</strong>을 넣는 게 평균 시도를 줄여요. 예를 들어 후보가 강당·강산·강연이라면, ㄷ·ㅅ·ㅇ을 한 번에 확인할 수 있는 낱말을 넣으면 다음 줄에서 확실히 맞혀요. 다만 6번째 줄이 마지막 기회라면 그때는 후보 중 하나를 넣어야 해요.</p>
<p>참고로 정답 목록을 전부 아는 컴퓨터가 매번 "남는 후보가 가장 적어지는 낱말"을 고르면, 방석으로 시작했을 때 447개 정답을 평균 2.6번, 최악 4번 만에 맞혀요. 사람은 정답 목록을 모르니 이만큼은 어렵지만, 정보를 모으는 순서만 지켜도 4번 안팎이 현실적인 목표예요.</p>
<h2 id="s7">꼬들에서 자주 하는 실수</h2>
<ul><li><strong>회색을 "없음"으로만 읽기</strong> — 같은 자모를 두 번 넣었을 때 하나만 색이 나오고 나머지가 회색이면, 그 자모는 정답에 한 번 있다는 뜻이에요.</li><li><strong>겹모음을 빼먹기</strong> — 모음 칸이 이상하게 안 맞으면 과일·광고·환자·권리처럼 ㅘ·ㅝ 글자일 수 있어요. 이때는 4+2나 2+4 구조로 바뀌어서 칸의 역할이 한 칸씩 밀려요.</li><li><strong>ㅐ를 ㅏ+ㅣ로 넣기</strong> — ㅐ와 ㅔ는 한 칸이에요. ㅏ와 ㅣ를 따로 넣으면 다른 글자가 돼요.</li><li><strong>노랑 자모를 같은 자리에 또 넣기</strong> — 노랑은 "그 자리는 아님"이라는 정보도 같이 줘요. 같은 칸에 다시 넣으면 한 줄을 버리는 셈이에요.</li><li><strong>드문 자모부터 확인하기</strong> — ㅋ·ㅌ·ㅍ·ㅑ·ㅛ·ㅠ는 정답에 거의 없어요. 초반에 이 자모로 칸을 채우면 정보가 적게 나와요.</li></ul>
<p>꼬들처럼 판정을 보고 후보를 지워 나가는 게임이 재미있다면 <a href="https://game.smithlab.co.kr/posts/games/number-baseball-winning-strategy/">숫자야구 필승 전략</a>도 같은 원리로 풀 수 있어요. 숫자야구는 숫자 10개, 꼬들은 자모 24개 남짓으로 재료만 다를 뿐 "모순 없는 후보만 남기기"라는 핵심은 같아요. 한글 자판 감각을 키우고 싶다면 <a href="https://game.smithlab.co.kr/games/typing-test/">한글 타자 속도 테스트</a>로 두벌식 자리를 손에 익혀 두는 것도 꼬들 입력 속도에 도움이 돼요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s8">오늘의 꼬들과 무한 연습, 결과 공유</h2>
<p><a href="https://game.smithlab.co.kr/games/kordle/">꼬들 게임</a>에는 두 가지 모드가 있어요.</p>
<ul><li><strong>오늘의 꼬들</strong> — 한국 시간 자정마다 바뀌고, 같은 날에는 누구에게나 같은 문제가 나와요. 2026년 10월 16일이 #1이에요. 한 번 풀면 그날은 다시 풀 수 없고, 승률·연속 정답·시도 분포가 쌓여요.</li><li><strong>무한 연습</strong> — 정답 목록에서 무작위로 문제가 나와요. 첫 단어 전략을 바꿔 가며 연습하기 좋아요.</li></ul>
<p>다 풀면 결과를 🟩🟨⬜ 이모지 격자로 복사할 수 있어요. 정답 글자는 드러나지 않아서 단톡방에 올려도 스포일러가 되지 않아요. 키보드 한/영 상태와 상관없이 키 위치로 입력되니, 영문 자판 상태에서 R을 눌러도 ㄱ이 들어가요. Shift+R은 ㄲ이에요.</p>
<h2 id="s9">자주 묻는 질문</h2>
<h3>꼬들 첫 단어로 가장 좋은 낱말은 뭔가요?</h3>
<p>스미스 게임 연구소 꼬들 정답 447개로 계산하면 방석(ㅂㅏㅇㅅㅓㄱ)이 첫 줄 뒤 남는 후보가 평균 4.6개로 가장 적었어요. 산골(5.1개), 장군·긴장(5.2개)도 좋아요. 공통점은 ㅇ·ㅏ·ㄱ·ㄴ·ㅅ 같은 흔한 자모 6개가 하나도 겹치지 않는다는 거예요.</p>
<h3>꼬들은 왜 자모가 6칸인가요?</h3>
<p>두 글자 낱말 중 가장 흔한 모양이 "자음+모음+받침" 글자 두 개, 즉 3+3=6칸이라서예요. 정답 447개 중 433개가 이 모양이에요. 곳에 따라 5칸 꼬들도 있지만, 이 게임은 6칸으로 고정했어요.</p>
<h3>사전에 없는 말을 넣어도 되나요?</h3>
<p>네. 자모 6개가 올바른 두 글자로 조합되면 사전에 없어도 받아요. 정답만 흔한 명사 중에서 나와요. 확인하고 싶은 자모를 몰아넣은 가짜 낱말로 정보를 모으는 것도 전략이지만, 진짜 낱말이 초록을 더 잘 만들어요.</p>
<h3>회색이 나왔는데 그 자모가 정답에 있을 수 있나요?</h3>
<p>있어요. 같은 자모를 두 번 넣었는데 정답에 한 번만 있으면, 하나는 초록이나 노랑, 나머지는 회색이 돼요. 회색은 "정답에 남은 개수를 넘었다"는 뜻이에요.</p>
<h3>겹받침이 들어간 낱말도 정답으로 나오나요?</h3>
<p>나올 수 있어요. 겹받침은 자음 두 칸으로 나누기 때문에, 넓이(ㄴㅓㄹㅂㅇㅣ)처럼 전체가 6칸이 되는 낱말만 정답이 돼요. 현재 정답 목록에서는 넓이 하나뿐이라 아주 드물어요.</p>
<h2 id="s10">정리</h2>
<p>꼬들은 두 글자 낱말을 자모 6칸으로 풀어 맞히는 한글판 워들이에요. 겹모음·겹받침은 두 칸, 쌍자음과 ㅐㅔ는 한 칸이라는 규칙만 익히면 바로 즐길 수 있어요. 정답의 97%가 받침 글자 두 개라서 3·6번째 칸은 받침, 2·5번째 칸은 모음이라고 생각하고 시작하세요. 첫 줄은 방석·산골·장군처럼 흔한 자모 6개가 겹치지 않는 낱말, 둘째 줄은 질문처럼 겹치지 않는 짝꿍 낱말을 넣으면 두 줄 만에 대부분의 자모를 확인할 수 있어요.</p>
<p>지금 바로 <a href="https://game.smithlab.co.kr/games/kordle/">꼬들 (한글 워들)</a>에서 오늘의 문제를 풀어 보세요. 추리 게임을 더 하고 싶다면 <a href="https://game.smithlab.co.kr/games/number-baseball/">숫자 야구 게임</a>도 함께 추천해요.</p>
    ]]></description>
    </item>
    <item>
      <title>암산 게임 효과, 두뇌 훈련 게임은 정말 머리를 좋게 할까</title>
      <link>https://game.smithlab.co.kr/posts/games/mental-math-brain-training-benefits/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/mental-math-brain-training-benefits/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>출퇴근길에 암산 게임이나 두뇌 훈련 앱을 켜는 분들 많죠. 점수가 하루하루 오르면 "머리가 좋아지고 있구나" 싶은데, 정말 그럴까요? 결론부터 말하면 암산 게임을 하면 암산 실력은 분명히 늘지만, 그 효과가 기억력·판단력·지능 같은 전반적인 능력으로 넘어간다는 과학적 근거는 아직 약해요. 연습한 것과 비슷한 일은 잘하게 되고, 많이 다른 일까지는 잘 번지지 않는다는 게 지금까지 연구의 큰 흐름이에요.</p>
<p>그렇다고 의미가 없다는 건 아니에요. 계산이 빨라지면 장보기·더치페이·업무 숫자 확인이 실제로 편해지고, 짧게 집중하는 습관을 만드는 데도 좋아요. 이 글은 두뇌 훈련 효과에 대한 주요 연구가 실제로 뭐라고 했는지, 암산 속도를 올리는 요령, 그리고 기대치를 제대로 잡고 즐기는 하루 10분 루틴까지 정리했어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>두뇌 훈련의 효과는 연습한 과제와 비슷한 과제에서 잘 나타나고(근전이), 전혀 다른 능력으로 퍼지는 효과(원전이)는 근거가 약하다는 게 여러 대규모 연구와 리뷰의 결론이에요.</li><li>2010년 1만 1천여 명이 참여한 연구에서도 6주 훈련 후 연습한 과제는 늘었지만, 훈련하지 않은 시험 점수는 거의 변하지 않았어요.</li><li>그래도 암산 게임은 암산 자체, 숫자 감각, 짧은 집중 습관에는 도움이 돼요. 목표를 "암산을 잘하기"로 잡으면 충분히 남는 게 있어요.</li><li>뇌 건강 전반을 원한다면 운동, 수면, 사회 활동, 새로운 것 배우기가 게임보다 근거가 탄탄해요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">암산 게임 효과: 연습한 만큼은 확실히 늘어요</h2>
<p>암산 게임을 일주일만 해 봐도 점수가 오르는 걸 느낄 거예요. 이건 착각이 아니라 진짜 실력 향상이에요. 이유는 크게 세 가지예요.</p>
<ul><li><strong>자주 나오는 조합을 외워요</strong>: 7 × 8 = 56, 15 + 27 = 42 같은 조합이 계산이 아니라 기억에서 바로 꺼내져요. 같은 문제를 반복하면 뇌가 "계산"을 "인출"로 바꿔요.</li><li><strong>요령이 생겨요</strong>: 47 + 38을 47 + 40 − 2로 바꾸는 식의 지름길을 스스로 찾게 돼요.</li><li><strong>게임 자체에 익숙해져요</strong>: 문제 위치, 입력 방식, 시간 압박에 적응하는 것만으로도 점수가 꽤 올라요. 초반 상승분의 상당 부분은 이 적응이에요.</li></ul>
<p>여기서 중요한 건 세 번째예요. 점수가 오른 이유 중 일부는 "머리가 좋아져서"가 아니라 "그 게임을 잘하게 돼서"예요. 그래서 점수 상승을 곧바로 두뇌 능력 향상으로 해석하면 과대평가가 돼요.</p>
<h2 id="s2">두뇌 훈련 게임 효과, 연구는 뭐라고 할까</h2>
<p>두뇌 훈련의 효과를 따질 때 연구자들은 <strong>전이(transfer)</strong> 라는 개념을 써요.</p>
<ul><li><strong>근전이(near transfer)</strong>: 연습한 과제와 비슷한 과제가 좋아지는 것. 암산 게임을 하면 종이 계산도 빨라지는 식이에요.</li><li><strong>원전이(far transfer)</strong>: 연습한 과제와 다른 능력이 좋아지는 것. 암산 게임을 했더니 기억력이나 문제 해결력, 지능 검사 점수가 오르는 식이에요.</li></ul>
<p>두뇌 훈련 앱 광고가 약속하는 건 대부분 원전이예요. 그런데 이 부분의 근거가 약해요.</p>
<h3>주요 연구 세 가지</h3>
<ol><li>2010년 영국 대규모 온라인 연구(Owen 등, 학술지 Nature): <a href="https://pubmed.ncbi.nlm.nih.gov/20407435/" target="_blank" rel="noopener">「두뇌 훈련을 시험대에 올리다」(PubMed 20407435)</a>에서 11,430명이 6주간 추론·기억·계획·시공간·주의 과제를 일주일에 여러 번 훈련했어요. 연습한 과제 점수는 모두 올랐지만, 훈련하지 않은 과제로의 전이는 "인지적으로 아주 가까운 과제에서도" 근거가 나오지 않았어요.</li><li>2016년 종합 리뷰(Simons 등, Psychological Science in the Public Interest): <a href="https://pubmed.ncbi.nlm.nih.gov/27697851/" target="_blank" rel="noopener">PubMed 27697851</a>. 두뇌 훈련 회사들이 근거로 내세운 연구들을 검토한 결과, 훈련한 과제의 향상은 확실하지만 일상의 인지 능력으로 넘어간다는 근거는 거의 없다고 결론 냈어요. 연구 설계의 한계(대조군 부족, 기대 효과 통제 미흡)도 많이 지적했어요.</li><li>작업기억 훈련 메타분석(Melby-Lervåg·Hulme, 2013): 23개 연구(30개 비교)를 묶은 <a href="https://pubmed.ncbi.nlm.nih.gov/22612437/" target="_blank" rel="noopener">메타분석(PubMed 22612437)</a>에서 작업기억 훈련은 단기적으로 작업기억 과제를 올렸지만, 언어 작업기억의 향상은 추적 시점에 유지되지 않았고 비언어·언어 능력, 주의 억제, 단어 해독, 산수로의 일반화는 설득력 있는 근거가 없었어요.</li></ol>
<p>같은 해인 2016년에는 미국 연방거래위원회(FTC)가 한 유명 두뇌 훈련 앱 회사에 "근거 없이 치매 예방·학업 성적 향상을 광고했다"며 제재를 내리기도 했어요.</p>
<div class="table-wrap"><table><thead><tr><th>연구</th><th>규모</th><th>훈련한 과제</th><th>비슷한 과제(근전이)</th><th>다른 능력(원전이)</th></tr></thead><tbody><tr><td>Owen 외 2010</td><td>11,430명, 6주</td><td>모든 과제 향상</td><td>근거 없음</td><td>근거 없음</td></tr><tr><td>Melby-Lervåg·Hulme 2013</td><td>23개 연구 메타분석</td><td>단기 향상</td><td>단기 향상, 언어 쪽은 유지 안 됨</td><td>산수·읽기 등 일반화 근거 없음</td></tr><tr><td>Simons 외 2016</td><td>업계 인용 논문 전체 검토</td><td>근거 많음</td><td>근거 적음</td><td>근거 거의 없음</td></tr><tr><td>ACTIVE 10년 (Rebok 외 2014)</td><td>노인 2,832명</td><td>추론·속도는 10년 유지</td><td>일부</td><td>일상 기능 저하가 덜했다는 자기 보고</td></tr></tbody></table></div>
<h3>그래도 효과가 보고된 경우</h3>
<p>반대쪽 근거도 있어요. 미국 노인 2,832명을 10년 추적한 <a href="https://pubmed.ncbi.nlm.nih.gov/24417410/" target="_blank" rel="noopener">ACTIVE 연구(Rebok 외 2014, PubMed 24417410)</a>에서는 처리 속도 훈련을 받은 그룹이 수년 뒤에도 훈련한 능력을 상당 부분 유지했고, 일상 기능 저하가 덜했다는 분석이 나왔어요. 다만 결과 해석을 두고 학계 논쟁이 이어지고 있고, 훈련 방식도 시중 게임과 달랐어요.</p>
<p>정리하면 "두뇌 훈련은 쓸모없다"도, "머리가 좋아진다"도 과장이에요. 연습한 능력은 늘고, 그 능력과 가까운 일상 과제에는 도움이 될 수 있지만, 지능 전반이 오르는 마법은 아니에요. 치매 예방과의 관계는 <a href="https://game.smithlab.co.kr/posts/games/brain-games-dementia-facts/">두뇌 게임과 치매 예방, 어디까지 사실일까</a>에서 따로 자세히 다뤘어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/mental-math-brain-training-benefits-1.svg" alt="두뇌 훈련 효과를 연습한 과제, 비슷한 과제(근전이), 다른 능력(원전이) 세 단계로 나누고 근거 강도를 표시한 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>두뇌 훈련 효과가 번지는 범위와 근거 강도</figcaption></figure>
<h2 id="s3">암산 속도 올리는 요령 5가지</h2>
<p>목표를 "암산을 잘하기"로 잡으면, 요령을 익히는 것만으로도 체감이 커요. 암산 고수들이 공통으로 쓰는 방법이에요.</p>
<div class="table-wrap"><table><thead><tr><th>요령</th><th>예시</th><th>원리</th></tr></thead><tbody><tr><td>10 단위로 맞추기</td><td>47 + 38 = 47 + 40 − 2 = 85</td><td>받아올림 대신 반올림 후 보정</td></tr><tr><td>앞자리부터 계산</td><td>356 + 248 → 500 + 90 + 14 = 604</td><td>큰 자리부터 어림이 먼저 잡힘</td></tr><tr><td>곱셈 쪼개기</td><td>25 × 16 = 25 × 4 × 4 = 400</td><td>쉬운 수(100, 1000)로 변환</td></tr><tr><td>11 곱하기</td><td>43 × 11 = 4(4+3)3 = 473</td><td>두 자리 더해 가운데에 넣기</td></tr><tr><td>5로 끝나는 수 제곱</td><td>35² = 3 × 4 = 12, 뒤에 25 → 1225</td><td>십의 자리 × (십의 자리 + 1)</td></tr></tbody></table></div>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/mental-math-brain-training-benefits-3.svg" alt="47 더하기 38을 종이 계산 순서(받아올림), 10 단위로 맞추기(47+40-2), 앞자리부터(70+15) 세 가지 경로로 풀고 각 경로에서 머릿속에 붙잡아야 하는 중간값을 비교한 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>암산은 중간값을 적게 붙잡는 경로가 빨라요</figcaption></figure>
<p>표의 예시는 모두 파이썬으로 다시 계산해 확인했어요(47 + 38 = 85, 356 + 248 = 604, 25 × 16 = 400, 43 × 11 = 473, 35² = 1225).</p>
<p>뺄셈은 <strong>보수</strong>를 쓰면 빨라요. 1000 − 367은 각 자리를 9에서 빼고(632) 마지막에 1을 더해 633이에요. 거스름돈 계산에 그대로 쓸 수 있어요.</p>
<p>요령은 한 번에 다 외우려 하지 말고, 일주일에 하나씩 게임에서 의식적으로 써 보는 게 좋아요. 처음엔 오히려 느려지지만, 2~3일 지나면 자동으로 손이 가요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">문제당 걸리는 시간과 1분에 푸는 문제 수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="문제당 걸리는 시간과 1분에 푸는 문제 수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="628" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">15</text><line class="viz-grid" x1="52" x2="628" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">25</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">30</text><rect class="s1" x="69.3" y="18.0" width="80.6" height="236.0" rx="3"><title>2초 · 1분 문제 수 30문제</title></rect><text class="viz-val" x="109.6" y="13.0" text-anchor="middle">30</text><text class="viz-ax" x="109.6" y="272" text-anchor="middle">2초</text><rect class="s1" x="184.5" y="96.7" width="80.6" height="157.3" rx="3"><title>3초 · 1분 문제 수 20문제</title></rect><text class="viz-val" x="224.8" y="91.7" text-anchor="middle">20</text><text class="viz-ax" x="224.8" y="272" text-anchor="middle">3초</text><rect class="s1" x="299.7" y="136.0" width="80.6" height="118.0" rx="3"><title>4초 · 1분 문제 수 15문제</title></rect><text class="viz-val" x="340.0" y="131.0" text-anchor="middle">15</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">4초</text><rect class="s1" x="414.9" y="159.6" width="80.6" height="94.4" rx="3"><title>5초 · 1분 문제 수 12문제</title></rect><text class="viz-val" x="455.2" y="154.6" text-anchor="middle">12</text><text class="viz-ax" x="455.2" y="272" text-anchor="middle">5초</text><rect class="s1" x="530.1" y="175.3" width="80.6" height="78.7" rx="3"><title>6초 · 1분 문제 수 10문제</title></rect><text class="viz-val" x="570.4" y="170.3" text-anchor="middle">10</text><text class="viz-ax" x="570.4" y="272" text-anchor="middle">6초</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">문제당 1초만 줄여도 1분 기록이 크게 달라져요. 4초에서 3초면 15문제에서 20문제가 돼요.</p><div class="viz-cap">단위: 문제 · 자료: 60초 ÷ 문제당 시간으로 직접 계산 (입력 시간 포함)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>1분 문제 수</th></tr></thead><tbody><tr><td>2초</td><td>30</td></tr><tr><td>3초</td><td>20</td></tr><tr><td>4초</td><td>15</td></tr><tr><td>5초</td><td>12</td></tr><tr><td>6초</td><td>10</td></tr></tbody></table></div></details></figure>
<h3>이 사이트 암산 게임의 난이도별 문제 구성</h3>
<p><a href="https://game.smithlab.co.kr/games/mental-math/">암산 게임</a>은 60초 동안 사칙연산 문제가 무작위로 나오고, 정답을 입력하면 바로 다음 문제로 넘어가요. 게임 코드의 출제 범위로 받아올림·받아내림이 나오는 비율을 직접 계산하면 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>난이도</th><th>덧셈·뺄셈 범위</th><th>곱셈·나눗셈 범위</th><th>덧셈 중 받아올림 있는 문제</th><th>뺄셈 중 받아내림 있는 문제</th></tr></thead><tbody><tr><td>쉬움</td><td>1~9</td><td>구구단 2~5단</td><td>55.6%</td><td>0%</td></tr><tr><td>보통</td><td>10~99</td><td>구구단 전체</td><td>75.6%</td><td>40.0%</td></tr><tr><td>어려움</td><td>100~999</td><td>두 자리 × 한 자리</td><td>약 86.5%</td><td>약 66.3%</td></tr></tbody></table></div>
<p>보통 난이도에서 덧셈 네 문제 중 세 문제는 받아올림이 있어요. 10 단위로 맞추기와 앞자리부터 계산을 익히면 바로 체감되는 이유예요. 어려움에서는 두 자리 × 한 자리 곱셈이 나오니 "곱셈 쪼개기"(예: 48 × 25 = 12 × 100 = 1,200)가 특히 쓸모 있어요.</p>
<aside class="callout tip"><b class="callout-h">팁</b><p>정확도가 90% 아래로 떨어지면 속도를 올리지 말고 한 단계 쉬운 난이도로 내려가세요. 틀린 답은 시간만 쓰고 점수가 되지 않아서, 빨리 많이 누르는 것보다 확실히 맞히는 쪽이 1분 기록이 높아요.</p></aside>
<h2 id="s4">두뇌 훈련 게임 제대로 하는 법: 하루 10분 루틴</h2>
<p>기대치를 제대로 잡았다면 이제 즐겁게, 꾸준히 하는 게 핵심이에요. 짧고 다양하게 하는 루틴을 추천해요.</p>
<ol><li><strong>워밍업 2분, 반응·순발력</strong>: <a href="https://game.smithlab.co.kr/games/aim-trainer/">에임 트레이너</a>나 <a href="https://game.smithlab.co.kr/games/click-speed/">클릭 속도 테스트</a>로 손과 눈을 깨워요. 반응 속도에 대한 이야기는 <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응 속도 평균과 원리</a>에 정리해 뒀어요.</li><li><strong>본 게임 5분, 암산</strong>: <a href="https://game.smithlab.co.kr/games/mental-math/">암산 게임</a>으로 그날의 요령 하나를 의식하며 풀어요. 정확도 90% 이상을 유지하는 난이도가 적당해요.</li><li><strong>마무리 3분, 기억</strong>: <a href="https://game.smithlab.co.kr/games/card-matching/">카드 짝 맞추기</a>나 <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억 게임</a>처럼 다른 종류의 과제로 끝내요.</li></ol>
<p>이렇게 섞는 이유는 한 게임만 반복하면 그 게임에만 최적화되기 때문이에요. 여러 종류를 돌리면 적어도 지루함이 줄고, 각 능력의 근전이 범위를 넓힐 수 있어요.</p>
<h3>기록은 이렇게 남기세요</h3>
<ul><li>점수보다 <strong>정확도와 문제당 시간</strong>을 따로 적어요. 빨라졌는데 틀린 게 늘었다면 실력이 는 게 아니에요.</li><li>매일 같은 시간대에 해요. 피곤한 밤과 개운한 아침은 점수가 꽤 달라서, 시간대가 섞이면 추세가 안 보여요.</li><li>정체기가 오면 난이도를 올리거나 다른 게임으로 바꿔요. 정체기는 그 게임에 충분히 익숙해졌다는 신호예요.</li></ul>
<figure class="viz viz-line"><figcaption class="viz-title">하루 10분 암산 연습 4주 기록 (예시)</figcaption><div class="viz-legend"><span><i class="s1"></i>1분 정답 수</span><span><i class="s2"></i>오답 수</span></div><svg viewBox="0 0 640 300" role="img" aria-label="하루 10분 암산 연습 4주 기록 (예시)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">15</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">20</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">1주</text><text class="viz-ax" x="224.7" y="272" text-anchor="middle">2주</text><text class="viz-ax" x="397.3" y="272" text-anchor="middle">3주</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">4주</text><polyline class="viz-line s1" points="52.0,124.2 224.7,88.8 397.3,65.2 570.0,53.4"/><circle class="viz-dot s1" cx="52.0" cy="124.2" r="4"><title>1주 · 1분 정답 수 11문제</title></circle><circle class="viz-dot s1" cx="224.7" cy="88.8" r="4"><title>2주 · 1분 정답 수 14문제</title></circle><circle class="viz-dot s1" cx="397.3" cy="65.2" r="4"><title>3주 · 1분 정답 수 16문제</title></circle><circle class="viz-dot s1" cx="570.0" cy="53.4" r="4"><title>4주 · 1분 정답 수 17문제</title></circle><text class="viz-val" x="578.0" y="57.4">17</text><polyline class="viz-line s2" points="52.0,218.6 224.7,230.4 397.3,230.4 570.0,242.2"/><circle class="viz-dot s2" cx="52.0" cy="218.6" r="4"><title>1주 · 오답 수 3문제</title></circle><circle class="viz-dot s2" cx="224.7" cy="230.4" r="4"><title>2주 · 오답 수 2문제</title></circle><circle class="viz-dot s2" cx="397.3" cy="230.4" r="4"><title>3주 · 오답 수 2문제</title></circle><circle class="viz-dot s2" cx="570.0" cy="242.2" r="4"><title>4주 · 오답 수 1문제</title></circle><text class="viz-val" x="578.0" y="246.2">1</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">초반에 빨리 오르고 이후 완만해지는 게 일반적인 연습 곡선 모양이에요.</p><div class="viz-cap">단위: 문제 · 자료: 개인 연습 기록 예시 (실제 향상 폭은 사람마다 달라요)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>1분 정답 수</th><th>오답 수</th></tr></thead><tbody><tr><td>1주</td><td>11</td><td>3</td></tr><tr><td>2주</td><td>14</td><td>2</td></tr><tr><td>3주</td><td>16</td><td>2</td></tr><tr><td>4주</td><td>17</td><td>1</td></tr></tbody></table></div></details></figure>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">뇌 건강을 원한다면 게임보다 먼저 할 것</h2>
<p>두뇌 게임이 뇌 건강의 주인공이 될 수는 없어요. 세계보건기구(WHO)의 인지 저하·치매 위험 감소 지침이나 여러 연구에서 근거가 더 탄탄하다고 보는 건 이런 것들이에요.</p>
<ul><li><strong>규칙적인 유산소 운동</strong>: 걷기, 자전거, 수영처럼 숨이 차는 운동을 주 150분 정도.</li><li><strong>충분한 수면</strong>: 잠을 줄여 가며 게임을 하면 오히려 손해예요.</li><li><strong>사회 활동</strong>: 대화하고 사람을 만나는 건 그 자체로 복합적인 인지 활동이에요.</li><li><strong>새로운 것 배우기</strong>: 악기, 외국어, 새로운 취미처럼 낯설고 어려운 걸 배우는 과정.</li><li><strong>혈압·혈당·청력 관리</strong>: 중년기 고혈압, 당뇨, 난청은 인지 저하 위험 요인으로 꼽혀요.</li></ul>
<p>두뇌 게임은 이 목록 위에 얹는 <strong>재미있는 보조 활동</strong>으로 생각하면 딱 맞아요. 특히 부모님께 권할 때는 "치매 예방"보다 "같이 하는 놀이"로 접근하는 게 부담이 적어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/mental-math-brain-training-benefits-2.svg" alt="하루 10분 두뇌 게임 루틴을 워밍업 반응 게임 2분, 암산 5분, 기억 게임 3분으로 나누고 운동·수면·사회 활동을 바탕에 둔 구조도" width="800" height="450" loading="lazy" decoding="async"><figcaption>하루 10분 두뇌 게임 루틴과 뇌 건강의 기본</figcaption></figure>
<h2 id="s6">암산 게임, 이런 사람에게 특히 좋아요</h2>
<ul><li><strong>숫자 업무가 많은 직장인</strong>: 엑셀 결과가 대충 맞는지 바로 어림하는 감각이 생겨요. 어림 암산은 실수를 잡는 데 유용해요.</li><li><strong>수학 기초를 다지는 학생</strong>: 기본 연산 속도가 빨라지면 문제 풀이에서 생각할 여유가 생겨요. 다만 개념 이해를 대신하진 않아요.</li><li><strong>짧은 집중 습관을 만들고 싶은 사람</strong>: 1분 타이머 안에 몰입하는 경험이 반복되면, 스마트폰을 무심코 넘기는 시간 대신 쓸 수 있어요.</li><li><strong>부모님과 함께할 놀이를 찾는 사람</strong>: 규칙이 단순하고 승부가 금방 나서 세대 상관없이 즐기기 좋아요. 다만 점수로 인지 상태를 판단하면 안 돼요.</li></ul>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">자주 묻는 질문</h2>
<h3>암산 게임을 하면 머리가 좋아지나요?</h3>
<p>암산 실력과 비슷한 계산 과제는 확실히 좋아져요. 하지만 기억력이나 지능 전반이 오른다는 근거는 약해요. 여러 대규모 연구에서 연습한 과제 밖으로의 효과는 작거나 거의 없었어요.</p>
<h3>두뇌 훈련 게임은 치매 예방에 도움이 되나요?</h3>
<p>두뇌 게임만으로 치매를 예방한다는 확실한 근거는 없어요. 운동, 수면, 사회 활동, 혈압·혈당 관리처럼 근거가 더 탄탄한 습관을 기본으로 하고, 게임은 즐거운 보조 활동으로 생각하는 게 좋아요.</p>
<h3>암산은 하루에 얼마나 연습해야 늘어요?</h3>
<p>하루 5~10분을 꾸준히 하는 것만으로도 2~3주면 체감이 와요. 길게 한 번 하는 것보다 짧게 매일 하는 게 효과적이고, 정확도 90% 이상을 유지하는 난이도가 적당해요.</p>
<h3>점수가 더 이상 안 올라요. 한계인가요?</h3>
<p>그 게임에 충분히 익숙해졌다는 신호일 가능성이 커요. 난이도를 올리거나, 새로운 요령을 하나 적용하거나, 다른 종류의 게임으로 바꿔 보세요. 컨디션과 시간대에 따른 기복도 함께 확인하세요.</p>
<h3>주산을 배우면 암산이 더 빨라지나요?</h3>
<p>주산식 암산은 머릿속에 주판을 그려 계산하는 방식이라, 꾸준히 훈련하면 큰 수 덧셈·뺄셈이 매우 빨라져요. 다만 이 역시 계산 능력 자체의 향상이고, 다른 학습 능력까지 좋아지는지는 연구 결과가 엇갈려요.</p>
<h2 id="s8">정리</h2>
<p>암산 게임을 하면 <strong>암산은 확실히 늘어요.</strong> 하지만 그 효과가 기억력·지능 전반으로 퍼진다는 원전이의 근거는 약하다는 게 지금까지 대규모 연구의 결론이에요. 목표를 "계산을 빠르고 정확하게"로 잡고, 10 단위 맞추기·앞자리부터 계산·곱셈 쪼개기 같은 요령을 하나씩 익히면 충분히 남는 게 있어요. 뇌 건강 전반은 운동·수면·사회 활동이 바탕이고, 게임은 그 위에 얹는 즐거운 습관이에요.</p>
<p>오늘의 10분은 <a href="https://game.smithlab.co.kr/games/mental-math/">암산 게임</a>으로 시작해서 <a href="https://game.smithlab.co.kr/games/aim-trainer/">에임 트레이너</a>, <a href="https://game.smithlab.co.kr/games/card-matching/">카드 짝 맞추기</a>로 이어 보세요. 기억력이 궁금하다면 <a href="https://game.smithlab.co.kr/posts/games/number-memory-digit-span/">숫자 기억력 평균과 늘리는 법</a>도 함께 읽어 보면 좋아요.</p>
    ]]></description>
    </item>
    <item>
      <title>숫자야구 필승 전략, 첫 수와 평균 시도 횟수를 직접 계산해 봤어요</title>
      <link>https://game.smithlab.co.kr/posts/games/number-baseball-winning-strategy/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/number-baseball-winning-strategy/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>숫자야구를 하다 보면 친구는 다섯 번 만에 맞히는데 나는 열 번을 넘기는 날이 있어요. 결론부터 말하면 <strong>0~9 중 서로 다른 숫자 3자리 숫자야구는 정답 후보가 720개뿐이라, 판정을 꼼꼼히 반영하면 평균 5번 남짓, 아무리 운이 나빠도 7번 안에 맞힐 수 있어요.</strong> 차이를 만드는 건 감이 아니라 "지금까지 나온 판정과 모순되지 않는 수만 던지는가"예요.</p>
<p>이 글에서는 720가지 정답을 모두 넣어 컴퓨터로 직접 돌려 본 결과를 바탕으로, 첫 수로 무엇을 던지면 좋은지, 판정이 나올 때마다 후보가 얼마나 줄어드는지, 사람이 머리로 따라 할 수 있는 3단계 전략을 정리했어요. 읽으면서 <a href="https://game.smithlab.co.kr/games/number-baseball/">숫자 야구 게임</a>을 옆에 켜 두고 한 판씩 따라 해 보면 바로 체감돼요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>3자리 숫자야구(0~9, 중복 없음, 맨 앞 0 허용)의 정답 후보는 10×9×8 = 720개예요. 4자리는 5,040개예요.</li><li>판정과 모순 없는 수만 던져도 평균 약 5.2번, 매번 "가장 나쁜 경우의 후보가 가장 적게 남는 수"를 고르면 평균 5.14번, 최악 7번이에요(직접 계산).</li><li>첫 수 012를 던지면 30% 확률로 아웃, 35% 확률로 1볼이 나와요. 아웃은 숫자 3개를 통째로 지워 주는 좋은 결과예요.</li><li>사람이 쓰기 좋은 전략은 "겹치지 않는 세 수(012·345·678)로 숫자 찾기 → 후보 목록 적기 → 후보를 반으로 가르는 수 던지기"예요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">숫자야구 규칙과 경우의 수</h2>
<p>숫자야구는 한 사람이 서로 다른 숫자로 비밀 번호를 정하고, 다른 사람이 숫자를 던져 맞히는 추리 게임이에요. 판정은 세 가지예요.</p>
<div class="table-wrap"><table><thead><tr><th>판정</th><th>뜻</th><th>정답 427일 때 예</th></tr></thead><tbody><tr><td>스트라이크(S)</td><td>숫자와 자리가 모두 맞음</td><td>457 → 2S (4, 7)</td></tr><tr><td>볼(B)</td><td>숫자는 있는데 자리가 다름</td><td>742 → 3B</td></tr><tr><td>아웃(OUT)</td><td>던진 숫자가 하나도 없음</td><td>589 → OUT</td></tr></tbody></table></div>
<p>규칙은 지역이나 앱마다 조금씩 달라요. 1~9만 쓰는 경우도 있고, 0을 쓰되 맨 앞자리에는 금지하는 경우도 있어요. 이 글은 <a href="https://game.smithlab.co.kr/games/number-baseball/">숫자 야구 게임</a>과 같은 <strong>0~9, 중복 없음, 맨 앞 0 허용</strong> 규칙을 기준으로 계산했어요.</p>
<div class="table-wrap"><table><thead><tr><th>규칙</th><th>3자리 경우의 수</th><th>4자리 경우의 수</th></tr></thead><tbody><tr><td>0~9, 맨 앞 0 허용</td><td>10×9×8 = 720</td><td>10×9×8×7 = 5,040</td></tr><tr><td>0~9, 맨 앞 0 금지</td><td>9×9×8 = 648</td><td>9×9×8×7 = 4,536</td></tr><tr><td>1~9만 사용</td><td>9×8×7 = 504</td><td>9×8×7×6 = 3,024</td></tr></tbody></table></div>
<p>판정 한 번으로 나올 수 있는 결과는 3자리에서 OUT, 1B, 2B, 3B, 1S, 1S1B, 1S2B, 2S, 3S의 9가지예요(2S1B는 불가능해요. 두 개가 자리까지 맞았는데 남은 하나가 다른 자리에 있을 수는 없으니까요). 결과가 9가지라는 건, 한 번 던질 때마다 후보를 최대 9개 묶음으로 나눌 수 있다는 뜻이에요. 720을 9로 세 번 나누면 약 1이 되니, 이론적으로도 4~5번이면 범위가 거의 좁혀지는 구조예요.</p>
<h2 id="s2">첫 수는 무엇이 좋을까? 012의 판정 분포</h2>
<p>첫 수는 사실 어떤 숫자를 던져도 똑같아요. 아직 아무 정보가 없어서 012든 849든 정답과의 관계가 대칭이기 때문이에요. 대신 <strong>첫 수가 어떤 판정을 얼마나 자주 받는지</strong>를 알아 두면 다음 수를 고르는 데 도움이 돼요. 720개 정답 전부에 012를 던져 판정을 세어 봤어요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">첫 수 012를 던졌을 때 판정별 남는 후보 수 (3자리, 전체 720개)</figcaption><svg viewBox="0 0 640 322" role="img" aria-label="첫 수 012를 던졌을 때 판정별 남는 후보 수 (3자리, 전체 720개)" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="78" y="29" text-anchor="end">1볼</text><rect class="s1" x="88" y="15" width="404.9" height="20" rx="3"><title>1볼 · 252개</title></rect><text class="viz-val" x="498.9" y="29">252개</text><text class="viz-ax lg" x="78" y="63" text-anchor="end">아웃</text><rect class="s1" x="88" y="49" width="337.4" height="20" rx="3"><title>아웃 · 210개</title></rect><text class="viz-val" x="431.4" y="63">210개</text><text class="viz-ax lg" x="78" y="97" text-anchor="end">1스트라이크</text><rect class="s1" x="88" y="83" width="202.4" height="20" rx="3"><title>1스트라이크 · 126개</title></rect><text class="viz-val" x="296.4" y="97">126개</text><text class="viz-ax lg" x="78" y="131" text-anchor="end">2볼</text><rect class="s1" x="88" y="117" width="101.2" height="20" rx="3"><title>2볼 · 63개</title></rect><text class="viz-val" x="195.2" y="131">63개</text><text class="viz-ax lg" x="78" y="165" text-anchor="end">1S 1B</text><rect class="s1" x="88" y="151" width="67.5" height="20" rx="3"><title>1S 1B · 42개</title></rect><text class="viz-val" x="161.5" y="165">42개</text><text class="viz-ax lg" x="78" y="199" text-anchor="end">2스트라이크</text><rect class="s1" x="88" y="185" width="33.7" height="20" rx="3"><title>2스트라이크 · 21개</title></rect><text class="viz-val" x="127.7" y="199">21개</text><text class="viz-ax lg" x="78" y="233" text-anchor="end">1S 2B</text><rect class="s1" x="88" y="219" width="4.8" height="20" rx="3"><title>1S 2B · 3개</title></rect><text class="viz-val" x="98.8" y="233">3개</text><text class="viz-ax lg" x="78" y="267" text-anchor="end">3볼</text><rect class="s1" x="88" y="253" width="3.2" height="20" rx="3"><title>3볼 · 2개</title></rect><text class="viz-val" x="97.2" y="267">2개</text><text class="viz-ax lg" x="78" y="301" text-anchor="end">3스트라이크</text><rect class="s1" x="88" y="287" width="1.6" height="20" rx="3"><title>3스트라이크 · 1개</title></rect><text class="viz-val" x="95.6" y="301">1개</text></svg><p class="viz-note">가장 흔한 1볼(35%)과 아웃(29%)이 나오면 후보가 각각 252개, 210개 남아요.</p><div class="viz-cap">단위: 개 · 자료: 0~9 중복 없는 3자리 720개 정답 전부를 직접 판정해 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>남는 후보</th></tr></thead><tbody><tr><td>1볼</td><td>252</td></tr><tr><td>아웃</td><td>210</td></tr><tr><td>1스트라이크</td><td>126</td></tr><tr><td>2볼</td><td>63</td></tr><tr><td>1S 1B</td><td>42</td></tr><tr><td>2스트라이크</td><td>21</td></tr><tr><td>1S 2B</td><td>3</td></tr><tr><td>3볼</td><td>2</td></tr><tr><td>3스트라이크</td><td>1</td></tr></tbody></table></div></details></figure>
<p>여기서 두 가지를 알 수 있어요.</p>
<p>첫째, <strong>첫 수의 결과는 대부분 "별것 없어 보이는" 판정이에요.</strong> 1볼이나 아웃이 64%예요. 첫 수에서 스트라이크가 안 나왔다고 실망할 필요가 전혀 없어요.</p>
<p>둘째, <strong>아웃은 생각보다 좋은 결과예요.</strong> 아웃이면 0·1·2가 통째로 빠지고, 남은 7개 숫자에서 3개를 고르는 7×6×5 = 210개만 남아요. 1볼(252개)보다 오히려 후보가 적어요. 아웃을 받으면 "꽝"이 아니라 "숫자 3개 지우기 성공"이라고 생각하세요.</p>
<p>4자리도 같은 방식으로 0123을 던져 보면 5,040개 중 1볼이 1,440개, 2볼이 1,260개로 가장 흔하고, 아웃은 360개예요. 4자리에서는 숫자 4개 중 하나도 없는 경우가 드물어서, 아웃이 나오면 후보가 7분의 1 이하로 확 줄어요.</p>
<h2 id="s3">전략별 평균 시도 횟수, 직접 돌려 본 결과</h2>
<p>그럼 실제로 몇 번 만에 맞힐 수 있을까요? 3자리 정답 720개를 하나씩 넣고, 세 가지 전략으로 끝까지 풀게 해서 시도 횟수를 셌어요. 세 전략 모두 첫 수는 012로 같아요.</p>
<div class="table-wrap"><table><thead><tr><th>전략</th><th>방법</th><th>평균 시도</th><th>최악</th></tr></thead><tbody><tr><td>A. 첫 후보</td><td>판정과 모순 없는 후보 중 가장 작은 수를 던짐</td><td>5.27번</td><td>9번</td></tr><tr><td>B. 무작위 후보</td><td>판정과 모순 없는 후보 중 아무거나 던짐</td><td>5.23번</td><td>8번</td></tr><tr><td>C. 최악 최소화</td><td>어떤 판정이 나와도 남는 후보가 가장 적은 수를 던짐</td><td>5.14번</td><td>7번</td></tr></tbody></table></div>
<figure class="viz viz-bar"><figcaption class="viz-title">3자리 숫자야구 720판을 끝낸 시도 횟수 분포</figcaption><div class="viz-legend"><span><i class="s1"></i>무작위 후보</span><span><i class="s2"></i>최악 최소화</span></div><svg viewBox="0 0 640 300" role="img" aria-label="3자리 숫자야구 720판을 끝낸 시도 횟수 분포" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">300</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">400</text><rect class="s1" x="62.8" y="253.4" width="24.2" height="0.6" rx="3"><title>1번 · 무작위 후보 1판</title></rect><rect class="s2" x="89.0" y="253.4" width="24.2" height="0.6" rx="3"><title>1번 · 최악 최소화 1판</title></rect><text class="viz-ax" x="88.0" y="272" text-anchor="middle">1번</text><rect class="s1" x="134.8" y="249.3" width="24.2" height="4.7" rx="3"><title>2번 · 무작위 후보 8판</title></rect><rect class="s2" x="161.0" y="251.6" width="24.2" height="2.4" rx="3"><title>2번 · 최악 최소화 4판</title></rect><text class="viz-ax" x="160.0" y="272" text-anchor="middle">2번</text><rect class="s1" x="206.8" y="222.1" width="24.2" height="31.9" rx="3"><title>3번 · 무작위 후보 54판</title></rect><rect class="s2" x="233.0" y="241.6" width="24.2" height="12.4" rx="3"><title>3번 · 최악 최소화 21판</title></rect><text class="viz-ax" x="232.0" y="272" text-anchor="middle">3번</text><rect class="s1" x="278.8" y="185.6" width="24.2" height="68.4" rx="3"><title>4번 · 무작위 후보 116판</title></rect><rect class="s2" x="305.0" y="192.1" width="24.2" height="61.9" rx="3"><title>4번 · 최악 최소화 105판</title></rect><text class="viz-ax" x="304.0" y="272" text-anchor="middle">4번</text><rect class="s1" x="350.8" y="110.6" width="24.2" height="143.4" rx="3"><title>5번 · 무작위 후보 243판</title></rect><rect class="s2" x="377.0" y="53.4" width="24.2" height="200.6" rx="3"><title>5번 · 최악 최소화 340판</title></rect><text class="viz-ax" x="376.0" y="272" text-anchor="middle">5번</text><rect class="s1" x="422.8" y="133.1" width="24.2" height="120.9" rx="3"><title>6번 · 무작위 후보 205판</title></rect><rect class="s2" x="449.0" y="114.2" width="24.2" height="139.8" rx="3"><title>6번 · 최악 최소화 237판</title></rect><text class="viz-ax" x="448.0" y="272" text-anchor="middle">6번</text><rect class="s1" x="494.8" y="215.7" width="24.2" height="38.3" rx="3"><title>7번 · 무작위 후보 65판</title></rect><rect class="s2" x="521.0" y="246.9" width="24.2" height="7.1" rx="3"><title>7번 · 최악 최소화 12판</title></rect><text class="viz-ax" x="520.0" y="272" text-anchor="middle">7번</text><rect class="s1" x="566.8" y="237.5" width="24.2" height="16.5" rx="3"><title>8번 · 무작위 후보 28판</title></rect><rect class="s2" x="593.0" y="254.0" width="24.2" height="0.5" rx="3"><title>8번 · 최악 최소화 0판</title></rect><text class="viz-ax" x="592.0" y="272" text-anchor="middle">8번</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">최악 최소화 전략은 8번 이상 걸리는 판이 0이고, 80% 이상이 5~6번에 끝나요.</p><div class="viz-cap">단위: 판 · 자료: 0~9 중복 없는 3자리 720개 정답 전부를 각 전략으로 직접 시뮬레이션 (첫 수 012)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>무작위 후보</th><th>최악 최소화</th></tr></thead><tbody><tr><td>1번</td><td>1</td><td>1</td></tr><tr><td>2번</td><td>8</td><td>4</td></tr><tr><td>3번</td><td>54</td><td>21</td></tr><tr><td>4번</td><td>116</td><td>105</td></tr><tr><td>5번</td><td>243</td><td>340</td></tr><tr><td>6번</td><td>205</td><td>237</td></tr><tr><td>7번</td><td>65</td><td>12</td></tr><tr><td>8번</td><td>28</td><td>0</td></tr></tbody></table></div></details></figure>
<p>놀라운 점은 <strong>A·B처럼 단순히 "모순 없는 수만 던지기"만 지켜도 평균 5.2번대</strong>라는 거예요. 고급 계산을 하는 C 전략과의 차이는 평균 0.1번 정도에 불과해요. 대신 C 전략은 최악의 경우를 7번으로 막아 줘요. 즉 숫자야구 실력의 대부분은 "판정을 빠짐없이 반영하는 것"에서 나오고, 나머지 약간이 "후보를 고르게 가르는 수 선택"에서 나와요.</p>
<p>4자리(5,040개)도 같은 방식으로 돌려 보니 모순 없는 후보 중 무작위로 던질 때 평균 5.50번, 첫 후보를 던질 때 5.56번이 나왔어요. 4자리 숫자야구는 영어권에서 Bulls and Cows로 불리는 게임과 같은데, Alexey Slovesnov 등의 계산에 따르면 최적 전략의 평균은 26,274 ÷ 5,040 ≈ 5.21번이고, 어떤 정답이든 7번 안에 맞힐 수 있어요. 3자리와 4자리의 평균 차이가 생각보다 작은 건, 4자리는 한 번의 판정으로 나올 수 있는 결과가 14가지로 늘어서 정보도 더 많이 얻기 때문이에요.</p>
<h2 id="s4">사람이 따라 하기 좋은 3단계 필승법</h2>
<p>컴퓨터처럼 매번 720개를 계산할 수는 없으니, 머리와 메모로 할 수 있는 방법으로 바꿔 볼게요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/number-baseball-winning-strategy-1.svg" alt="숫자야구 3단계 전략 흐름: 겹치지 않는 세 수로 숫자 찾기, 후보 적기, 후보를 반으로 가르는 수 던지기" width="800" height="450" loading="lazy" decoding="async"><figcaption>숫자야구 필승법 3단계</figcaption></figure>
<h3>1단계: 겹치지 않는 세 수로 숫자부터 찾기</h3>
<p>012 → 345 → 678을 차례로 던져요. 판정의 S와 B를 더한 숫자가 "그 묶음에서 정답에 들어 있는 숫자 개수"예요. 세 묶음의 개수를 더해 3이 안 되면 나머지는 9에 있다는 뜻이에요. 예를 들어 012가 1B, 345가 OUT, 678이 1S1B면 0·1·2에서 하나, 6·7·8에서 두 개가 들어 있어요. 세 번 만에 "어느 묶음에 몇 개"가 확정돼요.</p>
<h3>2단계: 남은 후보를 직접 적기</h3>
<p>묶음별 개수가 정해지면 후보가 수십 개 이하로 줄어요. 이때 <strong>종이나 메모 앱에 후보를 적어 두는 게 가장 큰 차이</strong>를 만들어요. 스트라이크 정보까지 반영하면 "1S였던 수의 그 자리 숫자는 맞다/아니다" 같은 조건으로 후보를 계속 지울 수 있어요. 막연히 기억에 의존하면 이미 불가능해진 수를 던지는 실수를 하게 돼요.</p>
<h3>3단계: 후보를 반으로 가르는 수 던지기</h3>
<p>후보가 몇 개 남았을 때는 "후보 중 하나"를 던지는 것보다, <strong>어떤 판정이 나와도 후보가 고르게 나뉘는 수</strong>를 던지는 게 나을 때가 있어요. 예를 들어 후보가 426, 427, 428 세 개라면 426을 던질 경우 맞으면 끝, 아니면 2S가 나와 427과 428이 구분되지 않아요. 이럴 땐 끝자리 후보 둘(6과 7)을 동시에 시험하는 식으로 정보를 최대한 많이 얻는 수를 고르세요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">실제 예시: 정답 427을 맞히는 과정</h2>
<p>같은 방법으로 정답 427을 풀어 보면 후보가 이렇게 줄어요. 후보 수는 직접 계산한 값이에요.</p>
<div class="table-wrap"><table><thead><tr><th>순서</th><th>던진 수</th><th>판정</th><th>남은 후보</th><th>해석</th></tr></thead><tbody><tr><td>1</td><td>012</td><td>1B</td><td>252개</td><td>0·1·2 중 하나, 자리는 다름</td></tr><tr><td>2</td><td>345</td><td>1B</td><td>96개</td><td>3·4·5 중 하나, 자리는 다름</td></tr><tr><td>3</td><td>678</td><td>1B</td><td>48개</td><td>6·7·8 중 하나, 자리는 다름 (9는 없음)</td></tr><tr><td>4</td><td>054</td><td>1B</td><td>12개</td><td>0은 그대로, 5·4는 다른 자리로 옮겨 시험</td></tr><tr><td>5</td><td>428</td><td>2S</td><td>2개</td><td>426 또는 427</td></tr><tr><td>6</td><td>427</td><td>3S</td><td>끝</td><td>홈런 (운이 나쁘면 426 다음 7번째)</td></tr></tbody></table></div>
<p>세 번째 수까지 판정이 모두 1B라서 답답해 보이지만, 사실 이 시점에 이미 "각 묶음에서 한 개씩, 9는 없음, 각 숫자는 던졌던 자리와 다른 자리"라는 강한 조건이 생겨 후보가 48개로 줄었어요. 네 번째 수 054는 0을 처음과 같은 첫째 자리에 두고, 345에서 셋째·둘째 자리에 있던 5와 4를 각각 둘째·셋째 자리로 옮겨 보는 수예요. 이렇게 <strong>이미 알게 된 조건을 이용해 한 번에 여러 가지를 시험하는 수</strong>가 시도를 줄여요.</p>
<h2 id="s6">숫자야구 흔한 실수 5가지</h2>
<p>시도 횟수가 늘어나는 원인은 대부분 정해져 있어요.</p>
<ol><li><strong>판정을 하나 빼먹기</strong> — 다섯 번째쯤 가면 첫 번째 판정을 잊어버리기 쉬워요. 던질 수를 정했으면 지금까지의 판정 하나하나와 맞춰 보는 습관을 들이세요.</li><li><strong>볼의 의미를 반만 쓰기</strong> — 볼은 "있다"뿐 아니라 "그 자리는 아니다"라는 정보도 줘요. 012가 1B면 정답 첫째 자리는 0이 아니고, 둘째 자리는 1이 아니고, 셋째 자리는 2가 아니에요.</li><li><strong>아웃을 버리는 수로 생각하기</strong> — 아웃은 숫자 3개를 확실히 지워요. 아웃이 나온 숫자를 일부러 섞어 던지면 "빈칸 채우기"로 다른 숫자만 시험할 수 있어요.</li><li><strong>한 번에 너무 많이 바꾸기</strong> — 자리 확인 단계에서 세 자리를 모두 바꾸면 판정이 바뀌어도 어느 자리 때문인지 알 수 없어요. 두 자리씩만 바꾸는 게 좋아요.</li><li><strong>같은 수 다시 던지기</strong> — 의외로 많이 해요. <a href="https://game.smithlab.co.kr/games/number-baseball/">숫자 야구 게임</a>은 이미 던진 수를 다시 넣으면 시도로 세지 않고 알려 줘요.</li></ol>
<p>연습할 때는 게임의 힌트를 켜서 "남은 후보 수"를 확인해 보세요. 내가 생각한 후보 개수와 실제 개수가 같은지 맞춰 보면 추리 실력이 금방 늘어요. 힌트를 켠 판은 기록에서 빠지니 연습용으로 부담 없이 쓰면 돼요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">친구와 할 때 정해 두면 좋은 규칙</h2>
<p>종이로 숫자야구를 할 때는 시작 전에 규칙을 맞춰 두면 다툼이 없어요.</p>
<div class="table-wrap"><table><thead><tr><th>정할 것</th><th>흔한 선택지</th><th>추천</th></tr></thead><tbody><tr><td>사용 숫자</td><td>0~9 / 1~9</td><td>처음엔 1~9(504가지)가 쉬움</td></tr><tr><td>맨 앞 0</td><td>허용 / 금지</td><td>허용이 계산이 단순</td></tr><tr><td>자리 수</td><td>3자리 / 4자리</td><td>초보 3자리, 익숙하면 4자리</td></tr><tr><td>승부 방식</td><td>번갈아 던지기 / 시도 수 비교</td><td>같은 정답 수를 각자 풀고 시도 수 비교</td></tr><tr><td>판정 실수</td><td>무효 / 그 판 패배</td><td>판정 실수는 정답 공개 후 확인</td></tr></tbody></table></div>
<p>혼자 연습할 때는 컴퓨터가 판정해 주니 실수가 없고, 시도 횟수 기록과 평균이 남아서 실력이 느는 게 숫자로 보여요. 비슷하게 논리로 푸는 게임으로는 <a href="https://game.smithlab.co.kr/posts/games/minesweeper-patterns/">지뢰찾기 패턴</a> 글과 <a href="https://game.smithlab.co.kr/games/sudoku/">스도쿠</a>도 추천해요.</p>
<h2 id="s8">자주 묻는 질문</h2>
<h3>숫자야구는 몇 번 만에 맞히면 잘한 건가요?</h3>
<p>3자리(0~9) 기준으로 판정을 모두 반영하면 평균 5번 남짓이 나와요. 5~6번이면 잘한 편, 4번 이하는 운도 따른 아주 좋은 기록이에요. 8번 이상 자주 걸린다면 판정 하나를 빠뜨리고 있을 가능성이 커요.</p>
<h3>숫자야구 첫 수로 가장 좋은 숫자가 있나요?</h3>
<p>아무 정보가 없는 첫 수는 어떤 수를 던져도 확률이 같아요. 다만 두 번째, 세 번째 수는 첫 수와 겹치지 않는 숫자(012 다음 345)로 던지는 게 정보를 가장 많이 모으는 방법이에요.</p>
<h3>최악의 경우 몇 번이면 무조건 맞힐 수 있나요?</h3>
<p>0~9 중복 없는 3자리에서는 매번 "가장 나쁜 판정이 나와도 후보가 가장 적게 남는 수"를 고르면 720개 정답 모두를 7번 안에 맞힐 수 있어요(직접 시뮬레이션). 남는 후보 수가 같은 수가 여럿일 때 아직 정답 후보인 수를 먼저 고르도록 바꾸면, 다시 돌려 본 결과 최악 6번·평균 약 5.16번까지 줄어요. 4자리도 최적으로 풀면 최악 7번, 평균 약 5.21번이에요.</p>
<h3>1~9만 쓰는 규칙이면 더 쉬운가요?</h3>
<p>후보가 504개로 720개보다 적어서 조금 쉬워요. 다만 결과 종류는 같아서 평균 시도 차이는 크지 않아요. 판정을 반영하는 방법은 똑같이 적용돼요.</p>
<h3>컴퓨터와 하는 숫자야구는 정답이 바뀌지 않나요?</h3>
<p>이 사이트의 숫자 야구는 판이 시작될 때 정답을 무작위로 한 번 정하고 끝날 때까지 바꾸지 않아요. 포기하면 정답을 바로 보여 줘요.</p>
<h2 id="s9">정리</h2>
<p>숫자야구는 운보다 정보 정리가 승부를 가르는 게임이에요. 3자리(0~9)는 720가지뿐이라 판정과 모순 없는 수만 던져도 평균 5.2번, 후보를 고르게 가르는 수까지 고르면 최악 7번 안에 끝낼 수 있어요. 겹치지 않는 세 수로 숫자를 찾고, 후보를 적고, 후보를 반으로 가르는 수를 던지는 3단계만 기억하세요.</p>
<p>지금 바로 <a href="https://game.smithlab.co.kr/games/number-baseball/">숫자 야구 게임</a>에서 3자리 모드로 몇 판 해 보고, 익숙해지면 4자리에 도전해 보세요. 기억력과 추리를 함께 쓰는 게임이 더 궁금하다면 <a href="https://game.smithlab.co.kr/posts/games/number-memory-digit-span/">숫자 기억력과 디지트 스팬</a> 글도 이어서 읽어 보세요.</p>
    ]]></description>
    </item>
    <item>
      <title>다른 글자 찾기 잘하는 법 — 뷁 사이 뷀 찾기 요령과 헷갈리는 글자…</title>
      <link>https://game.smithlab.co.kr/posts/games/odd-letter-game-tips/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/odd-letter-game-tips/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>"뷁 사이에 숨은 뷀을 찾아보세요" 같은 이미지를 한 번쯤 보셨을 거예요. 화면 가득 같은 글자가 깔려 있고 딱 하나만 받침이나 모음 획이 다른데, 막상 찾으려고 하면 눈이 미끄러지듯 지나가 버리죠. 결론부터 말하면 다른 글자 찾기는 글자를 읽는 게임이 아니라 모양의 무늬가 끊기는 곳을 찾는 게임이에요. 바탕 글자를 보고 "바뀔 만한 자리"(모음 오른쪽 획이나 받침)를 먼저 정한 다음, 그 자리만 줄 단위로 훑으면 훨씬 빨라져요. 스미스 게임 연구소 <a href="https://game.smithlab.co.kr/games/odd-letter/">다른 글자 찾기</a> 기준으로 60초 안에 20단계를 넘기려면 단계당 평균 3초 안쪽으로 찾아야 해요.</p>
<p>이 글은 게임 코드에 들어 있는 실제 규칙으로 설명해요. 판이 몇 단계에서 얼마나 커지는지, 어떤 글자 쌍이 언제 나오는지, 틀리면 시간이 얼마나 줄어드는지, 그리고 사람 눈이 왜 거의 같은 글자를 잘 놓치는지를 정리했어요. 마지막에는 48쌍 가운데 특히 헷갈리는 쌍도 골라 두었어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>판은 1~2단계 3×3에서 시작해 28단계부터 9×9(81칸)까지 커지고, 한 판 전체에 주어지는 시간은 60초예요. 맞혀도 시간이 늘지 않고, 틀리면 3초가 빠져요.</li><li>나오는 48쌍은 모두 실제 한글 완성형 글자이고, 초성·중성·종성 중 딱 한 자리만 달라요. 모음이 다른 쌍이 22개, 받침이 다른 쌍이 26개예요.</li><li>빠른 사람은 글자를 읽지 않고, 바뀔 자리를 정한 뒤 줄 단위로 훑어요. 감으로 찍는 건 3초 손해라서 대부분 불리해요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">다른 글자 찾기 규칙 한눈에 보기</h2>
<p>규칙은 단순해요. 시작하면 60초 타이머가 돌고, 같은 글자로 가득 찬 판에서 다른 글자 한 칸을 누르면 바로 다음 단계로 넘어가요. 시간은 단계마다 새로 주는 게 아니라 한 판 전체에 60초예요. 그래서 앞 단계를 빨리 넘길수록 뒤쪽 큰 판에 쓸 시간이 많아져요.</p>
<p>틀린 칸을 누르면 그 칸이 붉게 깜빡이고 남은 시간에서 3초가 빠져요. 시간이 0이 되면 마지막 판의 정답 칸을 표시해 주고, 그때까지 <strong>다 찾은 단계 수</strong>가 기록이 돼요. 예를 들어 12단계 판을 보던 중에 시간이 끝나면 11단계 통과예요. 최고 기록과 판 수는 브라우저 쿠키에만 저장돼요. 다른 탭이나 창으로 가면 타이머가 멈춰서, 알림을 확인하느라 시간을 잃을 일은 없어요.</p>
<p>같은 방식으로 색을 찾는 <a href="https://game.smithlab.co.kr/games/color-sense/">절대색감 테스트</a>는 단계마다 15초를 새로 주지만, 다른 글자 찾기는 전체 60초 하나로 겨루기 때문에 "얼마나 꾸준히 빠른가"가 더 중요해요.</p>
<h2 id="s2">단계별 판 크기와 글자 크기</h2>
<p>판은 단계가 오르면서 한 줄씩 커져요. 칸이 많아질수록 글자는 작아지고, 다른 글자가 숨을 수 있는 자리도 늘어나요.</p>
<div class="table-wrap"><table><thead><tr><th>단계</th><th>판 크기</th><th>칸 수</th><th>정답을 찾을 때까지 평균 훑는 칸</th></tr></thead><tbody><tr><td>1~2</td><td>3×3</td><td>9</td><td>5</td></tr><tr><td>3~5</td><td>4×4</td><td>16</td><td>8.5</td></tr><tr><td>6~9</td><td>5×5</td><td>25</td><td>13</td></tr><tr><td>10~14</td><td>6×6</td><td>36</td><td>18.5</td></tr><tr><td>15~20</td><td>7×7</td><td>49</td><td>25</td></tr><tr><td>21~27</td><td>8×8</td><td>64</td><td>32.5</td></tr><tr><td>28~</td><td>9×9</td><td>81</td><td>41</td></tr></tbody></table></div>
<p>마지막 열은 정답 위치가 무작위일 때, 한 칸씩 순서대로 본다면 평균 몇 칸째에서 정답을 만나는지를 계산한 값이에요((칸 수+1)÷2). 9×9 판에서 한 칸씩 보면 평균 41칸을 봐야 하니, 한 칸에 0.1초만 써도 4초가 넘어가요. 칸 하나하나를 보는 방식으로는 후반에 시간이 모자랄 수밖에 없어요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">단계별 판의 칸 수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="단계별 판의 칸 수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">25</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">75</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">100</text><rect class="s1" x="64.3" y="232.8" width="57.6" height="21.2" rx="3"><title>1~2단계 · 칸 수 9칸</title></rect><text class="viz-val" x="93.1" y="227.8" text-anchor="middle">9</text><text class="viz-ax" x="93.1" y="272" text-anchor="middle">1~2단계</text><rect class="s1" x="146.6" y="216.2" width="57.6" height="37.8" rx="3"><title>3~5단계 · 칸 수 16칸</title></rect><text class="viz-val" x="175.4" y="211.2" text-anchor="middle">16</text><text class="viz-ax" x="175.4" y="272" text-anchor="middle">3~5단계</text><rect class="s1" x="228.9" y="195.0" width="57.6" height="59.0" rx="3"><title>6~9단계 · 칸 수 25칸</title></rect><text class="viz-val" x="257.7" y="190.0" text-anchor="middle">25</text><text class="viz-ax" x="257.7" y="272" text-anchor="middle">6~9단계</text><rect class="s1" x="311.2" y="169.0" width="57.6" height="85.0" rx="3"><title>10~14단계 · 칸 수 36칸</title></rect><text class="viz-val" x="340.0" y="164.0" text-anchor="middle">36</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">10~14단계</text><rect class="s1" x="393.5" y="138.4" width="57.6" height="115.6" rx="3"><title>15~20단계 · 칸 수 49칸</title></rect><text class="viz-val" x="422.3" y="133.4" text-anchor="middle">49</text><text class="viz-ax" x="422.3" y="272" text-anchor="middle">15~20단계</text><rect class="s1" x="475.8" y="103.0" width="57.6" height="151.0" rx="3"><title>21~27단계 · 칸 수 64칸</title></rect><text class="viz-val" x="504.6" y="98.0" text-anchor="middle">64</text><text class="viz-ax" x="504.6" y="272" text-anchor="middle">21~27단계</text><rect class="s1" x="558.1" y="62.8" width="57.6" height="191.2" rx="3"><title>28단계~ · 칸 수 81칸</title></rect><text class="viz-val" x="586.9" y="57.8" text-anchor="middle">81</text><text class="viz-ax" x="586.9" y="272" text-anchor="middle">28단계~</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">칸 수는 단계가 오를수록 9칸에서 81칸까지 9배로 늘어나요</p><div class="viz-cap">단위: 칸 · 자료: 스미스 게임 연구소 다른 글자 찾기 게임 규칙</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>칸 수</th></tr></thead><tbody><tr><td>1~2단계</td><td>9</td></tr><tr><td>3~5단계</td><td>16</td></tr><tr><td>6~9단계</td><td>25</td></tr><tr><td>10~14단계</td><td>36</td></tr><tr><td>15~20단계</td><td>49</td></tr><tr><td>21~27단계</td><td>64</td></tr><tr><td>28단계~</td><td>81</td></tr></tbody></table></div></details></figure>
<p>1단계부터 20단계까지 통과하려면 판을 모두 합쳐 640칸(9×2 + 16×3 + 25×4 + 36×5 + 49×6)이 지나가요. 60초 안에 이만큼을 처리하려면, 칸을 하나씩 읽는 대신 여러 칸을 한꺼번에 보는 방법이 꼭 필요해요.</p>
<h2 id="s3">나오는 글자 48쌍과 난이도</h2>
<p>게임에 들어 있는 글자 쌍은 48개예요. 모두 유니코드 한글 완성형(가~힣 11,172자) 안에 있는 실제 글자이고, 두 글자는 초성·중성·종성 세 자리 중 <strong>딱 한 자리만</strong> 달라요. 어느 쪽이 바탕이 되고 어느 쪽이 숨는지는 매번 무작위로 정해요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/odd-letter-game-tips-1.svg" alt="뷁과 뷀의 자모를 나란히 놓고 받침 ㄺ과 ㄹ만 다르다는 것을 보여 주는 비교 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>뷁(ㅂ+ㅞ+ㄺ)과 뷀(ㅂ+ㅞ+ㄹ)은 받침만 달라요</figcaption></figure>
<ul><li><strong>쉬움 13쌍</strong> (1~10단계에 나옴): 대/데, 개/게, 배/베, 새/세, 왜/웨, 외/의, 귀/긔, 냬/녜, 얘/예, 괘/궤, 매/메, 해/헤, 쇄/쉐. 모두 받침이 없고 모음만 달라요.</li><li><strong>보통 19쌍</strong> (5~18단계): 갰/겠, 냈/넸, 밟/밞, 읽/잃, 앉/않, 몫/몪, 넋/넉, 핥/핣, 앓/앏, 곬/곫, 낡/낢, 휑/휭, 왰/웼, 됐/됬, 썌/쎄, 짧/쨟, 볽/볿, 쇍/쇏, 얹/엕. 겹받침·쌍받침이 섞여요.</li><li><strong>어려움 16쌍</strong> (11단계부터): 뷁/뷀, 쀍/쀏, 뛟/뛠, 꿻/꿺, 뒑/뒒, 홿/홾, 뫫/뫪, 쒧/쒦, 웱/웲, 툷/툶, 껥/껦, 꽰/꽨, 힣/힇, 휇/휆, 쮋/쮊, 뾟/뾞. 획이 아주 많은 글자들이에요.</li></ul>
<p>정확히는 1~4단계는 쉬움만, 5~10단계는 쉬움+보통, 11~18단계는 보통+어려움, 19단계부터는 어려움만 나와요. 같은 쌍이 연달아 두 번 나오지는 않아요.</p>
<figure class="viz viz-donut"><figcaption class="viz-title">48쌍에서 다른 자리</figcaption><svg viewBox="0 0 640 260" role="img" aria-label="48쌍에서 다른 자리" preserveAspectRatio="xMidYMid meet"><path class="s1" d="M131.26,25.01 A105,105 0 0 1 158.39,231.09 L149.20,198.36 A71,71 0 0 0 130.85,59.01 Z"><title>모음(중성)이 다름 · 22쌍 (45.8%)</title></path><path class="s2" d="M155.96,231.74 A105,105 0 1 1 128.74,25.01 L129.15,59.01 A71,71 0 1 0 147.55,198.80 Z"><title>받침(종성)이 다름 · 26쌍 (54.2%)</title></path><text class="viz-center" x="130" y="137" text-anchor="middle">48쌍</text><rect class="s1" x="290" y="29" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="41">모음(중성)이 다름</text><text class="viz-val" x="630" y="41" text-anchor="end">22쌍 · 46%</text><rect class="s2" x="290" y="61" width="14" height="14" rx="3"/><text class="viz-ax lg" x="314" y="73">받침(종성)이 다름</text><text class="viz-val" x="630" y="73" text-anchor="end">26쌍 · 54%</text></svg><div class="viz-cap">단위: 쌍 · 자료: 스미스 게임 연구소 다른 글자 찾기 글자 목록을 자모로 분해해 직접 셈</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>쌍 수</th></tr></thead><tbody><tr><td>모음(중성)이 다름</td><td>22</td></tr><tr><td>받침(종성)이 다름</td><td>26</td></tr></tbody></table></div></details></figure>
<h2 id="s4">뇌는 왜 거의 같은 글자를 놓칠까</h2>
<p>이 게임은 심리학에서 "시각 탐색(visual search)"이라고 부르는 과제와 같은 구조예요. 여러 방해 자극 사이에서 목표 하나를 찾는 실험이 수십 년 동안 쌓여 있어서, 왜 어떤 판은 바로 보이고 어떤 판은 안 보이는지 꽤 잘 설명돼요.</p>
<h3>색처럼 튀는 차이는 "저절로" 보이고, 획 차이는 하나씩 봐야 해요</h3>
<p>Treisman과 Gelade는 1980년 <a href="https://pubmed.ncbi.nlm.nih.gov/7351125/" target="_blank" rel="noopener">「주의의 특징 통합 이론」(Cognitive Psychology, PubMed 7351125)</a>에서 두 종류의 탐색을 구분했어요. 빨간 것들 사이의 파란 것처럼 기본 특징 하나가 다르면 방해물이 늘어도 찾는 시간이 거의 그대로예요. 반면 같은 획들이 조합만 다르게 놓인 목표는 항목을 하나씩 확인하듯 찾게 되고, 항목 수에 비례해 시간이 늘어나요.</p>
<p>뷁/뷀처럼 같은 자모 획이 조금 다르게 조합된 한글 쌍은 뒤쪽에 가까워요. 그래서 3×3 판에서 9×9 판으로 칸이 9배가 되면 찾는 시간도 크게 늘어요. 절대색감 테스트가 색 하나만 다른 칸을 찾게 해서 상대적으로 덜 막히는 것과 대비돼요.</p>
<h3>목표와 바탕이 비슷할수록, 바탕끼리 같을수록</h3>
<p>Duncan과 Humphreys의 1989년 연구 <a href="https://pubmed.ncbi.nlm.nih.gov/2756067/" target="_blank" rel="noopener">「시각 탐색과 자극 유사성」(Psychological Review, PubMed 2756067)</a>은 탐색 난이도를 두 가지로 정리했어요. 목표가 방해물과 닮을수록 어려워지고, 방해물끼리 서로 닮을수록 쉬워져요. 다른 글자 찾기는 바탕이 모두 똑같은 글자라 두 번째 조건은 아주 유리해요. 그래서 "무늬가 끊기는 곳"을 보는 전략이 통해요. 대신 목표가 바탕과 획 하나 차이라 첫 번째 조건이 가장 불리한 쪽이에요.</p>
<h3>시선 옆의 작은 획은 옆 글자에 묻혀요</h3>
<p>Pelli와 Tillman의 2008년 논문 <a href="https://pubmed.ncbi.nlm.nih.gov/18828191/" target="_blank" rel="noopener">「붐비지 않는 창(The uncrowded window of object recognition)」(Nature Neuroscience, PubMed 18828191)</a>은 "밀집(crowding)" 현상을 다뤄요. 시선 중심에서 조금만 벗어나도 글자 사이가 촘촘하면, 글자를 알아볼 수 있는 크기여도 옆 글자와 섞여서 알아보지 못해요. 9×9 판처럼 글자가 빽빽하면 바로 이 현상 때문에 시선이 직접 닿은 칸 몇 개만 제대로 보여요. 줄 단위로 시선을 실제로 옮겨 가며 훑어야 하는 이유예요.</p>
<div class="table-wrap"><table><thead><tr><th>연구 결과</th><th>이 게임에서 보이는 모습</th><th>대응 요령</th></tr></thead><tbody><tr><td>특징 하나가 다르면 저절로 튀어나옴</td><td>색 게임보다 글자 게임이 훨씬 어려움</td><td>처음부터 "하나씩 본다"고 생각하고 순서를 정하기</td></tr><tr><td>조합이 다른 목표는 항목 수만큼 오래 걸림</td><td>7×7 이후 판에서 시간이 급격히 늘어남</td><td>앞 단계에서 시간을 벌어 두기</td></tr><tr><td>목표와 바탕이 비슷할수록 어려움</td><td>받침 쌍(뷁/뷀)이 모음 쌍보다 어려움</td><td>비교할 자리를 하나로 좁히기</td></tr><tr><td>바탕끼리 같을수록 쉬움</td><td>모든 칸이 같은 글자라 무늬가 생김</td><td>무늬가 끊기는 곳만 찾기</td></tr><tr><td>시선 옆은 밀집으로 뭉개짐</td><td>큰 판에서 "본 것 같은데 놓친" 칸이 생김</td><td>줄마다 시선을 실제로 옮기기</td></tr></tbody></table></div>
<h2 id="s5">빨리 찾는 3단계 요령## 빨리 찾는 3단계 요령</h2>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/odd-letter-game-tips-2.svg" alt="바탕 글자 확인, 바뀔 자리 고정, 줄 단위 훑기의 세 단계를 화살표로 이은 흐름도" width="800" height="450" loading="lazy" decoding="async"><figcaption>한 판을 찾는 순서</figcaption></figure>
<h3>1. 바탕 글자부터 0.5초 안에 파악하기</h3>
<p>판이 바뀌면 아무 칸이나 하나를 보고 "모음이 ㅐ·ㅔ·ㅚ·ㅢ 쪽인지, 겹받침이 있는지"만 확인해요. 바탕 글자가 받침 없는 글자라면 모음이 바뀐 쌍이고, 겹받침이 있다면 거의 받침 쪽이 바뀌었을 거예요.</p>
<h3>2. 바뀔 자리에 시선을 고정하기</h3>
<p>48쌍을 보면 규칙이 있어요. 받침 없는 쌍은 전부 모음 획(ㅐ와 ㅔ의 짧은 가로획, ㅚ와 ㅢ의 세로·가로 배치 등)이 달라요. 받침 있는 쌍은 26쌍이 받침이 다르고, 나머지(갰/겠, 휑/휭, 됐/됬 등)는 모음이 달라요. 바탕이 "뷁"이면 아래쪽 받침, "갰"이면 모음 오른쪽처럼 비교할 부분을 미리 정해 두면, 판 전체가 아니라 그 작은 부분만 비교하면 돼요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/odd-letter-game-tips-3.svg" alt="왼쪽은 6×6 판에서 칸마다 글자를 지그재그로 읽는 경로, 오른쪽은 받침 자리만 파란 띠로 표시하고 줄 단위로 훑어 넷째 줄에서 밞을 찾는 모습을 비교한 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>같은 판이라도 볼 자리를 좁히면 무늬가 끊기는 곳이 빨리 보여요</figcaption></figure>
<h3>3. 한 칸씩 읽지 말고 줄 단위로 훑기</h3>
<p>정해 둔 자리만 보면서 한 줄을 통째로 왼쪽에서 오른쪽으로 쓸어 보세요. 같은 자리에 같은 모양이 반복되다가 한 곳만 끊기면 그게 정답이에요. 한 줄에 7~9칸이 있는 후반 판에서도 줄 단위로 보면 9번만 시선을 옮기면 돼요.</p>
<p>바탕 글자를 보고 어디를 볼지 정하는 기준을 표로 정리하면 이래요. 게임 코드의 48쌍을 유니코드 자모로 분해해서 직접 분류했어요. 받침이 있으면 받침부터 보되, 받침이 같아 보이면 바로 모음으로 시선을 옮기면 돼요.</p>
<div class="table-wrap"><table><thead><tr><th>바탕 글자 모양</th><th>바뀌는 자리</th><th>해당 쌍 수</th><th>예</th><th>시선을 둘 곳</th></tr></thead><tbody><tr><td>받침 없음</td><td>모음</td><td>14</td><td>대/데, 외/의, 썌/쎄</td><td>모음의 짧은 획 (오른쪽·아래)</td></tr><tr><td>받침 있음 · 받침이 같아 보일 때</td><td>모음</td><td>8</td><td>갰/겠, 휑/휭, 짧/쨟</td><td>모음 오른쪽 세로획 근처</td></tr><tr><td>받침 있음 (겹받침·획 많은 받침이 대부분)</td><td>받침</td><td>26</td><td>뷁/뷀, 밟/밞, 앉/않</td><td>받침의 오른쪽 절반</td></tr></tbody></table></div>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">틀리면 3초, 찍을까 말까 계산</h2>
<p>틀린 칸을 누르면 3초가 빠져요. 전체 60초에서 3초는 5%이고, 20단계를 노린다면 한 단계 평균 시간(3초)과 같아요. 즉 <strong>한 번 틀리면 한 단계를 통째로 날리는 셈</strong>이에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">단계당 평균 시간별로 60초 안에 통과하는 단계 수 (틀림 0번 기준)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="단계당 평균 시간별로 60초 안에 통과하는 단계 수 (틀림 0번 기준)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="628" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">15</text><line class="viz-grid" x1="52" x2="628" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">25</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">30</text><rect class="s1" x="66.4" y="18.0" width="67.2" height="236.0" rx="3"><title>2초 · 통과 단계 30단계</title></rect><text class="viz-val" x="100.0" y="13.0" text-anchor="middle">30</text><text class="viz-ax" x="100.0" y="272" text-anchor="middle">2초</text><rect class="s1" x="162.4" y="65.2" width="67.2" height="188.8" rx="3"><title>2.5초 · 통과 단계 24단계</title></rect><text class="viz-val" x="196.0" y="60.2" text-anchor="middle">24</text><text class="viz-ax" x="196.0" y="272" text-anchor="middle">2.5초</text><rect class="s1" x="258.4" y="96.7" width="67.2" height="157.3" rx="3"><title>3초 · 통과 단계 20단계</title></rect><text class="viz-val" x="292.0" y="91.7" text-anchor="middle">20</text><text class="viz-ax" x="292.0" y="272" text-anchor="middle">3초</text><rect class="s1" x="354.4" y="136.0" width="67.2" height="118.0" rx="3"><title>4초 · 통과 단계 15단계</title></rect><text class="viz-val" x="388.0" y="131.0" text-anchor="middle">15</text><text class="viz-ax" x="388.0" y="272" text-anchor="middle">4초</text><rect class="s1" x="450.4" y="159.6" width="67.2" height="94.4" rx="3"><title>5초 · 통과 단계 12단계</title></rect><text class="viz-val" x="484.0" y="154.6" text-anchor="middle">12</text><text class="viz-ax" x="484.0" y="272" text-anchor="middle">5초</text><rect class="s1" x="546.4" y="175.3" width="67.2" height="78.7" rx="3"><title>6초 · 통과 단계 10단계</title></rect><text class="viz-val" x="580.0" y="170.3" text-anchor="middle">10</text><text class="viz-ax" x="580.0" y="272" text-anchor="middle">6초</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><div class="viz-cap">단위: 단계 · 자료: 60초 ÷ 단계당 평균 시간으로 단순 계산 (실제로는 후반 판일수록 더 오래 걸려요)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>통과 단계</th></tr></thead><tbody><tr><td>2초</td><td>30</td></tr><tr><td>2.5초</td><td>24</td></tr><tr><td>3초</td><td>20</td></tr><tr><td>4초</td><td>15</td></tr><tr><td>5초</td><td>12</td></tr><tr><td>6초</td><td>10</td></tr></tbody></table></div></details></figure>
<p>두 칸 중 하나가 정답 같은데 확신이 없을 때를 생각해 볼게요. 반반 확률로 찍으면 절반은 바로 넘어가고, 절반은 3초를 잃은 뒤 다른 칸을 눌러야 해요. 평균 1.5초 손해예요. 한 번 더 보고 확인하는 데 1초 남짓이면 된다면 확인하는 쪽이 유리해요. 판 전체에서 아예 못 찾았을 때 아무 데나 누르는 건 81칸 판이라면 거의 확실한 3초 손해예요.</p>
<p>후보 칸 수별로 무작위로 눌러서 맞힐 때까지 잃는 시간의 기댓값을 계산하면 이래요. 후보가 n칸이면 정답 전에 평균 (n−1)÷2번 틀리고, 한 번에 3초씩 잃어요.</p>
<div class="table-wrap"><table><thead><tr><th>후보 칸 수</th><th>평균 틀리는 횟수</th><th>평균 잃는 시간</th><th>판단</th></tr></thead><tbody><tr><td>2칸</td><td>0.5번</td><td>1.5초</td><td>1초 안에 확인할 수 있으면 확인</td></tr><tr><td>3칸</td><td>1번</td><td>3초</td><td>한 단계 시간과 같음, 확인이 유리</td></tr><tr><td>4칸</td><td>1.5번</td><td>4.5초</td><td>찍지 말고 다시 훑기</td></tr><tr><td>9칸 (3×3 판 전체)</td><td>4번</td><td>12초</td><td>한 판의 20%를 날림</td></tr><tr><td>81칸 (9×9 판 전체)</td><td>40번</td><td>120초</td><td>사실상 게임 종료</td></tr></tbody></table></div>
<aside class="callout warn"><b class="callout-h">주의</b><p>틀린 칸을 연달아 누르면 감점이 쌓여서 남은 시간이 순식간에 사라져요. 한 번 틀렸다면 바로 다음 칸을 누르지 말고, 바탕 글자를 다시 보고 바뀐 자리부터 정하는 게 더 빨라요.</p></aside>
<h2 id="s7">기기와 환경에 따라 달라지는 점</h2>
<p>글자는 이미지가 아니라 기기에 깔린 한글 글꼴로 그려요. 그래서 아이폰(애플 SD 고딕 네오), 안드로이드(본고딕 계열), 윈도(맑은 고딕)에서 획 굵기와 받침 모양이 조금씩 달라요. 어떤 글꼴에서는 ㄺ과 ㄼ이 더 비슷해 보이고, 어떤 글꼴에서는 ㅐ와 ㅔ의 짧은 획이 더 잘 보일 수 있어요. 기록을 비교할 때는 같은 기기에서 하는 게 공정해요.</p>
<p>휴대폰에서는 9×9 판의 글자가 약 23px(390px 너비 화면 기준)로 작아져요. 화면 밝기를 적당히 올리고 세로로 들고 하면 조금 더 잘 보여요. 판 위에서 누르는 순간(손가락이 닿는 순간) 바로 판정하니, 손을 뗄 때까지 기다릴 필요는 없어요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s8">가장 헷갈리는 글자 쌍 TOP 8</h2>
<p>48쌍 중에서 차이가 가장 작은 자리에 몰려 있거나, 글꼴에 따라 거의 같아 보이는 쌍을 골라 봤어요(재미로 고른 목록이에요).</p>
<ol><li><strong>뷁/뷀</strong> — 받침 ㄺ과 ㄹ. ㄺ의 오른쪽 ㄱ이 작아서 큰 판에서는 거의 안 보여요.</li><li><strong>쀍/쀏</strong> — 받침 ㄺ과 ㄼ. 오른쪽 반쪽 ㄱ과 ㅂ의 차이라 획 수가 비슷해요.</li><li><strong>밟/밞</strong> — 받침 ㄼ과 ㄻ. ㅂ과 ㅁ은 위쪽 짧은 세로획 두 개만 달라요.</li><li><strong>외/의</strong> — ㅚ와 ㅢ. 가로획 위에 짧은 세로획이 있느냐 없느냐예요.</li><li><strong>귀/긔</strong> — ㅟ와 ㅢ. 가로획 아래로 짧은 세로획이 내려오느냐예요.</li><li><strong>됐/됬</strong> — ㅙ와 ㅚ. 맞춤법에서도 자주 틀리는 바로 그 쌍이에요.</li><li><strong>힣/힇</strong> — ㅣ와 ㅢ. 받침 ㅎ 위의 가로획 하나 차이예요.</li><li><strong>앉/않</strong> — ㄵ과 ㄶ. 받침 오른쪽 ㅈ과 ㅎ의 위쪽 모양이 비슷해요.</li></ol>
<h2 id="s9">자주 묻는 질문</h2>
<h3>다른 글자 찾기 게임은 몇 단계면 잘하는 건가요?</h3>
<p>이 페이지의 재미용 구간으로는 5단계 미만 몸풀기, 10단계 미만 평범한 눈, 15단계 미만 꼼꼼한 눈, 20단계 미만 매의 눈, 26단계 미만 교정 전문가, 그 이상은 한글 마스터예요. 19단계부터는 어려움 쌍만 나오고 판도 7×7 이상이라 20단계를 넘기면 꽤 잘하는 편이에요.</p>
<h3>맞히면 시간이 늘어나나요?</h3>
<p>아니요. 한 판 전체에 60초가 고정이고, 맞혀도 시간이 늘지 않아요. 틀린 칸을 누를 때만 3초가 줄어요. 그래서 앞쪽 쉬운 단계를 빨리 넘기는 게 중요해요.</p>
<h3>뷁, 쀍 같은 글자는 실제로 있는 글자인가요?</h3>
<p>유니코드 한글 완성형 11,172자 안에 들어 있는 글자라 컴퓨터와 휴대폰에서 정상적으로 표시돼요. 다만 국어사전에 오른 낱말에 쓰이는 글자는 아니고, 모양 비교용으로 쓴 거예요.</p>
<h3>같은 기기인데 날마다 기록이 달라요.</h3>
<p>정답 위치와 나오는 글자 쌍이 매번 무작위라서 판마다 운이 조금 섞여요. 정답이 판 앞쪽에 있으면 빨리 찾고, 마지막 줄에 있으면 오래 걸려요. 여러 판의 최고 기록으로 비교하는 게 좋아요.</p>
<h3>이 게임으로 시력이나 집중력을 잴 수 있나요?</h3>
<p>아니요. 오락용 게임이고 시력이나 주의력을 판정하는 검사가 아니에요. 기록은 기기, 글꼴, 화면 크기, 컨디션에 따라 크게 달라져요.</p>
<h2 id="s10">정리</h2>
<p>다른 글자 찾기는 눈이 좋은 사람보다 <strong>찾는 순서를 정해 둔 사람</strong>이 유리한 게임이에요. 바탕 글자를 보고, 바뀔 자리를 정하고, 그 자리만 줄 단위로 훑는 세 단계를 몸에 익히면 후반 9×9 판에서도 시간이 덜 모자라요. 그리고 확신이 없을 때 찍는 건 평균적으로 손해라는 것만 기억해 두세요.</p>
<p>지금 바로 <a href="https://game.smithlab.co.kr/games/odd-letter/">다른 글자 찾기</a>에서 60초 도전을 해 보세요. 색으로 겨루는 <a href="https://game.smithlab.co.kr/games/color-sense/">절대색감 테스트</a>, 숫자를 순서대로 누르는 <a href="https://game.smithlab.co.kr/games/one-to-fifty/">1 to 50 게임</a>도 같은 눈썰미 게임이에요. 손이 빠른 게임이 좋다면 <a href="https://game.smithlab.co.kr/posts/games/whack-a-mole-reaction-tips/">두더지 잡기 잘하는 법</a>도 읽어 보세요.</p>
    ]]></description>
    </item>
    <item>
      <title>1 to 50 게임 평균 기록은? 기록 구간표와 빨라지는 요령 7가지</title>
      <link>https://game.smithlab.co.kr/posts/games/one-to-fifty-game-record-tips/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/one-to-fifty-game-record-tips/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>1부터 50까지 숫자를 순서대로 누르기만 하면 되는 게임인데, 친구는 20초대가 나오고 나는 40초가 넘게 걸리면 은근히 승부욕이 생기죠. 결론부터 말하면 <strong>1 to 50 게임은 처음 해 보는 사람이 대략 35~50초, 몇 판 익숙해지면 25~35초, 꾸준히 연습한 사람은 20초 안팎이 흔한 구간이에요.</strong> 공식 통계가 있는 게임이 아니라서 이 숫자는 경험적인 예시지만, 기록이 갈리는 원리는 분명해요. 손가락 속도보다 <strong>"다음 숫자를 얼마나 빨리 찾느냐", 즉 시각 탐색 속도</strong>가 기록의 대부분을 결정해요.</p>
<p>이 글에서는 1 to 50 게임의 규칙을 숫자로 뜯어보고, 한 판 동안 눈이 몇 칸을 훑는지 직접 계산한 다음, 기록을 줄이는 요령 7가지와 흔한 실수를 정리했어요. 읽고 나서 바로 <a href="https://game.smithlab.co.kr/games/one-to-fifty/">1 to 50 게임</a>에서 한 판 해 보면 차이를 느낄 수 있을 거예요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>1 to 50 기록은 처음 35~50초, 익숙해지면 25~35초, 숙련자 20초 안팎이 흔한 경험적 구간이에요. 공식 평균은 없어요.</li><li>기록의 대부분은 손이 아니라 눈이 숫자를 찾는 시간이에요. 1~25 구간은 매번 25칸 중에서 찾아야 해서 가장 오래 걸려요.</li><li>가장 큰 효과는 "지금 숫자를 누르는 동안 다음 숫자를 미리 찾기"예요. 탐색과 터치를 겹치면 숫자당 0.1~0.2초가 줄어요.</li><li>화면 가운데를 바라보며 주변시야로 전체를 보는 연습, 26 이후 빈칸이 늘어나는 후반 구간에서 속도 올리기도 효과가 커요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">1 to 50 게임 규칙, 숫자로 다시 보기</h2>
<p>1 to 50은 5×5, 즉 25칸 판에서 숫자를 1부터 순서대로 누르는 게임이에요. 일반적인 규칙은 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>항목</th><th>내용</th></tr></thead><tbody><tr><td>판 크기</td><td>5×5 = 25칸</td></tr><tr><td>처음 보이는 숫자</td><td>1~25가 무작위 배치</td></tr><tr><td>1~25를 누르면</td><td>누른 칸에 26~50 중 하나가 새로 나타남</td></tr><tr><td>26~50을 누르면</td><td>그 칸은 빈칸이 됨</td></tr><tr><td>틀린 숫자를 누르면</td><td>반응 없음 또는 시간 손해 (게임마다 다름)</td></tr><tr><td>기록</td><td>1을 누른 순간 또는 시작 신호부터 50까지 걸린 시간</td></tr></tbody></table></div>
<p>이 규칙에서 기록과 직결되는 포인트가 두 가지 있어요.</p>
<p>첫째, <strong>1~25 구간은 판이 늘 꽉 차 있어요.</strong> 1을 누르면 그 자리에 26~50 중 하나가 생기니까, 2를 찾을 때도, 25를 찾을 때도 화면에는 항상 25개의 숫자가 있어요. 오히려 뒤로 갈수록 26 이상의 "아직 누르면 안 되는 숫자"가 섞여서 헷갈림이 늘어나요.</p>
<p>둘째, <strong>26~50 구간은 칸이 하나씩 비어요.</strong> 26을 찾을 때는 25칸, 27은 24칸, … 50은 마지막 1칸에서 찾아요. 후반으로 갈수록 찾을 범위가 줄어들어서, 같은 사람이라도 뒷부분은 앞부분보다 훨씬 빨라요.</p>
<h2 id="s2">기록 구간표: 내 1 to 50 기록은 어느 정도일까</h2>
<p>1 to 50은 게임마다 판 크기, 터치 판정, 시간 측정 방식이 조금씩 달라서 공신력 있는 평균 통계가 없어요. 아래 표는 이런 게임을 처음 해 보는 사람과 반복해서 하는 사람의 기록이 대략 어디쯤 모이는지, 숫자당 걸리는 시간으로 거꾸로 맞춰 본 <strong>경험적 예시 구간</strong>이에요.</p>
<div class="table-wrap"><table><thead><tr><th>구간 (예시)</th><th>기록</th><th>숫자 1개당 평균</th><th>어떤 상태인가</th></tr></thead><tbody><tr><td>첫 판</td><td>45~60초</td><td>0.9~1.2초</td><td>규칙 파악 중, 눈이 무작위로 헤맴</td></tr><tr><td>입문</td><td>35~45초</td><td>0.7~0.9초</td><td>순서는 익숙, 매번 처음부터 다시 훑음</td></tr><tr><td>보통</td><td>28~35초</td><td>0.56~0.7초</td><td>대략 위치 감각이 생김</td></tr><tr><td>잘함</td><td>22~28초</td><td>0.44~0.56초</td><td>다음 숫자를 미리 보기 시작</td></tr><tr><td>매우 잘함</td><td>22초 미만</td><td>0.44초 미만</td><td>탐색과 터치가 거의 겹침</td></tr></tbody></table></div>
<p>숫자당 시간은 기록 ÷ 50으로 계산했어요. 예를 들어 30초면 숫자 하나에 0.6초씩 쓴 셈이에요. 이 0.6초 안에는 눈이 다음 숫자를 찾는 시간, 손가락이 그 칸으로 움직이는 시간, 누르는 시간이 모두 들어 있어요.</p>
<p>기기 조건도 기록에 영향을 줘요. 큰 태블릿은 손가락 이동 거리가 길어 느려지고, PC에서 마우스로 하면 커서를 옮기는 시간 때문에 보통 터치보다 몇 초 늦게 나와요. 그래서 친구와 기록을 비교할 땐 <strong>같은 기기, 같은 입력 방식</strong>으로 하는 게 공정해요.</p>
<h2 id="s3">기록의 대부분은 눈이 쓰는 시간이에요</h2>
<p>사람이 화면에서 원하는 숫자를 찾는 과정을 심리학에서는 '시각 탐색'이라고 불러요. 빨간 동그라미 사이의 파란 동그라미처럼 색이 확 다르면 한눈에 튀어 보이지만, 숫자끼리는 모양이 비슷해서 하나씩 확인하는 <strong>순차 탐색</strong>에 가까워져요. 순차 탐색에서는 찾을 대상이 무작위 위치에 있을 때 평균적으로 전체의 절반쯤을 훑어야 찾아요. 칸이 n개면 평균 (n+1)/2칸이에요.</p>
<p>이걸 1 to 50에 그대로 적용하면, 숫자를 하나 찾을 때 눈이 평균 몇 칸을 확인해야 하는지 계산할 수 있어요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">1 to 50에서 숫자 하나 찾을 때 평균 확인해야 하는 칸 수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="1 to 50에서 숫자 하나 찾을 때 평균 확인해야 하는 칸 수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">2.5</text><line class="viz-grid" x1="52" x2="570" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">7.5</text><line class="viz-grid" x1="52" x2="570" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="570" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">12.5</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">15</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">1</text><text class="viz-ax" x="146.2" y="272" text-anchor="middle">10</text><text class="viz-ax" x="240.4" y="272" text-anchor="middle">20</text><text class="viz-ax" x="334.5" y="272" text-anchor="middle">26</text><text class="viz-ax" x="428.7" y="272" text-anchor="middle">35</text><text class="viz-ax" x="522.9" y="272" text-anchor="middle">45</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">50</text><polyline class="viz-line s1" points="52.0,49.5 99.1,49.5 146.2,49.5 193.3,49.5 240.4,49.5 287.5,49.5 334.5,49.5 381.6,80.9 428.7,120.3 475.8,159.6 522.9,198.9 570.0,238.3"/><circle class="viz-dot s1" cx="52.0" cy="49.5" r="4"><title>1 · 평균 확인 칸 13칸</title></circle><circle class="viz-dot s1" cx="99.1" cy="49.5" r="4"><title>5 · 평균 확인 칸 13칸</title></circle><circle class="viz-dot s1" cx="146.2" cy="49.5" r="4"><title>10 · 평균 확인 칸 13칸</title></circle><circle class="viz-dot s1" cx="193.3" cy="49.5" r="4"><title>15 · 평균 확인 칸 13칸</title></circle><circle class="viz-dot s1" cx="240.4" cy="49.5" r="4"><title>20 · 평균 확인 칸 13칸</title></circle><circle class="viz-dot s1" cx="287.5" cy="49.5" r="4"><title>25 · 평균 확인 칸 13칸</title></circle><circle class="viz-dot s1" cx="334.5" cy="49.5" r="4"><title>26 · 평균 확인 칸 13칸</title></circle><circle class="viz-dot s1" cx="381.6" cy="80.9" r="4"><title>30 · 평균 확인 칸 11칸</title></circle><circle class="viz-dot s1" cx="428.7" cy="120.3" r="4"><title>35 · 평균 확인 칸 8.5칸</title></circle><circle class="viz-dot s1" cx="475.8" cy="159.6" r="4"><title>40 · 평균 확인 칸 6칸</title></circle><circle class="viz-dot s1" cx="522.9" cy="198.9" r="4"><title>45 · 평균 확인 칸 3.5칸</title></circle><circle class="viz-dot s1" cx="570.0" cy="238.3" r="4"><title>50 · 평균 확인 칸 1칸</title></circle><text class="viz-val" x="578.0" y="242.3">1</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">1~25는 판이 늘 25칸이라 평균 13칸, 26 이후는 빈칸이 늘어 50번째는 1칸만 보면 돼요.</p><div class="viz-cap">단위: 칸 · 자료: 무작위 배치에서 한 칸씩 확인하는 순차 탐색 가정, (남은 칸 수+1)÷2로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>평균 확인 칸</th></tr></thead><tbody><tr><td>1</td><td>13</td></tr><tr><td>5</td><td>13</td></tr><tr><td>10</td><td>13</td></tr><tr><td>15</td><td>13</td></tr><tr><td>20</td><td>13</td></tr><tr><td>25</td><td>13</td></tr><tr><td>26</td><td>13</td></tr><tr><td>30</td><td>11</td></tr><tr><td>35</td><td>8.5</td></tr><tr><td>40</td><td>6</td></tr><tr><td>45</td><td>3.5</td></tr><tr><td>50</td><td>1</td></tr></tbody></table></div></details></figure>
<p>전부 더하면 한 판 동안 눈이 확인하는 칸은 평균 약 500칸이에요(1~25 구간 25×13 = 325칸, 26~50 구간 13+12.5+…+1 = 175칸). 한 칸 확인에 0.04초만 걸려도 탐색에만 약 20초가 들어가는 셈이에요. 기록 30초짜리 판에서 탐색이 3분의 2를 차지한다는 뜻이고, 손가락을 아무리 빨리 움직여도 이 부분을 줄이지 않으면 기록이 크게 안 바뀌어요.</p>
<p>물론 실제 사람의 눈은 정확히 한 칸씩 보지 않아요. 한 번 시선을 두면 주변 몇 칸이 동시에 들어오고, 이전에 지나가며 본 위치를 어렴풋이 기억하기도 해요. 그래서 실제로는 이 계산보다 훨씬 적게 훑는데, <strong>바로 이 "한 번에 보는 칸 수"와 "위치 기억"을 늘리는 것이 빨라지는 요령의 핵심</strong>이에요.</p>
<h2 id="s4">1 to 50 빨라지는 요령 7가지</h2>
<h3>1. 누르는 동안 다음 숫자를 미리 찾기</h3>
<p>가장 효과가 큰 요령이에요. 초보는 "찾기 → 누르기 → 다음 숫자 찾기 시작"을 순서대로 해요. 숙련자는 손가락이 7을 누르러 가는 동안 눈은 이미 8을 찾고 있어요. 탐색과 터치를 겹치는 거죠.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/one-to-fifty-game-record-tips-1.svg" alt="순서대로 찾고 누르는 방식과 다음 숫자를 미리 찾는 방식의 시간 비교" width="800" height="450" loading="lazy" decoding="async"><figcaption>탐색과 터치를 겹치면 숫자마다 터치 시간만큼 줄어요</figcaption></figure>
<p>숫자당 터치 시간이 0.15초라면, 50개 숫자에서 최대 7.5초를 줄일 수 있어요. 처음에는 손이 엉뚱한 칸을 누르기 쉬우니, 몇 판은 기록보다 "누르기 전에 다음 숫자 위치가 이미 보였나"만 신경 써 보세요.</p>
<h3>2. 화면 가운데를 보고 주변시야로 전체 잡기</h3>
<p>눈을 숫자 하나하나에 옮기면 시선 이동(도약 안구 운동) 한 번마다 시간이 들어요. 5×5 판은 스마트폰 화면에서 꽤 작기 때문에, 가운데 칸 근처에 시선을 두면 주변시야로 판 전체가 대략 들어와요. 이렇게 보면 정확히 읽히지는 않아도 "저쪽 구석에 두 자리 숫자가 있다" 정도는 감이 와요.</p>
<p>러시아 등에서 집중력·주변시야 훈련용으로 쓰는 <strong>슐테 테이블</strong>(5×5 칸에 1~25를 섞어 놓고 순서대로 찾는 표)도 같은 원리예요. 훈련법에서는 가운데를 응시한 채 눈동자를 최대한 덜 움직이며 숫자를 찾으라고 해요. 다만 슐테 테이블이 독서 속도나 지능을 올려 준다는 주장은 근거가 약하니, 게임 기록용 요령 정도로 생각하는 게 좋아요.</p>
<h3>3. 지나가며 본 숫자 위치를 기억하기</h3>
<p>2를 찾으면서 훑는 동안 우연히 5, 9, 14가 눈에 걸릴 때가 있어요. 이걸 의식적으로 기억해 두면 나중에 그 숫자를 찾을 때 탐색이 거의 0초가 돼요. 한 번에 7개 이상 기억하는 건 어렵지만, <strong>바로 다음 2~3개 숫자의 위치만 기억해도</strong> 체감 속도가 확 달라져요. 숫자를 기억하는 힘이 궁금하다면 <a href="https://game.smithlab.co.kr/posts/games/number-memory-digit-span/">숫자 기억력 테스트와 숫자 폭 이야기</a>도 참고해 보세요.</p>
<h3>4. 26 이후는 "두 자리 큰 숫자"만 보기</h3>
<p>1~25를 누르는 동안 판에는 26 이상의 숫자가 점점 섞여요. 초보가 20번대에서 느려지는 이유가 이거예요. 21을 찾아야 하는데 31, 41 같은 비슷한 모양이 눈을 끌거든요. 이럴 때는 첫 글자에 집중하세요. 21~25를 찾을 땐 "2로 시작하는 숫자"만, 26 이후로 넘어가면 숫자 범위(20번대·30번대·40번대)를 먼저 걸러 보는 식이에요.</p>
<h3>5. 후반 26~50에서 속도를 끌어올리기</h3>
<p>앞의 차트에서 봤듯 26 이후로는 칸이 하나씩 비어서 찾기가 점점 쉬워져요. 40 이후는 남은 칸이 10개 이하라 거의 한눈에 보여요. 그런데 많은 사람이 앞부분과 같은 리듬으로 누르다가 시간을 흘려보내요. <strong>40을 넘기면 탐색보다 터치 속도가 기록을 좌우</strong>하니까, 이 구간에서는 손가락을 쉬지 말고 연속으로 누르는 느낌으로 가세요.</p>
<h3>6. 손가락 배치와 화면 위치 정리하기</h3>
<p>한 손 검지로만 누르면 이동 거리가 길어요. 양손 검지나 양손 엄지를 쓰면 판을 좌우로 나눠서 이동 거리가 줄어요. 스마트폰은 책상에 내려놓고 양손 검지로 누르는 방식이 가장 안정적이라는 사람이 많아요. 그리고 판이 화면 아래쪽에 있다면 화면을 살짝 위로 스크롤해 눈높이를 맞추는 것도 작지만 확실한 차이를 만들어요.</p>
<h3>7. 오답 터치를 줄이기</h3>
<p>틀린 숫자를 누르면 게임에 따라 시간이 추가되거나, 적어도 그 순간 리듬이 깨져요. 빨리 하려다 18을 누를 차례에 13을 누르는 식의 실수가 잦다면, 한 판 정도는 속도를 10% 늦추고 정확도를 먼저 맞추는 게 오히려 기록에 이득이에요.</p>
<h2 id="s5">연습하면 얼마나 빨라질까: 시간 분해로 보기</h2>
<p>기록을 "탐색 시간 + 이동·터치 시간 − 겹친 시간"으로 쪼개 보면 어디서 줄일 수 있는지 보여요. 아래는 숫자 하나에 걸리는 시간을 구간별로 가정해 계산한 <strong>예시</strong>예요.</p>
<figure class="viz viz-stacked"><figcaption class="viz-title">1 to 50 한 판의 시간 구성 예시 (숫자 50개 기준)</figcaption><div class="viz-legend"><span><i class="s1"></i>탐색</span><span><i class="s2"></i>이동·터치</span></div><svg viewBox="0 0 640 300" role="img" aria-label="1 to 50 한 판의 시간 구성 예시 (숫자 50개 기준)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">30</text><line class="viz-grid" x1="52" x2="628" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">50</text><rect class="s1" x="73.6" y="65.2" width="100.8" height="188.8" rx="3"><title>첫 판 · 탐색 40초</title></rect><rect class="s2" x="73.6" y="18.0" width="100.8" height="45.2" rx="3"><title>첫 판 · 이동·터치 10초</title></rect><text class="viz-ax" x="124.0" y="272" text-anchor="middle">첫 판</text><rect class="s1" x="217.6" y="147.8" width="100.8" height="106.2" rx="3"><title>보통 · 탐색 22.5초</title></rect><rect class="s2" x="217.6" y="112.4" width="100.8" height="33.4" rx="3"><title>보통 · 이동·터치 7.5초</title></rect><text class="viz-ax" x="268.0" y="272" text-anchor="middle">보통</text><rect class="s1" x="361.6" y="173.8" width="100.8" height="80.2" rx="3"><title>잘함 · 탐색 17초</title></rect><rect class="s2" x="361.6" y="145.4" width="100.8" height="26.3" rx="3"><title>잘함 · 이동·터치 6초</title></rect><text class="viz-ax" x="412.0" y="272" text-anchor="middle">잘함</text><rect class="s1" x="505.6" y="202.1" width="100.8" height="51.9" rx="3"><title>매우 잘함 · 탐색 11초</title></rect><rect class="s2" x="505.6" y="178.5" width="100.8" height="21.6" rx="3"><title>매우 잘함 · 이동·터치 5초</title></rect><text class="viz-ax" x="556.0" y="272" text-anchor="middle">매우 잘함</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">탐색이 40초에서 11초로 줄어드는 동안 터치는 10초에서 5초로 줄어요. 기록 단축의 대부분은 눈에서 나와요.</p><div class="viz-cap">단위: 초 · 자료: 숫자당 탐색 0.8·0.45·0.34·0.22초, 겹치지 않은 이동·터치 0.2·0.15·0.12·0.1초로 가정한 예시 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>탐색</th><th>이동·터치</th></tr></thead><tbody><tr><td>첫 판</td><td>40</td><td>10</td></tr><tr><td>보통</td><td>22.5</td><td>7.5</td></tr><tr><td>잘함</td><td>17</td><td>6</td></tr><tr><td>매우 잘함</td><td>11</td><td>5</td></tr></tbody></table></div></details></figure>
<p>첫 판 50초가 숙련 16초가 되기까지 줄어든 34초 중 29초가 탐색 시간이에요. 그래서 "손이 느려서 기록이 안 나온다"는 생각은 대부분 오해예요. 실제로 손가락 반응 자체는 생각보다 빨라요. 화면 신호를 보고 누르는 단순 반응 시간이 성인 기준 0.2~0.3초 안팎이라는 건 <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응속도 테스트 평균과 원리</a>에서 자세히 다뤘어요. 1 to 50의 숫자당 시간이 그보다 훨씬 긴 건, 대부분 "무엇을 누를지 찾는" 과정 때문이에요.</p>
<p>연습 효과는 처음 몇 판에서 가장 커요. 규칙에 익숙해지고, 판 크기에 맞는 시선 위치를 찾는 것만으로도 10초 넘게 줄어드는 경우가 흔해요. 그 뒤로는 줄어드는 폭이 점점 작아지는 전형적인 학습 곡선을 그려요. 20초 벽을 넘으려면 위 요령 중 1번(미리 찾기)과 3번(위치 기억)이 몸에 배어야 해요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">흔한 실수와 기록이 안 줄 때 점검표</h2>
<ul><li><strong>매 숫자마다 왼쪽 위부터 다시 훑는다</strong> — 책 읽듯 Z자로 훑으면 평균 탐색량이 그대로예요. 가운데 응시로 바꿔 보세요.</li><li><strong>20번대에서 30·40번대에 낚인다</strong> — 앞자리 숫자부터 걸러 보는 습관을 들이세요.</li><li><strong>40 이후에 긴장이 풀린다</strong> — 마지막 10개는 탐색이 거의 필요 없어요. 오히려 가장 빨리 눌러야 하는 구간이에요.</li><li><strong>손가락을 화면에서 멀리 뗀다</strong> — 손가락은 화면 1cm 위에 떠 있는 느낌으로 유지하면 이동이 짧아져요.</li><li><strong>피곤할 때 기록 갱신을 노린다</strong> — 시각 탐색은 집중력에 민감해요. 졸리거나 눈이 피로할 때는 몇 초씩 차이가 나요.</li><li><strong>기기를 바꿔 가며 비교한다</strong> — 화면 크기와 터치 반응이 다르면 기록 비교가 의미 없어요.</li></ul>
<h2 id="s7">1 to 50과 비슷한 게임으로 감 키우기</h2>
<p>1 to 50이 연습하는 능력은 크게 "빨리 찾기"와 "빨리 판단하기"예요. 비슷한 능력을 다른 방식으로 쓰는 게임을 섞어 하면 덜 지루하게 감각을 키울 수 있어요.</p>
<ul><li><a href="https://game.smithlab.co.kr/games/color-sense/">색 감각 테스트</a> — 비슷한 색 사이에서 다른 칸 하나를 찾는 게임이에요. 1 to 50이 숫자 모양을 구별한다면, 이건 미세한 색 차이를 구별해요. 둘 다 "판 전체를 한 번에 보고 튀는 걸 잡는" 연습이 돼요.</li><li><a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a> — 찾기 없이 순수하게 누르는 속도만 재요. 내 기록에서 손이 차지하는 몫을 가늠해 볼 수 있어요.</li><li><a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억력 테스트</a> — 3번 요령(위치 기억)에 필요한 짧은 기억 용량을 확인해 볼 수 있어요.</li></ul>
<p>이런 게임이 치매 예방이나 두뇌 나이를 바꿔 준다는 광고성 주장도 많은데, 연구 결과를 보면 연습한 게임 자체는 늘지만 다른 인지 능력으로 옮겨 가는 효과는 제한적이에요. 이 부분은 <a href="https://game.smithlab.co.kr/posts/games/brain-games-dementia-facts/">두뇌 게임과 치매 예방, 연구로 본 사실</a>에 정리해 뒀어요. 1 to 50은 재미있게 집중하는 게임으로 즐기는 게 가장 좋아요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s8">친구·모임에서 1 to 50 대결하는 방법</h2>
<p>1 to 50은 규칙 설명이 10초면 끝나서 모임 게임으로도 좋아요. 몇 가지 방식을 소개할게요.</p>
<div class="table-wrap"><table><thead><tr><th>방식</th><th>진행</th><th>포인트</th></tr></thead><tbody><tr><td>기록 대결</td><td>같은 폰으로 한 명씩 도전, 최고 기록 비교</td><td>기기·입력 방식 통일</td></tr><tr><td>3판 평균</td><td>각자 3판 해서 평균으로 순위</td><td>운(배치) 영향이 줄어 공정</td></tr><tr><td>핸디캡</td><td>잘하는 사람은 왼손(비주 손)으로</td><td>실력 차 줄이기</td></tr><tr><td>릴레이</td><td>1~25는 A, 26~50은 B가 이어서</td><td>팀 협동, 교대 타이밍이 관건</td></tr></tbody></table></div>
<p>숫자 배치가 매번 무작위라 같은 사람도 판마다 2~4초쯤 차이가 나요. 한 판 기록으로 승부를 내면 운이 섞이니, 진지하게 겨룬다면 3판 평균이나 최고 기록 중 하나를 미리 정해 두세요.</p>
<h2 id="s9">자주 묻는 질문</h2>
<h3>1 to 50 게임 평균 기록은 몇 초인가요?</h3>
<p>공식 통계는 없어요. 게임마다 판 크기와 측정 방식이 달라서예요. 경험적으로는 처음 해 보는 사람이 35~50초, 몇 판 익숙해지면 25~35초, 꾸준히 연습한 사람은 20초 안팎이 흔한 구간이에요. 30초 안쪽이면 꽤 빠른 편이라고 봐도 돼요.</p>
<h3>1 to 50 기록이 20초대면 잘하는 건가요?</h3>
<p>네, 20초대면 숫자 하나를 평균 0.6초 안에 찾고 누른다는 뜻이라 빠른 편이에요. 20초 초반부터는 다음 숫자를 미리 찾는 요령이 자리 잡은 단계예요. 10초대는 꾸준히 연습한 사람들의 영역이라고 보면 돼요.</p>
<h3>1 to 50 게임을 하면 집중력이나 두뇌가 좋아지나요?</h3>
<p>게임 기록은 연습할수록 확실히 좋아지지만, 그게 일상의 집중력이나 지능 향상으로 이어진다는 근거는 약해요. 두뇌 훈련 게임 연구들은 대부분 "연습한 과제만 는다"는 결과를 보여요. 짧은 시간 집중해서 즐기는 게임으로 생각하는 게 가장 정확해요.</p>
<h3>1 to 50과 슐테 테이블은 같은 건가요?</h3>
<p>원리는 같아요. 슐테 테이블은 5×5 칸에 1~25를 무작위로 배치하고 순서대로 찾는 표로, 주변시야와 주의 집중 훈련에 쓰여요. 1 to 50은 여기에 26~50이 다시 나타나는 두 번째 구간을 더한 게임 버전이라고 보면 돼요.</p>
<h3>왜 PC보다 휴대폰에서 기록이 더 잘 나오나요?</h3>
<p>마우스는 커서를 원하는 칸까지 옮기는 시간이 추가되고, 손가락 터치는 보는 곳을 바로 누를 수 있어서 이동이 짧아요. 반대로 화면이 아주 큰 태블릿은 손 이동 거리가 늘어 느려질 수 있어요. 기록을 비교할 땐 같은 기기로 하는 게 좋아요.</p>
<h2 id="s10">정리</h2>
<p>1 to 50 게임 기록은 처음 35~50초, 익숙해지면 25~35초, 숙련자 20초 안팎이 흔한 경험적 구간이에요. 기록의 대부분은 손이 아니라 눈이 숫자를 찾는 시간이라서, 빨라지려면 <strong>다음 숫자 미리 찾기, 가운데 보고 주변시야 쓰기, 지나가며 본 위치 기억하기</strong> 이 세 가지가 가장 중요해요. 26 이후 빈칸이 늘어나는 후반 구간에서 손 속도를 끌어올리는 것도 잊지 마세요.</p>
<p>요령을 읽었다면 바로 <a href="https://game.smithlab.co.kr/games/one-to-fifty/">1 to 50 게임</a>에서 3판 평균 기록을 재 보세요. 비슷한 감각을 쓰는 <a href="https://game.smithlab.co.kr/games/color-sense/">색 감각 테스트</a>와 순수 손 속도를 보는 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>도 같이 해 보면 내가 어디서 시간을 쓰는지 더 잘 보여요.</p>
    ]]></description>
    </item>
    <item>
      <title>피아노 타일 잘하는 법, 모드별 속도와 두 손 나눠 누르기 요령</title>
      <link>https://game.smithlab.co.kr/posts/games/piano-tiles-tips/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/piano-tiles-tips/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>피아노 타일을 처음 하면 대부분 열 몇 개쯤에서 흰 칸을 누르고 끝나요. 결론부터 말하면 <strong>피아노 타일은 손이 빠른 사람보다 눈이 한 박자 먼저 가는 사람이 잘하는 게임이에요. 지금 누르는 타일이 아니라 그 위 한두 줄을 보고, 네 줄을 두 손에 두 줄씩 나눠 맡기면 같은 속도에서도 실수가 확 줄어요.</strong> 스미스 게임 연구소 <a href="https://game.smithlab.co.kr/games/piano-tiles/">피아노 타일</a>은 아케이드 모드에서 초당 2.5타일로 시작해 타일 하나마다 0.04씩 빨라지고, 163개째부터 초당 9타일에서 더 오르지 않아요.</p>
<p>이 글에서는 게임에 실제로 들어 있는 규칙과 숫자를 그대로 가져와서 설명해요. 어떤 입력이 맞힌 것으로 인정되는지, 무엇이 게임 오버인지, 세 모드가 각각 무엇을 겨루는지, 아케이드에서 타일 하나를 누를 수 있는 시간이 얼마나 줄어드는지까지 계산해 뒀어요. 흐름을 알고 연습하면 "왜 졌는지"가 보이기 시작해요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>가장 아래에 남은 검은 타일부터 차례로 누르고, 눈은 그 위 한두 줄을 미리 봐요.</li><li>왼쪽 두 줄은 왼손, 오른쪽 두 줄은 오른손. 키보드는 D·F와 J·K, 모바일은 두 엄지예요.</li><li>아케이드 속도는 초당 2.5타일에서 시작해 1개마다 +0.04, 163개째부터 초당 9타일로 고정돼요.</li><li>클래식 50개는 첫 타일을 누른 순간부터 시간이 흘러서, 남은 49번의 간격이 곧 기록이에요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">피아노 타일 규칙, 무엇이 맞고 무엇이 틀린가</h2>
<p>화면은 세로 네 줄(레인)로 나뉘고, 가로 한 줄마다 검은 타일이 정확히 하나 있어요. 해야 할 일은 <strong>가장 아래에 남은 검은 타일을 누르는 것</strong> 하나뿐이에요. 그런데 실제로 게임이 끝나는 이유는 몇 가지로 정해져 있어요.</p>
<div class="table-wrap"><table><thead><tr><th>입력</th><th>결과</th></tr></thead><tbody><tr><td>지금 차례인 검은 타일</td><td>맞힘, 멜로디 한 음 연주</td></tr><tr><td>같은 줄에서 위아래로 반 칸 정도 빗나감</td><td>맞힘으로 인정</td></tr><tr><td>순서가 아닌 더 위쪽 검은 타일</td><td>무시 (벌점 없음)</td></tr><tr><td>이미 지나간 줄·시작 줄</td><td>무시</td></tr><tr><td>흰 칸</td><td>게임 오버, 그 칸이 빨갛게 깜박임</td></tr><tr><td>아케이드에서 검은 타일이 화면 아래로 빠져나감</td><td>게임 오버, 놓친 타일이 빨갛게 깜박임</td></tr></tbody></table></div>
<p>여기서 알아 둘 점이 두 가지 있어요. 첫째, <strong>같은 줄이면 살짝 빗나가도 인정돼요.</strong> 빨리 누르다 보면 손가락이 타일 경계 근처에 닿는 일이 많은데, 지금 차례 타일과 같은 레인이고 위아래 반 칸 안이면 맞힌 것으로 처리해요. 반대로 <strong>옆 레인의 흰 칸은 1픽셀만 걸쳐도 바로 끝</strong>이에요. 그러니 위아래보다 좌우 정확도에 더 신경 쓰는 게 맞아요.</p>
<p>둘째, 키보드로 할 때는 위치가 아니라 <strong>레인만</strong> 고르는 셈이에요. D·F·J·K 중 하나를 누르면 "지금 차례 줄의 그 칸"을 누른 것으로 처리돼요. 그래서 키보드에서 틀린 키는 언제나 흰 칸을 누른 것과 같아요.</p>
<p>검은 타일 배치는 무작위지만 한 가지 제한이 있어요. <strong>같은 레인에 검은 타일이 세 번 연속으로 나오지 않아요(최대 두 번).</strong> 같은 손가락으로 세 번 연타할 일은 없다는 뜻이라, 같은 레인이 두 번 나오면 다음은 반드시 다른 레인이에요.</p>
<h2 id="s2">눈은 위, 손은 아래 — 미리 보기가 전부예요</h2>
<p>피아노 타일에서 시간을 가장 많이 잡아먹는 건 손가락이 움직이는 시간이 아니라 <strong>"다음은 어디지?"를 찾는 시간</strong>이에요. 지금 타일을 누른 다음에야 다음 타일을 찾기 시작하면, 매 타일마다 찾는 시간이 더해져요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/piano-tiles-tips-1.svg" alt="피아노 타일 화면에서 눈은 위쪽 두 줄을 미리 보고 손은 가장 아래 타일을 누르며, 왼쪽 두 줄은 왼손 오른쪽 두 줄은 오른손이 맡는 방법을 나타낸 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>눈은 한두 줄 위를, 손은 가장 아래를</figcaption></figure>
<p>연습 방법은 단순해요.</p>
<ol><li>젠 모드(30초)에서 일부러 천천히 시작해요. 타일 하나를 누르는 동안 <strong>그 위 타일 위치를 소리 내지 않고 읽어요</strong> — "왼, 오른, 오른, 왼"처럼.</li><li>익숙해지면 두 줄 위까지 읽어요. 화면에는 네 줄이 보이니까, 맨 아래를 누르는 동안 2~3번째 줄이 이미 머릿속에 있으면 돼요.</li><li>손은 머릿속 순서를 따라가기만 해요. 눈이 손보다 늦게 가는 순간 흰 칸 실수가 나와요.</li></ol>
<p>이건 악보를 읽는 방식과 같아요. 피아노를 칠 때도 지금 치는 음이 아니라 다음 마디를 보고 있잖아요. 이 게임은 그 연습을 네 칸짜리 악보로 시키는 셈이에요.</p>
<h2 id="s3">두 손(두 엄지)으로 나눠 누르기</h2>
<p>한 손가락으로 네 레인을 오가면, 가장 먼 왼쪽 끝에서 오른쪽 끝까지 화면 폭의 3/4을 움직여야 해요. <strong>왼쪽 두 줄은 왼손, 오른쪽 두 줄은 오른손</strong>으로 나누면 한 손이 움직이는 거리는 레인 한 칸 너비로 줄어요.</p>
<ul><li><strong>키보드</strong>: 왼손 중지 D, 검지 F / 오른손 검지 J, 중지 K. 타자 기본 자리(F·J 돌기) 그대로라 손을 볼 필요가 없어요. 게임 화면 아래쪽에도 D F J K 글자가 레인마다 표시돼요.</li><li><strong>모바일</strong>: 휴대폰을 두 손으로 잡고 양 엄지를 써요. 이 게임은 터치를 하나하나 따로 처리하는 멀티터치를 지원해서, 두 엄지가 거의 동시에 닿아도 아래 타일부터 순서대로 인정돼요. 화면 위에서는 페이지가 스크롤되거나 확대되지 않게 막아 뒀어요.</li><li><strong>PC 마우스</strong>: 클릭은 한 번에 한 곳이라 가장 불리해요. 기록을 노린다면 키보드로 바꾸는 게 훨씬 빨라요.</li></ul>
<p>두 손을 쓰면 좋은 점이 하나 더 있어요. 연속 두 타일이 서로 다른 손 쪽에 있으면 <strong>두 손가락을 거의 동시에 준비</strong>할 수 있어서, 사실상 박자 두 개를 겹쳐서 칠 수 있어요. 어려운 건 같은 손 안에서 레인을 바꿀 때(예: D→F→D)인데, 이때만 손가락 순서를 의식하면 돼요.</p>
<h2 id="s4">클래식·아케이드·젠, 세 모드의 차이</h2>
<p>세 모드는 같은 화면을 쓰지만 겨루는 능력이 달라요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/piano-tiles-tips-2.svg" alt="클래식은 50개 최단 시간, 아케이드는 빨라지는 속도에서 최고 개수, 젠은 30초 동안 최고 개수를 겨룬다는 세 모드 비교 카드" width="800" height="450" loading="lazy" decoding="async"><figcaption>모드마다 겨루는 능력이 달라요</figcaption></figure>
<div class="table-wrap"><table><thead><tr><th>모드</th><th>목표</th><th>화면 움직임</th><th>기록</th><th>실수하면</th></tr></thead><tbody><tr><td>클래식</td><td>검은 타일 50개</td><td>누를 때마다 한 줄씩 내려옴</td><td>최단 시간(0.001초 단위)</td><td>기록 없음</td></tr><tr><td>아케이드</td><td>끝없이</td><td>저절로 내려오고 점점 빨라짐</td><td>최고 개수</td><td>그때까지 개수 기록</td></tr><tr><td>젠</td><td>30초 동안</td><td>누를 때마다 한 줄씩 내려옴</td><td>최고 개수</td><td>기록 없음</td></tr></tbody></table></div>
<p>클래식과 젠은 <strong>화면이 스스로 움직이지 않아요.</strong> 누를 때마다 한 줄씩 부드럽게 내려올 뿐이라, 타일을 놓쳐서 지는 일은 없고 흰 칸만 조심하면 돼요. 대신 시간이 기록이라 망설이는 만큼 손해예요. 아케이드는 반대로 내가 멈춰 있어도 타일이 내려오기 때문에 <strong>놓침</strong>이 가장 큰 적이에요.</p>
<p>세 모드 모두 맨 아래 줄 위의 첫 검은 타일(시작 표시)을 누르는 순간부터 시간이 흘러요. 다른 창이나 탭으로 가면 자동으로 일시정지되고, 다시 돌아와 <strong>다음 검은 타일을 누르는 순간</strong> 이어서 움직여요. 아케이드에서 일시정지를 풀자마자 놓치는 일이 없게 한 장치예요.</p>
<h2 id="s5">클래식 50개 기록, 몇 초가 가능할까</h2>
<p>클래식 기록은 첫 타일을 누른 순간부터 50번째 타일을 누른 순간까지예요. 첫 타일에서 시계가 0초로 시작하니까 실제로 재는 건 <strong>나머지 49번의 간격</strong>이에요. 그래서 초당 몇 개를 누르느냐로 기록이 거의 정해져요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">클래식 50개 기록 — 초당 누르는 개수별 예상 시간</figcaption><svg viewBox="0 0 640 186" role="img" aria-label="클래식 50개 기록 — 초당 누르는 개수별 예상 시간" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="78" y="29" text-anchor="end">초당 4개</text><rect class="s1" x="88" y="15" width="393.6" height="20" rx="3"><title>초당 4개 · 12.2초</title></rect><text class="viz-val" x="487.6" y="29">12.2초</text><text class="viz-ax lg" x="78" y="63" text-anchor="end">초당 5개</text><rect class="s1" x="88" y="49" width="314.9" height="20" rx="3"><title>초당 5개 · 9.8초</title></rect><text class="viz-val" x="408.9" y="63">9.8초</text><text class="viz-ax lg" x="78" y="97" text-anchor="end">초당 6개</text><rect class="s1" x="88" y="83" width="262.5" height="20" rx="3"><title>초당 6개 · 8.2초</title></rect><text class="viz-val" x="356.5" y="97">8.2초</text><text class="viz-ax lg" x="78" y="131" text-anchor="end">초당 8개</text><rect class="s1" x="88" y="117" width="197.0" height="20" rx="3"><title>초당 8개 · 6.1초</title></rect><text class="viz-val" x="291.0" y="131">6.1초</text><text class="viz-ax lg" x="78" y="165" text-anchor="end">초당 10개</text><rect class="s1" x="88" y="151" width="157.5" height="20" rx="3"><title>초당 10개 · 4.9초</title></rect><text class="viz-val" x="251.5" y="165">4.9초</text></svg><p class="viz-note">일정한 속도로 실수 없이 눌렀을 때의 예시 계산이에요.</p><div class="viz-cap">단위: 초 · 자료: 49 ÷ 초당 개수로 직접 계산 (첫 타일을 누른 순간 0초)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>예상 기록</th></tr></thead><tbody><tr><td>초당 4개</td><td>12.2</td></tr><tr><td>초당 5개</td><td>9.8</td></tr><tr><td>초당 6개</td><td>8.2</td></tr><tr><td>초당 8개</td><td>6.1</td></tr><tr><td>초당 10개</td><td>4.9</td></tr></tbody></table></div></details></figure>
<p>처음에는 초당 4~5개, 즉 10~12초대가 보통이에요. 두 손 분담이 익숙해지면 초당 6~8개, 7~8초대로 내려가요. 여기서 더 줄이려면 손이 아니라 눈이 문제예요. 마지막 10개쯤에서 화면 위쪽에 초록색 <strong>FINISH</strong> 줄이 보이기 시작하면 남은 타일 수를 셀 수 있으니 리듬을 끝까지 유지하세요. 화면 맨 위의 초록 막대도 50개 중 몇 개를 눌렀는지 보여 줘요.</p>
<p>클래식에서 흔한 실수는 <strong>처음 몇 개를 너무 빨리</strong> 누르는 거예요. 첫 타일에서 시간이 시작되니 서두르고 싶지만, 처음 5개에서 흰 칸을 누르면 그 판은 기록이 없어요. 처음 다섯 개는 리듬을 잡는 구간이라고 생각하고 일정한 박자로 들어가는 게 결국 빨라요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">아케이드 속도 곡선과 누를 수 있는 시간</h2>
<p>아케이드는 타일이 저절로 내려오고, 속도가 <strong>눌러서 맞힌 개수</strong>에 따라 올라가요. 공식은 이래요.</p>
<blockquote><p>속도(타일/초) = 2.5 + 0.04 × 지금까지 누른 개수, 최대 9</p></blockquote>
<p>시간이 아니라 개수가 기준이라, 천천히 버틴다고 속도가 오르지는 않아요. 25개마다 초당 1타일씩 빨라진다고 기억하면 쉬워요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">아케이드 모드 속도 — 누른 개수에 따른 초당 타일</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="아케이드 모드 속도 — 누른 개수에 따른 초당 타일" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">2.5</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">7.5</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">10</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">0개</text><text class="viz-ax" x="181.5" y="272" text-anchor="middle">50개</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">100개</text><text class="viz-ax" x="440.5" y="272" text-anchor="middle">150개</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">200개</text><polyline class="viz-line s1" points="52.0,195.0 116.8,171.4 181.5,147.8 246.2,124.2 311.0,100.6 375.8,77.0 440.5,53.4 505.2,41.6 570.0,41.6"/><circle class="viz-dot s1" cx="52.0" cy="195.0" r="4"><title>0개 · 속도 2.5타일/초</title></circle><circle class="viz-dot s1" cx="116.8" cy="171.4" r="4"><title>25개 · 속도 3.5타일/초</title></circle><circle class="viz-dot s1" cx="181.5" cy="147.8" r="4"><title>50개 · 속도 4.5타일/초</title></circle><circle class="viz-dot s1" cx="246.2" cy="124.2" r="4"><title>75개 · 속도 5.5타일/초</title></circle><circle class="viz-dot s1" cx="311.0" cy="100.6" r="4"><title>100개 · 속도 6.5타일/초</title></circle><circle class="viz-dot s1" cx="375.8" cy="77.0" r="4"><title>125개 · 속도 7.5타일/초</title></circle><circle class="viz-dot s1" cx="440.5" cy="53.4" r="4"><title>150개 · 속도 8.5타일/초</title></circle><circle class="viz-dot s1" cx="505.2" cy="41.6" r="4"><title>175개 · 속도 9타일/초</title></circle><circle class="viz-dot s1" cx="570.0" cy="41.6" r="4"><title>200개 · 속도 9타일/초</title></circle><text class="viz-val" x="578.0" y="45.6">9</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">163개째부터 초당 9타일에서 더 빨라지지 않아요.</p><div class="viz-cap">단위: 타일/초 · 자료: 스미스 게임 연구소 피아노 타일 코드 (2.5 + 0.04 × 개수, 상한 9)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>속도</th></tr></thead><tbody><tr><td>0개</td><td>2.5</td></tr><tr><td>25개</td><td>3.5</td></tr><tr><td>50개</td><td>4.5</td></tr><tr><td>75개</td><td>5.5</td></tr><tr><td>100개</td><td>6.5</td></tr><tr><td>125개</td><td>7.5</td></tr><tr><td>150개</td><td>8.5</td></tr><tr><td>175개</td><td>9</td></tr><tr><td>200개</td><td>9</td></tr></tbody></table></div></details></figure>
<p>속도가 올라가면 실제로 얼마나 급해질까요? 검은 타일 하나는 화면 위로 들어오는 순간부터 누를 수 있고, 화면 아래로 완전히 빠져나가면 놓친 거예요. 화면에는 네 줄이 보이고 타일 자체 높이가 한 줄이라, 타일 하나가 <strong>다섯 줄 거리를 지나는 동안</strong> 누를 수 있어요.</p>
<div class="table-wrap"><table><thead><tr><th>누른 개수</th><th>속도(타일/초)</th><th>한 타일을 누를 수 있는 시간</th><th>타일 사이 간격</th></tr></thead><tbody><tr><td>0개</td><td>2.5</td><td>2.00초</td><td>0.40초</td></tr><tr><td>50개</td><td>4.5</td><td>1.11초</td><td>0.22초</td></tr><tr><td>100개</td><td>6.5</td><td>0.77초</td><td>0.15초</td></tr><tr><td>163개 이후</td><td>9.0</td><td>0.56초</td><td>0.11초</td></tr></tbody></table></div>
<p>초반에는 타일 하나를 2초 동안 누를 수 있으니 여유가 넘쳐요. 그런데 100개를 넘기면 0.77초, 최고 속도에서는 0.56초로 줄고, 타일 사이 간격은 0.11초예요. 이 속도에서는 <strong>눈이 위를 미리 보고 있지 않으면</strong> 절대 따라갈 수 없어요.</p>
<p>또 하나, 아케이드에서는 아직 화면에 안 들어온 타일은 눌러도 무시돼요. 키보드로 빨리 치다 보면 화면 위쪽이 비는 순간이 있는데, 그때 미리 키를 눌러도 소용없어요. 오히려 박자를 잃기 쉬우니 타일이 들어오는 걸 보고 누르세요.</p>
<p>실수 없이 계속 누른다면 몇 개까지 몇 초가 걸릴까요? 화면이 내려오는 만큼만 누를 수 있으니, 대략 아래와 같아요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">아케이드에서 개수별로 걸리는 시간 (실수 없이 따라갈 때)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="아케이드에서 개수별로 걸리는 시간 (실수 없이 따라갈 때)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">30</text><line class="viz-grid" x1="52" x2="628" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">50</text><rect class="s1" x="66.4" y="184.1" width="67.2" height="69.9" rx="3"><title>50개 · 걸리는 시간 14.8초</title></rect><text class="viz-val" x="100.0" y="179.1" text-anchor="middle">14.8</text><text class="viz-ax" x="100.0" y="272" text-anchor="middle">50개</text><rect class="s1" x="162.4" y="140.7" width="67.2" height="113.3" rx="3"><title>100개 · 걸리는 시간 24초</title></rect><text class="viz-val" x="196.0" y="135.7" text-anchor="middle">24</text><text class="viz-ax" x="196.0" y="272" text-anchor="middle">100개</text><rect class="s1" x="258.4" y="109.1" width="67.2" height="144.9" rx="3"><title>150개 · 걸리는 시간 30.7초</title></rect><text class="viz-val" x="292.0" y="104.1" text-anchor="middle">30.7</text><text class="viz-ax" x="292.0" y="272" text-anchor="middle">150개</text><rect class="s1" x="354.4" y="102.0" width="67.2" height="152.0" rx="3"><title>163개 · 걸리는 시간 32.2초</title></rect><text class="viz-val" x="388.0" y="97.0" text-anchor="middle">32.2</text><text class="viz-ax" x="388.0" y="272" text-anchor="middle">163개</text><rect class="s1" x="450.4" y="82.7" width="67.2" height="171.3" rx="3"><title>200개 · 걸리는 시간 36.3초</title></rect><text class="viz-val" x="484.0" y="77.7" text-anchor="middle">36.3</text><text class="viz-ax" x="484.0" y="272" text-anchor="middle">200개</text><rect class="s1" x="546.4" y="30.3" width="67.2" height="223.7" rx="3"><title>300개 · 걸리는 시간 47.4초</title></rect><text class="viz-val" x="580.0" y="25.3" text-anchor="middle">47.4</text><text class="viz-ax" x="580.0" y="272" text-anchor="middle">300개</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">163개(최고 속도 도달)까지 약 32초, 그 뒤로는 1초에 9개씩 늘어요.</p><div class="viz-cap">단위: 초 · 자료: 타일마다 1 ÷ 그때 속도를 더해 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>걸리는 시간</th></tr></thead><tbody><tr><td>50개</td><td>14.8</td></tr><tr><td>100개</td><td>24</td></tr><tr><td>150개</td><td>30.7</td></tr><tr><td>163개</td><td>32.2</td></tr><tr><td>200개</td><td>36.3</td></tr><tr><td>300개</td><td>47.4</td></tr></tbody></table></div></details></figure>
<p>즉 아케이드 100개는 약 24초, 최고 속도에 닿는 163개는 약 32초 버티면 돼요. 그 뒤는 속도가 더 오르지 않으니 <strong>163개를 넘기면 집중력 싸움</strong>이에요. 시작부터 1분(60초)을 실수 없이 버티면 약 413개가 돼요.</p>
<h2 id="s7">젠 30초, 개수를 늘리는 방법</h2>
<p>젠은 30초 동안 누른 개수가 기록이에요. 화면은 누를 때만 움직이니 클래식과 같은 감각이지만, 50개라는 끝이 없어서 <strong>지구력</strong>을 봐요. 초당 5개면 150개, 6개면 180개, 8개면 240개예요.</p>
<p>젠에서 기록이 안 나오는 이유는 대개 두 가지예요.</p>
<ul><li><strong>후반 20초에 흰 칸 실수</strong> — 젠도 실수하면 그 판은 기록되지 않아요. 남은 시간이 화면 위에 크게 보이니, 5초 이하로 남으면 속도를 조금 낮추고 정확도를 챙기세요.</li><li><strong>박자가 끊김</strong> — 한 번 막히면 그다음 타일 찾기도 늦어져요. 눈을 두 줄 위에 고정하는 습관이 가장 효과가 커요.</li></ul>
<p>젠은 실수 부담이 클래식보다 크지만, 화면이 저절로 움직이지 않아서 <strong>미리 보기 연습용</strong>으로 가장 좋아요. 처음 하는 사람은 젠으로 리듬을 잡고, 클래식으로 속도를 올리고, 아케이드로 한계를 시험하는 순서를 추천해요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s8">소리와 곡 — 모두 저작권이 끝난 멜로디</h2>
<p>검은 타일을 누를 때마다 고른 곡이 한 음씩 이어져요. 곡은 네 가지예요.</p>
<div class="table-wrap"><table><thead><tr><th>곡</th><th>작곡</th><th>특징</th></tr></thead><tbody><tr><td>작은 별</td><td>프랑스 민요(모차르트 변주곡으로 유명)</td><td>같은 음이 두 번씩 반복돼 박자 잡기 쉬움</td></tr><tr><td>환희의 송가</td><td>베토벤 교향곡 9번</td><td>계단처럼 오르내리는 멜로디</td></tr><tr><td>엘리제를 위하여</td><td>베토벤</td><td>첫머리의 미-레#-미 반복, 왼손 화음 포함</td></tr><tr><td>캐논</td><td>파헬벨</td><td>낮은 베이스음과 멜로디를 함께 연주</td></tr></tbody></table></div>
<p>네 곡 모두 작곡가가 세상을 떠난 지 수백 년이 지나 <strong>공공 영역(퍼블릭 도메인)</strong>에 속해요. 녹음 파일을 쓰는 게 아니라 음 높이를 직접 적어 두고, 브라우저의 Web Audio로 그 자리에서 피아노 비슷한 소리(빠르게 올라갔다 천천히 줄어드는 소리)를 만들어 내요. 곡이 끝나면 처음부터 다시 이어지고, 흰 칸을 누르면 낮은 불협화음이 나요.</p>
<p>브라우저는 사용자가 화면을 한 번 누르기 전에는 소리를 못 내게 막아 두기 때문에, 시작 버튼이나 첫 타일을 누른 뒤부터 소리가 나요. 소리 없이 하고 싶으면 🔊 소리 버튼으로 끌 수 있고, 설정은 이 브라우저에 기억돼요. 박자감이 좋은 사람은 소리를 켜 두는 게 오히려 리듬 유지에 도움이 돼요. 반응 속도 자체를 재 보고 싶다면 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>도 같이 해 보세요.</p>
<h2 id="s9">자주 묻는 질문</h2>
<h3>피아노 타일에서 흰 칸을 살짝 걸쳐 누르면 어떻게 되나요?</h3>
<p>지금 차례 검은 타일과 같은 레인에서 위아래로 반 칸 정도 빗나간 건 맞힌 것으로 인정돼요. 하지만 옆 레인의 흰 칸에 닿으면 바로 게임 오버예요. 그래서 좌우 정확도가 훨씬 중요해요.</p>
<h3>아케이드는 어디까지 빨라지나요?</h3>
<p>초당 2.5타일에서 시작해 검은 타일을 하나 누를 때마다 초당 0.04타일씩 빨라져요. 163개째부터 초당 9타일로 고정되고 더 오르지 않아요. 실수 없이 따라가면 163개까지 약 32초 걸려요.</p>
<h3>클래식 기록은 언제부터 재나요?</h3>
<p>맨 아래 시작 표시가 있는 첫 검은 타일을 누르는 순간 0초로 시작해서, 50번째 타일을 누르는 순간 멈춰요. 그 사이 한 번이라도 흰 칸을 누르면 그 판은 기록되지 않아요.</p>
<h3>키보드와 터치 중 어느 쪽이 유리한가요?</h3>
<p>PC에서는 키보드(D·F·J·K)가 마우스보다 훨씬 빨라요. 두 손 네 손가락을 쓸 수 있기 때문이에요. 모바일은 두 엄지로 나눠 누르면 되고, 멀티터치라 거의 동시에 눌러도 순서대로 인정돼요.</p>
<h3>게임 중에 다른 탭으로 가면 어떻게 되나요?</h3>
<p>자동으로 일시정지돼요. 돌아와서 계속하기를 누른 뒤 다음 검은 타일을 누르는 순간 다시 움직여요. 아케이드에서도 그 타일을 누르기 전까지는 화면이 멈춰 있어요.</p>
<h3>기록은 어디에 저장되나요?</h3>
<p>클래식 최단 시간, 아케이드 최고 개수, 젠 최고 개수와 판 수가 모드별로 이 브라우저 쿠키에만 저장되고 서버로 보내지 않아요. 기록 초기화 버튼을 누르면 세 모드 기록이 모두 지워져요.</p>
<h2 id="s10">정리</h2>
<p>피아노 타일은 결국 <strong>미리 보기</strong>와 <strong>두 손 분담</strong> 두 가지로 실력이 갈려요. 지금 누르는 타일 위 한두 줄을 먼저 읽고, 왼쪽 두 줄은 왼손·오른쪽 두 줄은 오른손으로 맡기세요. 같은 레인은 최대 두 번까지만 연속으로 나오고, 같은 레인 안에서는 반 칸 빗나가도 인정되니 좌우 정확도에만 집중하면 돼요.</p>
<p>모드는 젠으로 리듬을 잡고, 클래식으로 속도를 올리고(초당 6개면 50개 약 8.2초), 아케이드로 한계를 시험하는 순서가 좋아요. 아케이드는 163개에서 최고 속도 초당 9타일에 도달하니, 그 지점을 첫 목표로 잡아 보세요. 지금 바로 <a href="https://game.smithlab.co.kr/games/piano-tiles/">피아노 타일</a>에서 작은 별부터 연주해 보세요.</p>
    ]]></description>
    </item>
    <item>
      <title>리버시(오델로) 이기는 법, 규칙과 모서리·X칸·기동력 전략</title>
      <link>https://game.smithlab.co.kr/posts/games/reversi-othello-strategy/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/reversi-othello-strategy/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>흑백 돌을 끼워서 뒤집는 리버시, 흔히 오델로라고 부르는 게임은 규칙이 1분이면 끝나는데 막상 두면 중반까지 앞서다가 마지막 열 수 만에 판이 통째로 뒤집히는 일이 자주 있어요. 결론부터 말하면 리버시는 "지금 돌이 몇 개냐"가 아니라 "모서리를 누가 갖느냐"와 "상대가 둘 곳을 얼마나 줄였느냐"로 승부가 나는 게임이에요. 모서리를 노리고, 모서리 바로 옆 칸(X 칸·C 칸)은 함부로 두지 않고, 초반에는 오히려 적게 뒤집는 것, 이 세 가지만 지켜도 컴퓨터 상대 승률이 확 달라져요.</p>
<p>이 글은 <a href="https://game.smithlab.co.kr/games/reversi/">리버시 (오델로) vs 컴퓨터</a>를 만들면서 직접 짠 게임 엔진으로 계산한 숫자를 바탕으로 썼어요. 첫 수에 둘 수 있는 곳이 몇 곳인지, 판이 진행되면서 선택지가 어떻게 늘고 줄어드는지, 단순히 많이 뒤집는 컴퓨터가 왜 쉽게 지는지까지 실제 대전 결과로 확인할 수 있어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>리버시는 8×8 판 가운데 네 칸에 흑백 2개씩 엇갈려 놓고 흑이 먼저 둬요. 상대 돌을 내 돌 사이에 끼울 수 있는 칸에만 둘 수 있어요.</li><li>모서리 4칸은 한 번 놓으면 절대 뒤집히지 않아서 가장 중요해요. 모서리가 비어 있을 때 그 옆의 X 칸(대각선)·C 칸(변)에 두면 모서리를 내주기 쉬워요.</li><li>초·중반에는 돌 개수보다 둘 수 있는 곳의 수(기동력)가 중요해요. 적게 뒤집고 상대의 선택지를 줄이면 상대가 나쁜 칸에 둘 수밖에 없게 돼요.</li><li>마지막 10~15칸은 짝수·홀수(패리티)와 정확한 계산의 영역이에요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">리버시(오델로) 규칙 한 번에 정리</h2>
<p>규칙은 정말 짧아요.</p>
<ol><li><strong>판과 시작 배치</strong> — 8×8 판의 가운데 네 칸에 백(d4·e5)과 흑(e4·d5)을 대각선으로 엇갈려 놓아요. 좌표는 가로 a~h, 세로 1~8로 불러요.</li><li><strong>선공은 흑</strong> — 흑이 먼저 두고 번갈아 둬요.</li><li><strong>두는 조건</strong> — 새 돌을 놓았을 때 그 돌과 이미 있는 내 돌 사이에 상대 돌이 한 개 이상 일직선으로 빈틈없이 끼어야 해요. 가로·세로·대각선 8방향 중 하나라도 해당하면 둘 수 있어요.</li><li><strong>뒤집기</strong> — 끼인 상대 돌은 8방향 모두에서 한꺼번에 내 색으로 뒤집혀요. 뒤집힌 돌이 다시 다른 돌을 끼우는 연쇄는 없어요.</li><li><strong>패스</strong> — 둘 수 있는 칸이 하나도 없을 때만 패스해요. 둘 곳이 있는데 일부러 패스할 수는 없어요.</li><li><strong>끝</strong> — 64칸이 다 차거나, 양쪽 모두 둘 곳이 없으면 끝나고 돌이 많은 쪽이 이겨요. 같으면 무승부예요.</li></ol>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/reversi-othello-strategy-2.svg" alt="리버시 시작 배치에서 흑이 둘 수 있는 4곳(d3, c4, f5, e6)과, 흑 사이에 끼인 백 3개가 모두 흑으로 뒤집히는 예시" width="800" height="450" loading="lazy" decoding="async"><figcaption>시작 배치와 뒤집기 규칙</figcaption></figure>
<p>규칙의 세부(시작 배치, 패스, 종료 조건)는 <a href="https://www.worldothello.org/about/about-othello/othello-rules/official-rules/english" target="_blank" rel="noopener">세계오델로연맹(World Othello Federation) 공식 규칙</a>과 같아요. 대회에서는 여기에 시간 제한(보통 한 사람당 수십 분)과 기보 기록 규정이 더해져요.</p>
<p>"리버시"와 "오델로"는 사실상 같은 게임이에요. 돌을 끼워 뒤집는 리버시는 1880년대 영국에서 나왔고, 처음에는 시작 돌을 직접 놓는 등 세부 규칙이 조금 달랐어요. 1970년대 일본에서 지금처럼 가운데 네 칸을 엇갈려 놓고 흑이 먼저 두는 형태로 정리되어 오델로라는 이름으로 널리 퍼졌어요. 지금 대부분의 앱과 대회가 이 규칙을 써요.</p>
<h2 id="s2">첫 수는 4곳뿐, 경우의 수는 이렇게 불어나요</h2>
<p>시작 배치에서 흑이 둘 수 있는 곳은 d3, c4, f5, e6 <strong>4곳</strong>이에요. 그런데 판이 대칭이라 이 네 수는 판을 돌리거나 뒤집으면 모두 같은 모양이 돼요. 그래서 첫 수는 사실상 고민할 필요가 없어요. 첫 수 뒤 백이 둘 수 있는 곳은 어느 경우든 <strong>3곳</strong>이에요.</p>
<p>여기서부터 경우의 수가 빠르게 늘어나요. 엔진으로 처음부터 둘 수 있는 모든 수를 끝까지 세어 보면 이렇게 나와요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">시작부터 N수까지 가능한 수순의 개수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="시작부터 N수까지 가능한 수순의 개수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">250</text><line class="viz-grid" x1="52" x2="628" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">500</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">750</text><line class="viz-grid" x1="52" x2="628" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">1,000</text><line class="viz-grid" x1="52" x2="628" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">1,250</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">1,500</text><rect class="s1" x="69.3" y="253.4" width="80.6" height="0.6" rx="3"><title>1수 · 수순 4가지</title></rect><text class="viz-val" x="109.6" y="248.4" text-anchor="middle">4</text><text class="viz-ax" x="109.6" y="272" text-anchor="middle">1수</text><rect class="s1" x="184.5" y="252.1" width="80.6" height="1.9" rx="3"><title>2수 · 수순 12가지</title></rect><text class="viz-val" x="224.8" y="247.1" text-anchor="middle">12</text><text class="viz-ax" x="224.8" y="272" text-anchor="middle">2수</text><rect class="s1" x="299.7" y="245.2" width="80.6" height="8.8" rx="3"><title>3수 · 수순 56가지</title></rect><text class="viz-val" x="340.0" y="240.2" text-anchor="middle">56</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">3수</text><rect class="s1" x="414.9" y="215.6" width="80.6" height="38.4" rx="3"><title>4수 · 수순 244가지</title></rect><text class="viz-val" x="455.2" y="210.6" text-anchor="middle">244</text><text class="viz-ax" x="455.2" y="272" text-anchor="middle">4수</text><rect class="s1" x="530.1" y="34.4" width="80.6" height="219.6" rx="3"><title>5수 · 수순 1,396가지</title></rect><text class="viz-val" x="570.4" y="29.4" text-anchor="middle">1,396</text><text class="viz-ax" x="570.4" y="272" text-anchor="middle">5수</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">6수까지는 8200가지로 늘어나요.</p><div class="viz-cap">단위: 가지 · 자료: 스미스 게임 연구소 리버시 엔진으로 모든 수를 직접 세어 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>수순</th></tr></thead><tbody><tr><td>1수</td><td>4</td></tr><tr><td>2수</td><td>12</td></tr><tr><td>3수</td><td>56</td></tr><tr><td>4수</td><td>244</td></tr><tr><td>5수</td><td>1,396</td></tr></tbody></table></div></details></figure>
<div class="table-wrap"><table><thead><tr><th>진행</th><th>그때까지 가능한 수순</th><th>비고</th></tr></thead><tbody><tr><td>1수</td><td>4</td><td>d3·c4·f5·e6, 대칭이라 사실상 1가지</td></tr><tr><td>2수</td><td>12</td><td>백의 응수는 어느 경우든 3곳</td></tr><tr><td>3수</td><td>56</td><td></td></tr><tr><td>4수</td><td>244</td><td></td></tr><tr><td>5수</td><td>1,396</td><td></td></tr><tr><td>6수</td><td>8,200</td><td></td></tr><tr><td>게임 전체</td><td>약 10^58</td><td>가능한 국면 수는 약 10^28</td></tr></tbody></table></div>
<p>맨 아래 줄은 2023년 일본 연구자 Takizawa가 발표한 <a href="https://arxiv.org/abs/2310.19387" target="_blank" rel="noopener">논문 「Othello is Solved」(arXiv:2310.19387)</a>의 추정치예요. 이 논문은 대규모 계산으로 "양쪽이 실수 없이 두면 8×8 오델로는 무승부"라는 것을 증명했다고 발표했어요. 즉 이 게임에서 지는 건 어딘가에서 실수를 했기 때문이고, 아래 원칙들은 그 실수를 줄이는 방법이에요.</p>
<p>6수 만에 8,200가지 수순이 생기니, 사람이 초반 정석을 외우는 이유가 있어요. 다만 정석을 몰라도 아래 원칙만 지키면 충분히 이길 수 있어요.</p>
<h2 id="s3">원칙 1. 모서리는 무조건 가치가 높아요</h2>
<p>모서리(a1·h1·a8·h8)는 리버시에서 유일하게 <strong>절대 뒤집히지 않는 칸</strong>이에요. 돌이 뒤집히려면 양쪽에서 끼워져야 하는데, 모서리는 어느 방향으로도 바깥쪽이 판 밖이라 끼울 방법이 없어요.</p>
<p>모서리의 진짜 힘은 그 다음에 나와요. 모서리를 잡으면 그 모서리에서 이어지는 변의 내 돌들이 차례로 "안정 돌"이 돼요. 예를 들어 a1을 가진 상태에서 a2, a3을 연달아 내 돌로 채우면 그 돌들도 더 이상 뒤집히지 않아요. 종반에 안정 돌이 20개쯤 확보되면, 나머지 칸 싸움에서 다소 밀려도 이기는 경우가 많아요.</p>
<h2 id="s4">원칙 2. X 칸과 C 칸은 모서리를 내주는 자리예요</h2>
<p>모서리가 중요한 만큼 <strong>모서리를 상대에게 내주는 칸</strong>은 위험해요.</p>
<ul><li><strong>X 칸</strong> — 모서리와 대각선으로 붙은 b2·g2·b7·g7 4칸. 여기에 내 돌이 있으면 상대는 대각선으로 모서리에 두면서 그 돌을 끼울 수 있게 돼요. 가장 위험한 칸이에요.</li><li><strong>C 칸</strong> — 변 위에서 모서리 바로 옆 칸(b1·a2 등) 8칸. X 칸보다는 덜하지만, 변을 따라 모서리를 내줄 수 있어요.</li></ul>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/reversi-othello-strategy-1.svg" alt="8×8 리버시 판에서 모서리 4칸, X 칸 4칸, C 칸 8칸, 나머지 변 16칸, 안쪽 32칸을 색으로 구분한 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>모서리·X 칸·C 칸</figcaption></figure>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/reversi-othello-strategy-3.svg" alt="판 왼쪽 위를 확대해, 흑이 X 칸 b2에 두었을 때 백이 a1에 두며 b2를 뒤집는 과정과, 흑이 C 칸 b1에 두었을 때 백이 a1에 두며 b1을 뒤집는 과정을 나란히 보여 주는 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>X 칸은 대각선으로, C 칸은 변을 따라 모서리를 내줘요</figcaption></figure>
<p>단, 이 위험은 해당 모서리가 비어 있을 때만 해당돼요. 모서리가 이미 내 돌이나 상대 돌로 차 있으면 X·C 칸은 평범한 칸이 돼요. 이 게임의 컴퓨터도 그렇게 평가해요. 칸마다 점수를 주는데 모서리는 +120, X 칸은 −40, C 칸은 −20이고, 모서리가 찬 뒤에는 X·C 칸 점수를 +5로 바꿔요.</p>
<p>이 게임 엔진이 실제로 쓰는 칸 점수표를 칸 종류별로 정리하면 이래요. 숫자가 클수록 "가지면 좋은 칸"이에요.</p>
<div class="table-wrap"><table><thead><tr><th>칸 종류</th><th>위치 예</th><th>개수</th><th>엔진 칸 점수</th><th>왜 그런가</th></tr></thead><tbody><tr><td>모서리</td><td>a1·h1·a8·h8</td><td>4</td><td>+120</td><td>절대 뒤집히지 않음</td></tr><tr><td>A 칸 (변, 모서리에서 두 번째 칸)</td><td>c1·a3 등</td><td>8</td><td>+20</td><td>모서리와 함께 안정 돌이 되기 쉬움</td></tr><tr><td>안쪽 대각 칸</td><td>c3·f3·c6·f6</td><td>4</td><td>+15</td><td>모서리로 가는 대각선을 내가 쥠</td></tr><tr><td>B 칸 (변 가운데)</td><td>d1·e1 등</td><td>8</td><td>+5</td><td>비교적 안전한 변</td></tr><tr><td>안쪽 칸 (가운데 4×4 중 대각 칸 제외)</td><td>d3·e4 등</td><td>12</td><td>+3</td><td>조용한 수를 두는 공간</td></tr><tr><td>둘째 줄 (X 칸 제외)</td><td>c2·b3 등</td><td>16</td><td>−5</td><td>상대에게 변 진입로를 열어 줌</td></tr><tr><td>C 칸</td><td>b1·a2 등</td><td>8</td><td>−20</td><td>변을 따라 모서리를 내줌</td></tr><tr><td>X 칸</td><td>b2·g2·b7·g7</td><td>4</td><td>−40</td><td>대각선으로 모서리를 내줌</td></tr></tbody></table></div>
<p>개수를 모두 더하면 4+8+4+8+12+16+8+4 = 64칸이에요. 모서리가 찬 뒤에는 그 모서리에 붙은 X·C 칸 점수를 +5로 바꿔요. 점수가 −5인 둘째 줄 16칸이 은근히 중요한데, 여기에 내 돌이 있으면 상대가 바로 바깥 변(A·B 칸)에 들어와 끼울 길이 생기기 때문이에요.</p>
<p>반대로 생각하면 공략법이 보여요. 상대가 X 칸이나 C 칸에 둘 수밖에 없는 상황을 만드는 것이 리버시 중반의 핵심이에요. 그걸 가능하게 하는 게 다음 원칙인 기동력이에요.</p>
<h2 id="s5">원칙 3. 돌 개수보다 기동력(둘 수 있는 곳의 수)</h2>
<p>초보 때 가장 흔한 실수는 매 수마다 <strong>가장 많이 뒤집는 곳</strong>에 두는 거예요. 직관적으로는 돌이 많을수록 유리해 보이지만, 리버시에서는 반대인 경우가 많아요.</p>
<p>내 돌이 많아지면 판 위에 내 돌로 된 "벽"이 넓어지고, 상대는 그 벽 바깥 빈칸 어디든 내 돌을 끼우며 둘 수 있게 돼요. 반대로 내 돌이 적고 안쪽에 몰려 있으면 상대는 둘 곳이 몇 개 없어서, 결국 X 칸이나 C 칸처럼 나쁜 칸에 둘 수밖에 없어요. 이렇게 <strong>상대의 선택지를 말리는 것</strong>을 기동력(mobility) 싸움이라고 해요.</p>
<p>판이 진행되면서 선택지가 얼마나 되는지 감을 잡기 위해, 양쪽이 무작위로 두는 1,000판을 엔진으로 돌려 한 차례에 둘 수 있는 곳의 평균을 구해 봤어요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">진행 구간별 한 차례에 둘 수 있는 곳 평균 (무작위 1000판)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="진행 구간별 한 차례에 둘 수 있는 곳 평균 (무작위 1000판)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">2</text><line class="viz-grid" x1="52" x2="570" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">4</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">6</text><line class="viz-grid" x1="52" x2="570" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">8</text><line class="viz-grid" x1="52" x2="570" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">12</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">1~10수</text><text class="viz-ax" x="155.6" y="272" text-anchor="middle">11~20수</text><text class="viz-ax" x="259.2" y="272" text-anchor="middle">21~30수</text><text class="viz-ax" x="362.8" y="272" text-anchor="middle">31~40수</text><text class="viz-ax" x="466.4" y="272" text-anchor="middle">41~50수</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">51~60수</text><polyline class="viz-line s1" points="52.0,141.9 155.6,61.3 259.2,23.9 362.8,29.8 466.4,80.9 570.0,179.3"/><circle class="viz-dot s1" cx="52.0" cy="141.9" r="4"><title>1~10수 · 둘 수 있는 곳 5.7곳</title></circle><circle class="viz-dot s1" cx="155.6" cy="61.3" r="4"><title>11~20수 · 둘 수 있는 곳 9.8곳</title></circle><circle class="viz-dot s1" cx="259.2" cy="23.9" r="4"><title>21~30수 · 둘 수 있는 곳 11.7곳</title></circle><circle class="viz-dot s1" cx="362.8" cy="29.8" r="4"><title>31~40수 · 둘 수 있는 곳 11.4곳</title></circle><circle class="viz-dot s1" cx="466.4" cy="80.9" r="4"><title>41~50수 · 둘 수 있는 곳 8.8곳</title></circle><circle class="viz-dot s1" cx="570.0" cy="179.3" r="4"><title>51~60수 · 둘 수 있는 곳 3.8곳</title></circle><text class="viz-val" x="578.0" y="183.3">3.8</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">실력자끼리 두면 서로 상대의 선택지를 줄이므로 이보다 적어지는 경향이 있어요.</p><div class="viz-cap">단위: 곳 · 자료: 스미스 게임 연구소 리버시 엔진으로 무작위 대국 1000판을 직접 시뮬레이션</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>둘 수 있는 곳</th></tr></thead><tbody><tr><td>1~10수</td><td>5.7</td></tr><tr><td>11~20수</td><td>9.8</td></tr><tr><td>21~30수</td><td>11.7</td></tr><tr><td>31~40수</td><td>11.4</td></tr><tr><td>41~50수</td><td>8.8</td></tr><tr><td>51~60수</td><td>3.8</td></tr></tbody></table></div></details></figure>
<p>중반(21~40수)에는 평균 11곳 넘게 둘 수 있지만, 이건 아무렇게나 둘 때 이야기예요. 기동력을 의식해서 두면 상대에게 남는 선택지를 2~3곳까지 줄일 수 있고, 그중 대부분이 X·C 칸이라면 사실상 이긴 판이에요.</p>
<p>실제로 얼마나 차이가 나는지 이 게임의 컴퓨터끼리 붙여 봤어요. "쉬움"은 절반은 무작위, 절반은 가장 많이 뒤집는 수를 두고, "보통"은 칸 점수와 기동력으로 2수 앞을 읽어요.</p>
<div class="table-wrap"><table><thead><tr><th>대전 (흑 vs 백)</th><th>결과</th></tr></thead><tbody><tr><td>쉬움 vs 보통, 20판</td><td>쉬움 1승, 보통 19승</td></tr><tr><td>보통 vs 쉬움, 20판</td><td>보통 19승, 1무</td></tr><tr><td>어려움 vs 보통, 4판</td><td>어려움 3승, 보통 1승</td></tr><tr><td>보통 vs 어려움, 4판</td><td>어려움 4승</td></tr></tbody></table></div>
<p>많이 뒤집는 데만 집중한 쪽은 40판 중 1판밖에 못 이겼어요. 2수만 읽어도 모서리와 기동력을 보는 쪽이 압도적이에요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">원칙 4. 변은 서두르지 말고, 벽을 만들지 말기</h2>
<p>변(모서리를 제외한 테두리 칸)은 안쪽보다 안정적이지만, 변에 혼자 튀어나온 돌은 상대가 양쪽에서 끼울 수 있는 표적이 돼요. 몇 가지 기본을 기억하면 좋아요.</p>
<ul><li><strong>안쪽 4×4를 먼저 쓰기</strong> — 초반에는 가운데 16칸 안에서 조용히 두는 게 기본이에요. 바깥으로 먼저 퍼지는 쪽이 보통 손해예요.</li><li><strong>벽(wall) 만들지 않기</strong> — 한 줄로 길게 이어진 내 돌 줄은 상대에게 둘 곳을 대량으로 만들어 줘요.</li><li><strong>조용한 수(quiet move)</strong> — 뒤집는 돌이 적고, 뒤집히는 돌이 바깥에 노출되지 않는 수가 좋은 수예요. 새로 뒤집힌 돌이 빈칸과 맞닿아 있을수록(프런티어 돌) 상대 선택지가 늘어나요.</li><li><strong>변에 두면 상대 응수를 확인</strong> — 변에 둘 때는 상대가 그 옆 칸에 두어 끼울 수 있는지, 그게 모서리로 이어지는지 꼭 확인하세요.</li></ul>
<h2 id="s7">원칙 5. 종반은 패리티와 정확한 계산</h2>
<p>판이 거의 찼을 때는 원칙보다 <strong>계산</strong>이 중요해져요. 빈칸이 10여 개면 가능한 수순이 확 줄어서 끝까지 읽을 수 있거든요. 이 게임의 "어려움" 컴퓨터도 빈칸이 14칸 이하로 남으면 끝까지 모든 수를 계산해서 최종 돌 차이가 가장 큰 수를 골라요. 실제로 엔진 테스트에서 빈칸 12칸 근처부터 제한 시간(0.38초) 안에 완전 계산을 마쳤어요.</p>
<p>사람이 쓸 수 있는 종반 요령은 <strong>패리티(짝홀)</strong> 예요.</p>
<ul><li>리버시는 빈칸 60개를 번갈아 채우니, 패스가 없으면 <strong>마지막 수는 백</strong>이 둬요. 마지막 수는 뒤집히지 않으니 유리해요.</li><li>판 구석에 빈칸이 여러 구역으로 나뉘어 있으면, <strong>빈칸이 홀수 개인 구역에 먼저 두는 쪽</strong>이 그 구역의 마지막 수를 갖기 쉬워요.</li><li>패스가 한 번 끼면 짝홀이 뒤바뀌어요. 그래서 종반에 상대를 패스시키는 수는 그 자체로 큰 이득이에요.</li></ul>
<p>참고로 무작위로 둔 1,000판에서도 패스는 한 판에 평균 0.43번 나왔고, 판이 다 차기 전에 양쪽 모두 둘 곳이 없어 끝난 판은 1.5%였어요. 실력자끼리의 대국에서는 패스가 승부를 가르는 일이 더 많아요.</p>
<p>종반 패리티를 표로 정리하면 이래요. 빈칸 구역 하나를 놓고, 패스가 없다는 가정에서 내가 먼저 그 구역에 들어갈 때의 결과예요.</p>
<div class="table-wrap"><table><thead><tr><th>구역의 빈칸 수</th><th>내가 먼저 두면</th><th>그 구역 마지막 수</th><th>판단</th></tr></thead><tbody><tr><td>1칸</td><td>내가 채우고 끝</td><td>나</td><td>둘 수 있으면 대체로 이득</td></tr><tr><td>2칸</td><td>상대가 마지막 칸</td><td>상대</td><td>상대가 먼저 들어오게 기다리기</td></tr><tr><td>3칸</td><td>나 → 상대 → 나</td><td>나</td><td>먼저 들어갈 가치가 큼</td></tr><tr><td>4칸</td><td>나 → 상대 → 나 → 상대</td><td>상대</td><td>서두르지 않기</td></tr></tbody></table></div>
<aside class="callout tip"><b class="callout-h">팁</b><p>종반에 들어서면 남은 빈칸을 구역별로 묶어 홀짝만 적어 두세요. 홀수 구역에 먼저, 짝수 구역은 나중에 두는 것만으로도 마지막 수를 가져갈 확률이 올라가요. 다만 그 구역에서 상대만 둘 수 있는 칸이 있으면 계산이 달라지니 둘 수 있는지부터 확인해요.</p></aside>
<h2 id="s8">컴퓨터 상대로 이기는 순서</h2>
<p><a href="https://game.smithlab.co.kr/games/reversi/">리버시 vs 컴퓨터</a>에서 난이도별로 이렇게 접근해 보세요.</p>
<p><strong>쉬움</strong> — 컴퓨터가 X·C 칸을 신경 쓰지 않아요. 모서리 근처에 컴퓨터가 X 칸 돌을 놓는 순간 그 모서리를 가져가면 돼요. 모서리 두 개만 잡아도 거의 이겨요.</p>
<p><strong>보통</strong> — 모서리와 기동력은 보지만 2수 앞까지만 읽어요. 3수 이상 걸리는 함정, 예를 들어 "내가 변에 두면 컴퓨터가 끼울 수 있지만, 그 다음 내가 모서리를 가져가는" 수순을 노려 보세요. 초반에 적게 뒤집는 연습을 하기에 좋은 상대예요.</p>
<p><strong>어려움</strong> — 한 수에 약 0.38초 동안 보통 7~10수 앞까지 읽고, 종반 14칸부터는 완전히 계산해요. 종반 계산으로는 사람이 이기기 어려우니 <strong>중반까지 안정 돌과 모서리로 확실한 우위</strong>를 만들어야 해요. 대신 정석 데이터가 없고 평가 기준이 단순해서, 기동력 차이를 꾸준히 벌리면 컴퓨터가 X 칸에 몰리는 장면이 나와요.</p>
<p>막혔을 때는 <strong>무르기</strong>로 한 턴 되돌려 다른 수를 시험해 보세요. 어떤 수가 모서리를 내주는지 직접 비교해 보는 게 가장 빨리 느는 방법이에요. 판 위의 점 표시(둘 수 있는 곳)를 켜 두면, 상대가 둘 수 있는 곳이 몇 개인지 상대 차례를 보며 세어 볼 수도 있어요.</p>
<aside class="callout warn"><b class="callout-h">주의</b><p>이 게임에서 무르기를 쓴 판도 난이도별 승·패에는 그대로 더해져요. 다만 이긴 판의 "최다 돌 승리" 기록에는 넣지 않아요. 승률을 실력 지표로 보고 싶다면 연습 판에서만 무르기를 쓰세요.</p></aside>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s9">흔한 실수 체크리스트</h2>
<ul><li>매 수마다 가장 많이 뒤집는 곳에 둔다 → 상대 선택지만 늘어나요.</li><li>모서리가 비었는데 X 칸(b2·g2·b7·g7)에 둔다 → 다음 수에 모서리를 내줄 가능성이 커요.</li><li>변에 돌 하나를 혼자 내보낸다 → 양쪽에서 끼워지는 표적이 돼요.</li><li>중반에 돌 개수가 앞서서 안심한다 → 리버시는 마지막 10여 수에 수십 개가 뒤집혀요.</li><li>종반에 빈칸 구역의 짝홀을 보지 않는다 → 마지막 수를 상대에게 넘겨줘요.</li></ul>
<p>같은 두뇌 게임을 좋아한다면 <a href="https://game.smithlab.co.kr/games/gomoku/">오목 vs 컴퓨터</a>도 있어요. 오목에서 열린 3을 막는 감각이 궁금하면 <a href="https://game.smithlab.co.kr/posts/games/gomoku-winning-patterns-renju/">오목 이기는 법과 렌주룰</a>을 함께 보세요.</p>
<h2 id="s10">자주 묻는 질문</h2>
<h3>리버시와 오델로는 다른 게임인가요?</h3>
<p>거의 같은 게임이에요. 돌을 끼워 뒤집는 리버시가 19세기 영국에서 먼저 나왔고, 1970년대 일본에서 가운데 네 칸을 엇갈려 놓고 흑이 먼저 두는 지금의 규칙으로 정리되어 오델로라는 이름으로 퍼졌어요. 요즘 "리버시"라고 부르는 게임도 대부분 이 규칙을 따라요.</p>
<h3>둘 곳이 있는데 패스할 수 있나요?</h3>
<p>없어요. 패스는 둘 수 있는 칸이 하나도 없을 때만 해요. 이 게임에서도 둘 곳이 없으면 자동으로 패스되고, 둘 다 둘 곳이 없으면 판이 다 차지 않아도 바로 끝나요.</p>
<h3>선공(흑)과 후공(백) 중 어느 쪽이 유리한가요?</h3>
<p>패스가 없으면 60번째 마지막 수를 백이 두기 때문에 종반 패리티는 백에게 조금 유리하다는 이야기가 많아요. 다만 실전에서는 패스가 끼면서 바뀌고, 사람끼리의 대국에서는 실력 차이가 훨씬 커요. 이 게임에서는 흑·백을 골라 둘 다 연습해 보세요.</p>
<h3>X 칸에는 절대 두면 안 되나요?</h3>
<p>그 X 칸에 붙은 모서리가 비어 있다면 웬만하면 피하는 게 좋아요. 하지만 모서리가 이미 찼거나, 상대가 그 모서리로 둘 수 없는 상황이 확실하거나, 다른 수가 전부 더 나쁠 때는 X 칸이 최선일 수도 있어요. 원칙은 "모서리를 내주지 말라"이지 "X 칸 금지"가 아니에요.</p>
<h3>어려움 컴퓨터는 왜 종반에 그렇게 강한가요?</h3>
<p>빈칸이 14칸 이하로 남으면 남은 모든 수순을 끝까지 계산해서 최종 돌 차이가 가장 큰 수를 고르기 때문이에요. 이 구간에서는 사실상 실수하지 않아요. 그래서 어려움을 이기려면 종반 전에 모서리와 안정 돌로 이미 이길 수 있는 판을 만들어 두는 게 중요해요.</p>
<h2 id="s11">정리</h2>
<p>리버시(오델로)는 규칙은 단순하지만, 돌을 많이 뒤집는 쪽이 아니라 모서리를 잡고, X·C 칸을 피하고, 상대의 둘 곳을 줄이는 쪽이 이기는 게임이에요. 첫 수는 4곳뿐이지만 6수 만에 8,200가지 수순으로 갈라지고, 많이 뒤집기만 하는 컴퓨터는 기동력을 보는 컴퓨터에게 40판 중 1판밖에 못 이겼어요. 종반에는 짝홀(패리티)과 계산이 승부를 가르니, 빈칸 구역을 세는 습관을 들여 보세요.</p>
<p>원칙을 익혔다면 <a href="https://game.smithlab.co.kr/games/reversi/">리버시 (오델로) vs 컴퓨터</a>에서 쉬움부터 차례로 올라가 보세요. 난이도별 승·패가 브라우저에 저장돼서 실력이 느는 게 눈에 보여요.</p>
    ]]></description>
    </item>
    <item>
      <title>스택 쌓기 게임 잘하는 법, 퍼펙트 타이밍과 박자로 높이 쌓기</title>
      <link>https://game.smithlab.co.kr/posts/games/stack-tower-game-tips/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/stack-tower-game-tips/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>탑 쌓기 게임을 하다 보면 20층 근처에서 블록이 손톱만 해져서 끝나는 일이 많아요. 결론부터 말하면 <strong>스택 쌓기는 움직이는 블록을 쫓는 게임이 아니라, 아래 층의 모서리 한 점을 보고 일정한 박자로 누르는 게임이에요. 스미스 게임 연구소 <a href="https://game.smithlab.co.kr/games/stack-tower/">스택 쌓기</a> 기준으로 PERFECT 판정은 아래 층과 ±5px 이내, 시작 속도(초당 150px)에서 시간으로 약 0.067초 창이고, 한 번 잘린 폭은 PERFECT를 3번 연속 낸 뒤부터만 10px씩 되찾을 수 있어요.</strong> 그래서 "조금 잘려도 괜찮겠지"가 쌓이는 순간 게임이 끝나요.</p>
<p>이 글은 게임 코드에 들어 있는 숫자를 그대로 가져와서, 블록이 어떻게 잘리는지, 속도가 몇 층에서 얼마나 빨라지는지, 퍼펙트 연속이 실제로 폭을 얼마나 돌려주는지를 계산해 봤어요. 감으로 하던 게임을 숫자로 보면 어디서 손해를 보고 있었는지가 바로 보이더라고요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>어긋난 만큼 정확히 잘려 나가고, 다음 블록은 남은 폭으로 나와요. 20px씩 열 번 어긋나면 200px 블록이 사라져요.</li><li>PERFECT는 아래 층과 5px 이내로 맞춘 경우예요. 아무것도 잘리지 않고, 3번째 연속 PERFECT부터 PERFECT마다 폭이 10px씩 넓어져요(최대 200px).</li><li>속도는 초당 150px + 층 수 × 4px이고 63층부터 400px로 고정이에요. PERFECT 시간 창은 0층 0.067초에서 63층 0.025초까지 줄어요.</li><li>블록을 눈으로 따라가지 말고 아래 층 모서리를 고정해서 보고, 블록이 나오고 나서 PERFECT 지점까지 걸리는 박자를 몸에 익히세요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">스택 쌓기 게임 기본 규칙</h2>
<p>규칙은 한 줄이에요. 받침대 위로 블록이 좌우로 오가고, 탭(또는 Space·클릭)하면 그 자리에 떨어져요. 그런데 세부 규칙을 정확히 알아야 전략이 생겨요.</p>
<ul><li>게임 화면 가로는 400px 기준이고, 첫 블록과 받침대 폭은 200px이에요. 받침대는 가운데(x=100~300)에 있어요.</li><li>블록은 화면 끝까지 갔다가 튕겨서 돌아와요. <strong>홀수 층은 왼쪽 끝에서, 짝수 층은 오른쪽 끝에서</strong> 출발해요.</li><li>떨어진 블록 중 아래 층과 겹치는 부분만 남고, 밖으로 삐져나온 부분은 잘려서 회전하며 떨어져요.</li><li>다음 블록은 방금 남은 폭 그대로 나와요. 폭이 줄면 다시 늘릴 방법은 PERFECT 연속뿐이에요.</li><li>블록이 아래 층과 1px도 겹치지 않으면 블록 전체가 떨어지고 게임 오버예요.</li><li>점수는 쌓은 층 수예요. 보너스 점수는 없고, 대신 최대 퍼펙트 연속 기록이 따로 저장돼요.</li></ul>
<p>이 중에서 가장 중요한 건 "블록이 튕긴다"는 점이에요. 놓칠 것 같으면 무리하게 누르지 말고 한 번 보내도 돼요. 블록은 벽에 닿고 돌아와서 같은 자리를 다시 지나가요. 시간이 조금 들 뿐 손해는 없어요.</p>
<h2 id="s2">블록이 잘리는 원리: 어긋난 만큼 그대로 사라져요</h2>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/stack-tower-game-tips-1.svg" alt="블록이 잘리는 방식. 왼쪽은 200px 아래 층 위에 블록이 오른쪽으로 30px 어긋나 떨어져서 30px이 잘려 나가고 170px만 남는 모습, 오른쪽은 아래 층 모서리 기준 ±5px 노란 띠 안에 떨어진 블록이 PERFECT로 판정되어 아래 층 위치에 딱 맞춰지는 모습" width="800" height="450" loading="lazy" decoding="async"><figcaption>어긋난 만큼 잘리고, 5px 안이면 PERFECT</figcaption></figure>
<p>계산은 단순해요. 블록 폭이 w이고 아래 층과 d px 어긋났다면, 남는 폭은 <strong>w − d</strong>예요. 왼쪽으로 어긋나든 오른쪽으로 어긋나든 똑같아요. 그래서 실력 차이는 "평균 몇 px 어긋나느냐"로 거의 다 설명돼요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">매번 같은 만큼 어긋날 때 남는 블록 폭</figcaption><div class="viz-legend"><span><i class="s1"></i>매번 6px</span><span><i class="s2"></i>매번 10px</span><span><i class="s3"></i>매번 20px</span></div><svg viewBox="0 0 640 300" role="img" aria-label="매번 같은 만큼 어긋날 때 남는 블록 폭" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">150</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">200</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">0층</text><text class="viz-ax" x="138.3" y="272" text-anchor="middle">5층</text><text class="viz-ax" x="224.7" y="272" text-anchor="middle">10층</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">15층</text><text class="viz-ax" x="397.3" y="272" text-anchor="middle">20층</text><text class="viz-ax" x="483.7" y="272" text-anchor="middle">25층</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">30층</text><polyline class="viz-line s1" points="52.0,18.0 138.3,53.4 224.7,88.8 311.0,124.2 397.3,159.6 483.7,195.0 570.0,230.4"/><circle class="viz-dot s1" cx="52.0" cy="18.0" r="4"><title>0층 · 매번 6px 200px</title></circle><circle class="viz-dot s1" cx="138.3" cy="53.4" r="4"><title>5층 · 매번 6px 170px</title></circle><circle class="viz-dot s1" cx="224.7" cy="88.8" r="4"><title>10층 · 매번 6px 140px</title></circle><circle class="viz-dot s1" cx="311.0" cy="124.2" r="4"><title>15층 · 매번 6px 110px</title></circle><circle class="viz-dot s1" cx="397.3" cy="159.6" r="4"><title>20층 · 매번 6px 80px</title></circle><circle class="viz-dot s1" cx="483.7" cy="195.0" r="4"><title>25층 · 매번 6px 50px</title></circle><circle class="viz-dot s1" cx="570.0" cy="230.4" r="4"><title>30층 · 매번 6px 20px</title></circle><text class="viz-val" x="578.0" y="234.4">20</text><polyline class="viz-line s2" points="52.0,18.0 138.3,77.0 224.7,136.0 311.0,195.0 397.3,254.0 483.7,254.0 570.0,254.0"/><circle class="viz-dot s2" cx="52.0" cy="18.0" r="4"><title>0층 · 매번 10px 200px</title></circle><circle class="viz-dot s2" cx="138.3" cy="77.0" r="4"><title>5층 · 매번 10px 150px</title></circle><circle class="viz-dot s2" cx="224.7" cy="136.0" r="4"><title>10층 · 매번 10px 100px</title></circle><circle class="viz-dot s2" cx="311.0" cy="195.0" r="4"><title>15층 · 매번 10px 50px</title></circle><circle class="viz-dot s2" cx="397.3" cy="254.0" r="4"><title>20층 · 매번 10px 0px</title></circle><circle class="viz-dot s2" cx="483.7" cy="254.0" r="4"><title>25층 · 매번 10px 0px</title></circle><circle class="viz-dot s2" cx="570.0" cy="254.0" r="4"><title>30층 · 매번 10px 0px</title></circle><text class="viz-val" x="578.0" y="258.0">0</text><polyline class="viz-line s3" points="52.0,18.0 138.3,136.0 224.7,254.0 311.0,254.0 397.3,254.0 483.7,254.0 570.0,254.0"/><circle class="viz-dot s3" cx="52.0" cy="18.0" r="4"><title>0층 · 매번 20px 200px</title></circle><circle class="viz-dot s3" cx="138.3" cy="136.0" r="4"><title>5층 · 매번 20px 100px</title></circle><circle class="viz-dot s3" cx="224.7" cy="254.0" r="4"><title>10층 · 매번 20px 0px</title></circle><circle class="viz-dot s3" cx="311.0" cy="254.0" r="4"><title>15층 · 매번 20px 0px</title></circle><circle class="viz-dot s3" cx="397.3" cy="254.0" r="4"><title>20층 · 매번 20px 0px</title></circle><circle class="viz-dot s3" cx="483.7" cy="254.0" r="4"><title>25층 · 매번 20px 0px</title></circle><circle class="viz-dot s3" cx="570.0" cy="254.0" r="4"><title>30층 · 매번 20px 0px</title></circle><text class="viz-val" x="578.0" y="258.0">0</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">6px은 PERFECT 판정(5px)을 겨우 벗어난 거리예요. PERFECT 없이 6px씩만 어긋나도 33번째 블록에서 폭이 2px만 남아요.</p><div class="viz-cap">단위: px · 자료: 스미스 게임 연구소 스택 쌓기 규칙(남는 폭 = 폭 − 어긋난 거리)으로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>매번 6px</th><th>매번 10px</th><th>매번 20px</th></tr></thead><tbody><tr><td>0층</td><td>200</td><td>200</td><td>200</td></tr><tr><td>5층</td><td>170</td><td>150</td><td>100</td></tr><tr><td>10층</td><td>140</td><td>100</td><td>0</td></tr><tr><td>15층</td><td>110</td><td>50</td><td>0</td></tr><tr><td>20층</td><td>80</td><td>0</td><td>0</td></tr><tr><td>25층</td><td>50</td><td>0</td><td>0</td></tr><tr><td>30층</td><td>20</td><td>0</td><td>0</td></tr></tbody></table></div></details></figure>
<p>차트에서 보듯 매번 20px씩 어긋나면 딱 10층에서 끝나요. 10px이면 20층, PERFECT 판정을 아슬아슬하게 놓치는 6px이어도 30층을 조금 넘기면 폭이 바닥나요. 즉 <strong>PERFECT 없이 30층 이상은 사실상 불가능</strong>하고, 높이 쌓으려면 PERFECT가 중간중간 반드시 섞여야 해요.</p>
<p>한 가지 더, 블록이 좁아지면 난이도가 두 배로 올라요. 폭이 좁으면 오갈 거리(400 − 폭)가 길어져 박자가 바뀌고, 겹칠 수 있는 범위도 줄어서 한 번의 큰 실수가 바로 게임 오버로 이어져요. 폭 30px 블록은 30px만 어긋나도 겹치는 곳이 없어서 끝이에요.</p>
<h2 id="s3">PERFECT 판정과 퍼펙트 연속 규칙</h2>
<p>PERFECT는 블록 왼쪽 모서리가 아래 층 왼쪽 모서리와 <strong>5px 이내</strong>일 때예요. 판정되면 블록을 아래 층 위치로 정확히 옮겨 놓기 때문에 4px 어긋났어도 0px로 처리돼요. 잘리는 부분이 하나도 없고, 그 위로 쌓는 기준선도 깔끔하게 유지돼요.</p>
<p>연속 규칙은 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>연속 PERFECT</th><th>폭 변화</th><th>비고</th></tr></thead><tbody><tr><td>1번째</td><td>그대로</td><td>아무것도 잘리지 않음</td></tr><tr><td>2번째</td><td>그대로</td><td>폭이 줄어 있으면 화면에 "다음 퍼펙트에 폭 +10" 표시</td></tr><tr><td>3번째</td><td>+10px</td><td>여기서부터 넓어짐</td></tr><tr><td>4번째 이후</td><td>PERFECT마다 +10px</td><td>처음 폭 200px까지만</td></tr><tr><td>한 번이라도 잘림</td><td>연속 0으로 초기화</td><td>다시 3번째부터 넓어짐</td></tr></tbody></table></div>
<p>넓어질 때는 아래 층 중심을 기준으로 양쪽에 5px씩 붙어요. 그래서 넓어진 블록은 아래 층보다 살짝 튀어나오는데, 이건 정상이에요. 다음 층은 이 넓어진 블록을 기준으로 판정해요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/stack-tower-game-tips-2.svg" alt="퍼펙트 연속에 따른 블록 폭 변화. 150px 블록으로 PERFECT를 이어 가면 1번째와 2번째는 150px 그대로, 3번째 160px, 4번째 170px, 5번째 180px, 6번째 190px, 7번째에 최대 200px로 돌아온다" width="800" height="450" loading="lazy" decoding="async"><figcaption>PERFECT 7연속이면 150px에서 200px로 복구</figcaption></figure>
<p>이 규칙을 숫자로 보면 회복이 생각보다 어렵다는 게 보여요. 잃은 폭 L px을 되찾으려면 넓어지는 PERFECT가 L ÷ 10번 필요하고, 앞의 2번은 폭을 주지 않으니 <strong>연속 PERFECT가 (L ÷ 10) + 2번</strong> 필요해요.</p>
<div class="table-wrap"><table><thead><tr><th>잃은 폭</th><th>필요한 연속 PERFECT</th></tr></thead><tbody><tr><td>10px</td><td>3연속</td></tr><tr><td>30px</td><td>5연속</td></tr><tr><td>50px</td><td>7연속</td></tr><tr><td>100px</td><td>12연속</td></tr></tbody></table></div>
<p>중간에 한 번 잘리면 처음부터 다시 세야 해요. 그래서 실전 감각으로는 "잃은 폭은 거의 안 돌아온다"고 생각하고, 처음부터 덜 잃는 쪽이 훨씬 효율적이에요. 퍼펙트 연속은 회복 수단이라기보다 <strong>실수 한두 번을 메워 주는 보험</strong> 정도로 보는 게 맞아요.</p>
<h2 id="s4">층별 속도 곡선: 63층까지 계속 빨라져요</h2>
<p>블록 속도는 <strong>초당 150px + 쌓은 층 수 × 4px</strong>이고, 63층에서 초당 400px에 닿은 뒤로는 더 빨라지지 않아요. 게임 위쪽 속도 칸의 ×1.00, ×1.48 같은 숫자는 처음 속도의 몇 배인지예요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">쌓은 층 수별 블록 속도</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="쌓은 층 수별 블록 속도" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">300</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">400</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">0층</text><text class="viz-ax" x="126.0" y="272" text-anchor="middle">10층</text><text class="viz-ax" x="200.0" y="272" text-anchor="middle">20층</text><text class="viz-ax" x="274.0" y="272" text-anchor="middle">30층</text><text class="viz-ax" x="348.0" y="272" text-anchor="middle">40층</text><text class="viz-ax" x="422.0" y="272" text-anchor="middle">50층</text><text class="viz-ax" x="496.0" y="272" text-anchor="middle">63층</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">80층</text><polyline class="viz-line s1" points="52.0,165.5 126.0,141.9 200.0,118.3 274.0,94.7 348.0,71.1 422.0,47.5 496.0,18.0 570.0,18.0"/><circle class="viz-dot s1" cx="52.0" cy="165.5" r="4"><title>0층 · 블록 속도 150px/초</title></circle><circle class="viz-dot s1" cx="126.0" cy="141.9" r="4"><title>10층 · 블록 속도 190px/초</title></circle><circle class="viz-dot s1" cx="200.0" cy="118.3" r="4"><title>20층 · 블록 속도 230px/초</title></circle><circle class="viz-dot s1" cx="274.0" cy="94.7" r="4"><title>30층 · 블록 속도 270px/초</title></circle><circle class="viz-dot s1" cx="348.0" cy="71.1" r="4"><title>40층 · 블록 속도 310px/초</title></circle><circle class="viz-dot s1" cx="422.0" cy="47.5" r="4"><title>50층 · 블록 속도 350px/초</title></circle><circle class="viz-dot s1" cx="496.0" cy="18.0" r="4"><title>63층 · 블록 속도 400px/초</title></circle><circle class="viz-dot s1" cx="570.0" cy="18.0" r="4"><title>80층 · 블록 속도 400px/초</title></circle><text class="viz-val" x="578.0" y="22.0">400</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">한 층마다 초당 4px씩, 63층부터는 고정이에요.</p><div class="viz-cap">단위: px/초 · 자료: 스미스 게임 연구소 스택 쌓기 코드(150 + 층 수 × 4, 최고 400)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>블록 속도</th></tr></thead><tbody><tr><td>0층</td><td>150</td></tr><tr><td>10층</td><td>190</td></tr><tr><td>20층</td><td>230</td></tr><tr><td>30층</td><td>270</td></tr><tr><td>40층</td><td>310</td></tr><tr><td>50층</td><td>350</td></tr><tr><td>63층</td><td>400</td></tr><tr><td>80층</td><td>400</td></tr></tbody></table></div></details></figure>
<p>한 층에 4px은 체감하기 어려울 만큼 작아요. 그래서 몇 층 사이에서는 박자를 그대로 써도 되고, 10층쯤마다 "조금 빨라졌네" 하고 박자를 당겨 주면 돼요. 반대로 30층과 0층을 비교하면 1.8배라서, 처음 박자로 계속 누르면 늦게 누르는 실수가 쌓여요.</p>
<p>움직임은 1/120초 고정 간격으로 계산해요. 60Hz 모니터든 120Hz 휴대폰이든 같은 시간에 같은 거리를 움직이니, 기기를 바꿔도 박자가 그대로예요.</p>
<h2 id="s5">PERFECT 시간 창: 생각보다 넉넉하고, 점점 좁아져요</h2>
<p>±5px이면 PERFECT 구간 폭은 10px이에요. 이걸 속도로 나누면 손가락이 맞춰야 하는 시간 창이 나와요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">층 수별 PERFECT 시간 창</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="층 수별 PERFECT 시간 창" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">60</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">80</text><rect class="s1" x="64.3" y="57.2" width="57.6" height="196.8" rx="3"><title>0층 · PERFECT 창 66.7밀리초</title></rect><text class="viz-val" x="93.1" y="52.2" text-anchor="middle">66.7</text><text class="viz-ax" x="93.1" y="272" text-anchor="middle">0층</text><rect class="s1" x="146.6" y="98.8" width="57.6" height="155.2" rx="3"><title>10층 · PERFECT 창 52.6밀리초</title></rect><text class="viz-val" x="175.4" y="93.8" text-anchor="middle">52.6</text><text class="viz-ax" x="175.4" y="272" text-anchor="middle">10층</text><rect class="s1" x="228.9" y="125.7" width="57.6" height="128.3" rx="3"><title>20층 · PERFECT 창 43.5밀리초</title></rect><text class="viz-val" x="257.7" y="120.7" text-anchor="middle">43.5</text><text class="viz-ax" x="257.7" y="272" text-anchor="middle">20층</text><rect class="s1" x="311.2" y="144.8" width="57.6" height="109.2" rx="3"><title>30층 · PERFECT 창 37밀리초</title></rect><text class="viz-val" x="340.0" y="139.8" text-anchor="middle">37</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">30층</text><rect class="s1" x="393.5" y="158.7" width="57.6" height="95.3" rx="3"><title>40층 · PERFECT 창 32.3밀리초</title></rect><text class="viz-val" x="422.3" y="153.7" text-anchor="middle">32.3</text><text class="viz-ax" x="422.3" y="272" text-anchor="middle">40층</text><rect class="s1" x="475.8" y="169.6" width="57.6" height="84.4" rx="3"><title>50층 · PERFECT 창 28.6밀리초</title></rect><text class="viz-val" x="504.6" y="164.6" text-anchor="middle">28.6</text><text class="viz-ax" x="504.6" y="272" text-anchor="middle">50층</text><rect class="s1" x="558.1" y="180.2" width="57.6" height="73.8" rx="3"><title>63층 · PERFECT 창 25밀리초</title></rect><text class="viz-val" x="586.9" y="175.2" text-anchor="middle">25</text><text class="viz-ax" x="586.9" y="272" text-anchor="middle">63층</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">사람의 시각 반응 속도는 보통 0.2초 안팎이라, 보고 나서 누르면 이미 늦어요. 미리 예측해서 눌러야 해요.</p><div class="viz-cap">단위: 밀리초 · 자료: PERFECT 구간 10px ÷ 층별 속도로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>PERFECT 창</th></tr></thead><tbody><tr><td>0층</td><td>66.7</td></tr><tr><td>10층</td><td>52.6</td></tr><tr><td>20층</td><td>43.5</td></tr><tr><td>30층</td><td>37</td></tr><tr><td>40층</td><td>32.3</td></tr><tr><td>50층</td><td>28.6</td></tr><tr><td>63층</td><td>25</td></tr></tbody></table></div></details></figure>
<p>0층의 0.067초는 꽤 넉넉한 편이에요. 하지만 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>를 해 보면 알 수 있듯이 사람은 보고 반응하는 데 0.2초 안팎이 걸려요. <strong>블록이 맞는 자리에 온 걸 보고 누르면 이미 30px쯤 지나간 뒤예요.</strong> 결국 PERFECT는 반응이 아니라 예측으로 내야 해요. 다음 두 요령이 그 예측을 쉽게 만들어 줘요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">요령 1: 블록 말고 아래 층 모서리를 보세요</h2>
<p>움직이는 블록 전체를 눈으로 따라가면 시선이 계속 흔들려서 위치 판단이 늦어요. 대신 이렇게 해 보세요.</p>
<ol><li>블록이 <strong>어느 쪽에서 오는지</strong> 확인해요. 홀수 층은 왼쪽에서, 짝수 층은 오른쪽에서 출발해요.</li><li>블록이 다가오는 쪽의 <strong>아래 층 모서리 한 점</strong>에 시선을 고정해요. 왼쪽에서 오면 아래 층의 왼쪽 모서리, 오른쪽에서 오면 오른쪽 모서리예요. 움직이는 블록도 같은 쪽 모서리만 봐요. 블록과 아래 층의 폭이 같으니 한쪽 모서리만 맞으면 반대쪽도 저절로 맞아요.</li><li>두 모서리가 겹치기 직전, 손가락은 이미 내려가고 있어야 해요.</li></ol>
<p>모서리 하나만 보면 비교할 대상이 "선 두 개"로 줄어서 판단이 훨씬 빨라요. 게임 그림은 윗면과 오른쪽 옆면이 보이는 입체 블록이라, 앞면의 세로 모서리를 기준으로 보세요. 윗면 모서리는 오른쪽으로 12px 비켜 그려져 있어서 기준으로 쓰면 오차가 생겨요.</p>
<h2 id="s7">요령 2: 박자를 세면 PERFECT가 반복돼요</h2>
<p>이 게임의 숨은 성질이 하나 있어요. 탑이 가운데에서 크게 벗어나지 않으면, <strong>블록이 나와서 PERFECT 지점에 닿기까지 걸리는 시간이 매 층 거의 같아요.</strong> 폭 w인 블록이 끝에서 출발해 아래 층 위치까지 오는 거리는 대략 (400 − w) ÷ 2이니까요.</p>
<div class="table-wrap"><table><thead><tr><th>쌓은 층</th><th>속도</th><th>200px 블록</th><th>100px 블록</th><th>50px 블록</th></tr></thead><tbody><tr><td>0층</td><td>150px/초</td><td>0.67초</td><td>1.00초</td><td>1.17초</td></tr><tr><td>10층</td><td>190px/초</td><td>0.53초</td><td>0.79초</td><td>0.92초</td></tr><tr><td>20층</td><td>230px/초</td><td>0.43초</td><td>0.65초</td><td>0.76초</td></tr><tr><td>30층</td><td>270px/초</td><td>0.37초</td><td>0.56초</td><td>0.65초</td></tr><tr><td>63층 이후</td><td>400px/초</td><td>0.25초</td><td>0.38초</td><td>0.44초</td></tr></tbody></table></div>
<p>탑이 가운데에 있을 때, 블록이 나온 뒤 PERFECT 지점까지 걸리는 시간이에요. 첫 블록이라면 블록이 나오고 "하나, 둘"보다 조금 빠른 0.67초 뒤가 정답이에요. 이 박자를 한 번 잡으면 같은 리듬으로 몇 층을 연달아 맞출 수 있어요.</p>
<p>반대로 표에서 위험 신호도 보여요. <strong>블록이 좁아질수록 박자가 길어져요.</strong> 폭이 줄었는데 예전 박자로 누르면 일찍 눌러서 또 잘리고, 그래서 또 좁아지는 악순환이 생겨요. 블록이 눈에 띄게 줄었다면 반 박자 늦게 누르는 걸 의식해 보세요.</p>
<p>탑이 한쪽으로 쏠리면 출발점에서의 거리가 층마다 달라져서 박자가 깨져요. 가운데를 유지하는 것 자체가 박자를 지키는 방법이에요.</p>
<h2 id="s8">흔한 실수와 고치는 법</h2>
<ul><li><strong>급하게 연타하기</strong>: 블록이 바뀌자마자 누르면 블록은 화면 끝에 있어서 대개 완전히 빗나가요. 블록은 튕겨서 다시 오니, 늦었다 싶으면 한 바퀴 기다리세요.</li><li><strong>잘린 걸 만회하려고 반대로 맞추기</strong>: 아래 층보다 넓게 놓을 방법은 없어요. 판정은 늘 바로 아래 층 기준이라 지난 실수를 반대쪽으로 상쇄할 수 없어요. 매번 아래 층 모서리에만 맞추세요.</li><li><strong>PERFECT 직후 긴장 풀기</strong>: 연속 2회 뒤 화면에 "다음 퍼펙트에 폭 +10"이 뜨면 가장 중요한 순간이에요. 여기서 맞춰야 폭이 늘기 시작해요.</li><li><strong>속도 증가 무시</strong>: 10층마다 블록이 처음보다 약 0.27배씩 빨라져요(×1.00 → ×1.27 → ×1.53). 위쪽 속도 칸을 가끔 보세요.</li><li><strong>다른 창 보기</strong>: 창이 포커스를 잃으면 바로 일시정지돼요. 실수로 탭을 바꿔도 블록이 떨어지지 않으니 걱정하지 마세요.</li></ul>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s9">모바일에서 스택 쌓기 하는 법</h2>
<p>휴대폰에서는 게임 화면 아무 곳이나 탭하면 돼요. 게임 중에는 화면을 만져도 페이지가 스크롤되지 않게 막아 뒀어요. 손가락을 화면 위에 살짝 띄워 두고 있다가 박자에 맞춰 톡 치는 게 가장 정확했어요. 손가락이 화면을 가리면 모서리가 안 보이니, 게임 화면 아래쪽(이미 쌓인 탑 부분)을 탭하세요. 위치와 상관없이 판정은 같아요.</p>
<p>비슷하게 타이밍이 중요한 게임으로는 <a href="https://game.smithlab.co.kr/games/dino-run/">공룡 달리기</a>가 있어요. 점프 박자를 정리한 <a href="https://game.smithlab.co.kr/posts/games/dino-run-game-tips/">공룡 게임 잘하는 법</a>도 같이 보면 "보고 누르지 말고 예측해서 누르기" 감각을 익히는 데 도움이 돼요.</p>
<h2 id="s10">자주 묻는 질문</h2>
<h3>PERFECT는 정확히 몇 px까지 인정되나요?</h3>
<p>아래 층과 5px 이내로 어긋나면 PERFECT예요. 게임 화면 가로 400px 기준으로 약 1.25%이고, 시작 속도에서는 약 0.067초, 63층 이후에는 0.025초 창이에요. PERFECT가 나면 블록을 아래 층 위치로 정확히 맞춰 줘요.</p>
<h3>줄어든 블록을 다시 넓힐 수 있나요?</h3>
<p>PERFECT를 3번 연속 낸 순간부터, 이어지는 PERFECT마다 폭이 10px씩 넓어져요. 처음 폭인 200px보다 넓어지지는 않고, 한 번이라도 잘리면 연속이 0으로 돌아가요. 50px을 되찾으려면 7연속이 필요해요.</p>
<h3>몇 층부터 어려워지나요?</h3>
<p>속도는 층마다 초당 4px씩 꾸준히 올라서 뚜렷한 벽은 없어요. 다만 30층이면 처음보다 1.8배 빨라지고, PERFECT 없이 6px씩만 어긋나도 30층 언저리에서 폭이 바닥나요. 보통은 속도보다 줄어든 폭 때문에 끝나요.</p>
<h3>놓칠 것 같으면 어떻게 하나요?</h3>
<p>누르지 말고 한 번 보내세요. 블록은 화면 끝에서 튕겨 돌아와서 같은 자리를 다시 지나가요. 시간 제한이 없으니 기다려도 손해가 없어요.</p>
<h3>최고 기록은 어디에 저장되나요?</h3>
<p>최고 층수, 최대 퍼펙트 연속, 판 수가 이 브라우저 쿠키에만 저장되고 서버로는 전송되지 않아요. 게임 아래의 기록 초기화 버튼으로 지울 수 있어요.</p>
<h2 id="s11">정리</h2>
<p>스택 쌓기에서 블록 폭은 어긋난 만큼 정확히 줄어들고, 되찾으려면 PERFECT 3연속이라는 비싼 대가가 필요해요. 그래서 높이 쌓는 비결은 화려한 회복보다 처음부터 덜 잃는 데 있어요. 아래 층 모서리 한 점을 보고, 블록이 나와서 PERFECT 지점까지 오는 박자를 세고, 10층마다 박자를 조금씩 당기세요. 놓칠 것 같으면 한 바퀴 보내는 여유도 기억하고요.</p>
<p>지금 바로 <a href="https://game.smithlab.co.kr/games/stack-tower/">스택 쌓기</a>에서 박자 세기를 연습해 보세요. 처음 10층을 PERFECT로만 쌓아 보는 게 가장 좋은 연습이에요.</p>
    ]]></description>
    </item>
    <item>
      <title>수박 게임 공략, 과일 순서와 점수 계산부터 고득점 배치 요령까지</title>
      <link>https://game.smithlab.co.kr/posts/games/suika-game-tips-high-score/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/suika-game-tips-high-score/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>수박 게임을 처음 하면 과일이 생각보다 금방 위험선까지 차올라서 당황하게 돼요. 결론부터 말하면 <strong>수박 게임의 핵심은 "큰 과일은 한쪽 구석에, 나머지는 크기 순서대로 줄 세우고, 작은 과일이 큰 과일 틈에 갇히지 않게 하는 것"</strong> 이에요. 손이 빠른지보다 어디에 떨어뜨릴지 미리 정해 두는 습관이 점수를 훨씬 크게 바꿔요.</p>
<p>이 글은 스미스 게임 연구소에서 직접 만든 <a href="https://game.smithlab.co.kr/games/suika-game/">수박 게임</a>을 기준으로 썼어요. 인기 과일 합치기 게임에서 영감을 받은 팬메이드 브라우저 버전이라 과일 크기와 점수가 원작과 조금 다를 수 있지만, 배치 원리는 같은 장르라면 그대로 통해요. 과일 순서, 이 버전의 정확한 점수 공식, 수박 하나를 만들려면 얼마나 쌓아야 하는지 계산한 숫자, 그리고 판을 오래 끌고 가는 배치 요령을 차례로 정리했어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>과일은 체리 → 딸기 → 포도 → 한라봉 → 감 → 사과 → 배 → 복숭아 → 파인애플 → 멜론 → 수박, 11단계예요. 떨어지는 건 앞의 다섯 가지(체리~감)뿐이에요.</li><li>과일을 만들 때 받는 점수는 1, 3, 6, 10, 15…처럼 삼각수로 늘어서 수박을 만들면 55점, 수박 두 개를 합쳐 없애면 66점이에요.</li><li>수박 하나는 체리로 치면 2의 10제곱, 1,024개 분량이라 판을 오래 유지하는 배치가 점수의 전부예요.</li><li>큰 과일은 구석, 나머지는 크기 순서, 작은 과일은 같은 과일 위에. 이 세 가지만 지켜도 판이 눈에 띄게 길어져요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">수박 게임 규칙 한눈에 보기</h2>
<p>규칙은 단순해요. 화면 위쪽에서 과일을 하나씩 떨어뜨리고, <strong>같은 종류의 과일 두 개가 서로 닿으면 두 과일의 가운데 지점에서 한 단계 큰 과일 하나로 합쳐져요.</strong> 합쳐져 생긴 과일이 옆에 있는 같은 과일에 또 닿으면 연달아 합쳐지는데, 이 연쇄가 수박 게임의 가장 짜릿한 순간이에요.</p>
<p>스미스 게임 연구소 버전의 세부 규칙은 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>항목</th><th>내용</th></tr></thead><tbody><tr><td>떨어지는 과일</td><td>체리·딸기·포도·한라봉·감 5종이 각각 20% 확률로 무작위</td></tr><tr><td>다음 과일</td><td>화면 위 "다음 과일" 칸에 하나 미리 보여 줌</td></tr><tr><td>조작</td><td>모바일은 누른 채 끌어서 위치 잡고 손을 떼면 낙하, PC는 마우스 이동 후 클릭, 키보드는 ←→ 와 Space</td></tr><tr><td>연속 낙하</td><td>한 번 떨어뜨리면 0.5초 뒤에 다음 과일을 떨어뜨릴 수 있음</td></tr><tr><td>수박 두 개</td><td>닿으면 둘 다 사라지고 보너스 66점</td></tr><tr><td>게임 오버</td><td>떨어뜨린 지 1초가 지난 과일이 점선 위에 걸친 채 거의 멈춰 2초 넘게 있으면 종료</td></tr></tbody></table></div>
<p>게임 오버 조건을 정확히 알아 두면 좋아요. 과일이 떨어지는 도중이나 튀어 오르는 순간에 점선을 넘는 건 세지 않아요. 점선 위에 <strong>멈춰 있는 시간</strong>만 세기 때문에, 점선이 빨갛게 깜빡이기 시작해도 2초 안에 아래쪽에서 합쳐져 자리가 내려가면 살아나요. 위급할 때는 당황해서 아무 데나 떨어뜨리기보다, 걸쳐 있는 과일 바로 아래에서 합쳐질 수 있는 곳을 찾는 게 먼저예요.</p>
<h2 id="s2">수박 게임 과일 순서와 크기</h2>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/suika-game-tips-high-score-1.svg" alt="체리부터 수박까지 11단계 과일이 화살표로 이어진 순서도와 단계별 점수" width="800" height="450" loading="lazy" decoding="async"><figcaption>수박 게임 과일 11단계와 만들 때 받는 점수</figcaption></figure>
<p>과일 순서는 작은 것부터 <strong>체리, 딸기, 포도, 한라봉, 감, 사과, 배, 복숭아, 파인애플, 멜론, 수박</strong>이에요. 한라봉과 감은 둘 다 주황색이라 헷갈리기 쉬운데, 감이 한 단계 더 크고 위에 초록 꼭지가 있어요. 순서를 외워 두면 "지금 사과가 하나 있으니 감 두 개를 만들어 옆에 붙이면 된다"처럼 몇 수 앞을 계산할 수 있어요.</p>
<p>크기 차이도 중요해요. 이 버전에서 게임 판의 가로를 400으로 봤을 때 과일 지름은 아래와 같아요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">수박 게임 과일 지름 (판 가로 400 기준)</figcaption><svg viewBox="0 0 640 390" role="img" aria-label="수박 게임 과일 지름 (판 가로 400 기준)" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="52" y="29" text-anchor="end">체리</text><rect class="s1" x="62" y="15" width="66.0" height="20" rx="3"><title>체리 · 26</title></rect><text class="viz-val" x="134.0" y="29">26</text><text class="viz-ax lg" x="52" y="63" text-anchor="end">딸기</text><rect class="s1" x="62" y="49" width="91.4" height="20" rx="3"><title>딸기 · 36</title></rect><text class="viz-val" x="159.4" y="63">36</text><text class="viz-ax lg" x="52" y="97" text-anchor="end">포도</text><rect class="s1" x="62" y="83" width="116.8" height="20" rx="3"><title>포도 · 46</title></rect><text class="viz-val" x="184.8" y="97">46</text><text class="viz-ax lg" x="52" y="131" text-anchor="end">한라봉</text><rect class="s1" x="62" y="117" width="142.2" height="20" rx="3"><title>한라봉 · 56</title></rect><text class="viz-val" x="210.2" y="131">56</text><text class="viz-ax lg" x="52" y="165" text-anchor="end">감</text><rect class="s1" x="62" y="151" width="172.7" height="20" rx="3"><title>감 · 68</title></rect><text class="viz-val" x="240.7" y="165">68</text><text class="viz-ax lg" x="52" y="199" text-anchor="end">사과</text><rect class="s1" x="62" y="185" width="208.3" height="20" rx="3"><title>사과 · 82</title></rect><text class="viz-val" x="276.3" y="199">82</text><text class="viz-ax lg" x="52" y="233" text-anchor="end">배</text><rect class="s1" x="62" y="219" width="243.8" height="20" rx="3"><title>배 · 96</title></rect><text class="viz-val" x="311.8" y="233">96</text><text class="viz-ax lg" x="52" y="267" text-anchor="end">복숭아</text><rect class="s1" x="62" y="253" width="284.5" height="20" rx="3"><title>복숭아 · 112</title></rect><text class="viz-val" x="352.5" y="267">112</text><text class="viz-ax lg" x="52" y="301" text-anchor="end">파인애플</text><rect class="s1" x="62" y="287" width="325.1" height="20" rx="3"><title>파인애플 · 128</title></rect><text class="viz-val" x="393.1" y="301">128</text><text class="viz-ax lg" x="52" y="335" text-anchor="end">멜론</text><rect class="s1" x="62" y="321" width="375.9" height="20" rx="3"><title>멜론 · 148</title></rect><text class="viz-val" x="443.9" y="335">148</text><text class="viz-ax lg" x="52" y="369" text-anchor="end">수박</text><rect class="s1" x="62" y="355" width="436.9" height="20" rx="3"><title>수박 · 172</title></rect><text class="viz-val" x="504.9" y="369">172</text></svg><p class="viz-note">수박 지름은 판 가로의 43%예요. 수박 두 개가 바닥에 나란히 있으면 남는 폭이 56뿐이에요.</p><div class="viz-cap">자료: 스미스 게임 연구소 수박 게임 코드의 과일 반지름 값으로 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>지름</th></tr></thead><tbody><tr><td>체리</td><td>26</td></tr><tr><td>딸기</td><td>36</td></tr><tr><td>포도</td><td>46</td></tr><tr><td>한라봉</td><td>56</td></tr><tr><td>감</td><td>68</td></tr><tr><td>사과</td><td>82</td></tr><tr><td>배</td><td>96</td></tr><tr><td>복숭아</td><td>112</td></tr><tr><td>파인애플</td><td>128</td></tr><tr><td>멜론</td><td>148</td></tr><tr><td>수박</td><td>172</td></tr></tbody></table></div></details></figure>
<p>수박 하나가 판 가로의 43%, 위험선 아래 공간 넓이의 약 12.5%를 차지해요. 멜론(148)과 수박(172)이 함께 바닥에 있으면 남는 폭은 80밖에 안 돼서 복숭아 하나도 옆에 나란히 서지 못해요. 그래서 수박을 만들 무렵이 되면 판이 갑자기 좁아지는 느낌이 드는 거예요. 큰 과일을 어디에 둘지 미리 정해 두지 않으면 이 시점에 판이 무너져요.</p>
<h2 id="s3">수박 게임 점수 계산 방법</h2>
<p>이 버전은 <strong>새로 만들어진 과일의 단계에 따라 점수를 줘요.</strong> 체리를 0단계로 세면, t단계 과일이 만들어질 때 t×(t+1)÷2점을 받아요. 1, 3, 6, 10, 15처럼 차이가 1씩 커지는 삼각수예요. 그냥 떨어뜨리기만 하는 건 0점이고, 수박 두 개가 합쳐져 사라지면 66점(11단계를 만든 셈)이에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">과일을 만들 때 받는 점수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="과일을 만들 때 받는 점수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">60</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">80</text><rect class="s1" x="59.9" y="251.1" width="36.7" height="2.9" rx="3"><title>딸기 · 점수 1점</title></rect><text class="viz-val" x="78.2" y="246.1" text-anchor="middle">1</text><text class="viz-ax" x="78.2" y="272" text-anchor="middle">딸기</text><rect class="s1" x="112.2" y="245.2" width="36.7" height="8.8" rx="3"><title>포도 · 점수 3점</title></rect><text class="viz-val" x="130.5" y="240.2" text-anchor="middle">3</text><text class="viz-ax" x="130.5" y="272" text-anchor="middle">포도</text><rect class="s1" x="164.6" y="236.3" width="36.7" height="17.7" rx="3"><title>한라봉 · 점수 6점</title></rect><text class="viz-val" x="182.9" y="231.3" text-anchor="middle">6</text><text class="viz-ax" x="182.9" y="272" text-anchor="middle">한라봉</text><rect class="s1" x="216.9" y="224.5" width="36.7" height="29.5" rx="3"><title>감 · 점수 10점</title></rect><text class="viz-val" x="235.3" y="219.5" text-anchor="middle">10</text><text class="viz-ax" x="235.3" y="272" text-anchor="middle">감</text><rect class="s1" x="269.3" y="209.8" width="36.7" height="44.2" rx="3"><title>사과 · 점수 15점</title></rect><text class="viz-val" x="287.6" y="204.8" text-anchor="middle">15</text><text class="viz-ax" x="287.6" y="272" text-anchor="middle">사과</text><rect class="s1" x="321.7" y="192.1" width="36.7" height="61.9" rx="3"><title>배 · 점수 21점</title></rect><text class="viz-val" x="340.0" y="187.1" text-anchor="middle">21</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">배</text><rect class="s1" x="374.0" y="171.4" width="36.7" height="82.6" rx="3"><title>복숭아 · 점수 28점</title></rect><text class="viz-val" x="392.4" y="166.4" text-anchor="middle">28</text><text class="viz-ax" x="392.4" y="272" text-anchor="middle">복숭아</text><rect class="s1" x="426.4" y="147.8" width="36.7" height="106.2" rx="3"><title>파인애플 · 점수 36점</title></rect><text class="viz-val" x="444.7" y="142.8" text-anchor="middle">36</text><text class="viz-ax" x="444.7" y="272" text-anchor="middle">파인애플</text><rect class="s1" x="478.8" y="121.2" width="36.7" height="132.8" rx="3"><title>멜론 · 점수 45점</title></rect><text class="viz-val" x="497.1" y="116.2" text-anchor="middle">45</text><text class="viz-ax" x="497.1" y="272" text-anchor="middle">멜론</text><rect class="s1" x="531.1" y="91.8" width="36.7" height="162.2" rx="3"><title>수박 · 점수 55점</title></rect><text class="viz-val" x="549.5" y="86.8" text-anchor="middle">55</text><text class="viz-ax" x="549.5" y="272" text-anchor="middle">수박</text><rect class="s1" x="583.5" y="59.3" width="36.7" height="194.7" rx="3"><title>수박 2개 · 점수 66점</title></rect><text class="viz-val" x="601.8" y="54.3" text-anchor="middle">66</text><text class="viz-ax" x="601.8" y="272" text-anchor="middle">수박 2개</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><div class="viz-cap">단위: 점 · 자료: 스미스 게임 연구소 수박 게임 점수 규칙</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>점수</th></tr></thead><tbody><tr><td>딸기</td><td>1</td></tr><tr><td>포도</td><td>3</td></tr><tr><td>한라봉</td><td>6</td></tr><tr><td>감</td><td>10</td></tr><tr><td>사과</td><td>15</td></tr><tr><td>배</td><td>21</td></tr><tr><td>복숭아</td><td>28</td></tr><tr><td>파인애플</td><td>36</td></tr><tr><td>멜론</td><td>45</td></tr><tr><td>수박</td><td>55</td></tr><tr><td>수박 2개</td><td>66</td></tr></tbody></table></div></details></figure>
<p>한 번의 합치기만 놓고 보면 수박(55점)이 딸기(1점)의 55배예요. 그런데 한 가지 더 알아 둘 점이 있어요. 큰 과일은 작은 과일이 차례로 합쳐져서 생기기 때문에, 그 과정에서 받은 점수가 다 쌓여요. 수박 하나를 체리만으로 만들었다고 가정하고 단계별로 더해 보면 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>만든 과일</th><th>체리로 치면 몇 개</th><th>그 과일 하나를 만들 때까지 쌓인 점수</th></tr></thead><tbody><tr><td>감</td><td>16개</td><td>42점</td></tr><tr><td>사과</td><td>32개</td><td>99점</td></tr><tr><td>배</td><td>64개</td><td>219점</td></tr><tr><td>복숭아</td><td>128개</td><td>466점</td></tr><tr><td>파인애플</td><td>256개</td><td>968점</td></tr><tr><td>멜론</td><td>512개</td><td>1,981점</td></tr><tr><td>수박</td><td>1,024개</td><td>4,017점</td></tr></tbody></table></div>
<p>실제 게임에서는 포도나 감도 떨어지니까 1,024번을 떨어뜨리지는 않아요. 예를 들어 감만 떨어뜨려 수박을 만든다면 감 64개가 필요하고, 점수는 사과 단계부터만 쌓여 1,329점이에요. 즉 <strong>같은 수박이라도 작은 과일부터 차근차근 합쳐 만들수록 중간 점수가 많이 붙어요.</strong> 작은 과일이 나왔을 때 아무 데나 버리지 말고 짝을 찾아 주는 게 점수 면에서도 이득인 이유예요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">수박을 만들기까지 쌓이는 점수 (체리부터 만들 때)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="수박을 만들기까지 쌓이는 점수 (체리부터 만들 때)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">1,000</text><line class="viz-grid" x1="52" x2="570" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">2,000</text><line class="viz-grid" x1="52" x2="570" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">3,000</text><line class="viz-grid" x1="52" x2="570" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">4,000</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">5,000</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">감</text><text class="viz-ax" x="138.3" y="272" text-anchor="middle">사과</text><text class="viz-ax" x="224.7" y="272" text-anchor="middle">배</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">복숭아</text><text class="viz-ax" x="397.3" y="272" text-anchor="middle">파인애플</text><text class="viz-ax" x="483.7" y="272" text-anchor="middle">멜론</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">수박</text><polyline class="viz-line s1" points="52.0,252.0 138.3,249.3 224.7,243.7 311.0,232.0 397.3,208.3 483.7,160.5 570.0,64.4"/><circle class="viz-dot s1" cx="52.0" cy="252.0" r="4"><title>감 · 누적 점수 42점</title></circle><circle class="viz-dot s1" cx="138.3" cy="249.3" r="4"><title>사과 · 누적 점수 99점</title></circle><circle class="viz-dot s1" cx="224.7" cy="243.7" r="4"><title>배 · 누적 점수 219점</title></circle><circle class="viz-dot s1" cx="311.0" cy="232.0" r="4"><title>복숭아 · 누적 점수 466점</title></circle><circle class="viz-dot s1" cx="397.3" cy="208.3" r="4"><title>파인애플 · 누적 점수 968점</title></circle><circle class="viz-dot s1" cx="483.7" cy="160.5" r="4"><title>멜론 · 누적 점수 1,981점</title></circle><circle class="viz-dot s1" cx="570.0" cy="64.4" r="4"><title>수박 · 누적 점수 4,017점</title></circle><text class="viz-val" x="578.0" y="68.4">4,017</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">한 단계 올라갈 때마다 누적 점수가 약 2배씩 늘어요.</p><div class="viz-cap">단위: 점 · 자료: 단계별 점수 × 필요한 합치기 횟수를 직접 계산 (스미스 게임 연구소 점수 규칙)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>누적 점수</th></tr></thead><tbody><tr><td>감</td><td>42</td></tr><tr><td>사과</td><td>99</td></tr><tr><td>배</td><td>219</td></tr><tr><td>복숭아</td><td>466</td></tr><tr><td>파인애플</td><td>968</td></tr><tr><td>멜론</td><td>1,981</td></tr><tr><td>수박</td><td>4,017</td></tr></tbody></table></div></details></figure>
<h2 id="s4">고득점 요령 1: 큰 과일은 한쪽 구석으로</h2>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/suika-game-tips-high-score-2.svg" alt="왼쪽은 큰 과일부터 크기 순서로 바닥에 늘어선 좋은 배치, 오른쪽은 큰 과일이 가운데 있고 작은 과일이 틈에 갇힌 나쁜 배치" width="800" height="450" loading="lazy" decoding="async"><figcaption>좋은 배치와 나쁜 배치 비교</figcaption></figure>
<p>가장 효과가 큰 습관이에요. 가장 큰 과일을 왼쪽이든 오른쪽이든 <strong>한쪽 벽에 붙여 두기로 정하고 끝까지 지켜요.</strong> 큰 과일이 가운데 있으면 양옆에 생긴 좁은 공간이 둘로 나뉘고, 그 틈에 들어간 작은 과일은 짝을 만나기 어려워져요. 반대로 구석에 있으면 남은 공간이 한 덩어리로 넓게 남아서 과일을 굴려 넣을 자리가 생겨요.</p>
<p>어느 쪽 구석을 고를지는 취향이지만, 한 판 안에서 바꾸지 않는 게 중요해요. 처음 사과가 왼쪽에 생겼다면 그다음 배, 복숭아도 왼쪽에서 키우는 식이에요.</p>
<h2 id="s5">고득점 요령 2: 크기 순서대로 줄 세우기</h2>
<p>큰 과일을 구석에 뒀다면, 그 옆으로 <strong>한 단계씩 작은 과일이 차례로 오게</strong> 배치해요. 멜론 옆에 파인애플, 그 옆에 복숭아, 그 옆에 배… 이런 식이에요. 이렇게 두면 반대편 끝에서 작은 과일이 합쳐져 한 단계 커질 때마다 바로 옆 과일과 크기가 같아져서 연쇄가 이어져요. 사과가 생기면 옆의 사과와 합쳐져 배가 되고, 그 배가 옆의 배와 합쳐지는 식이에요.</p>
<p>완벽하게 지키기는 어렵지만, "옆에 놓인 과일과 크기가 한 단계 이상 차이 나지 않게" 정도만 의식해도 판이 훨씬 깔끔해져요. 순서가 깨지면 그 자리에서 무리하게 고치려 하지 말고, 깨진 부분 위에 같은 과일을 모아 한 단계 키워서 다시 이어 붙이는 게 안전해요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">고득점 요령 3: 작은 과일이 갇히지 않게</h2>
<p>체리와 딸기는 작아서 큰 과일 사이 틈으로 쏙 빠져요. 한번 큰 과일 아래쪽에 갇히면 같은 과일이 닿을 길이 막혀서 판이 끝날 때까지 자리만 차지해요. 이걸 막는 요령은 세 가지예요.</p>
<ol><li><strong>다음 과일 칸을 보고 떨어뜨려요.</strong> 지금 체리가 있고 다음도 체리면, 두 번째 체리를 첫 체리 바로 위에 떨어뜨려 즉시 합쳐요.</li><li><strong>작은 과일은 같은 과일 위나 열린 자리에.</strong> 짝이 없을 때는 큰 과일 사이 틈이 아니라 위가 트인 자리, 보통 크기 순서 줄의 가장 작은 쪽 끝에 둬요.</li><li><strong>틈에 빠진 과일은 위에서 같은 과일로 덮어 합쳐요.</strong> 이미 갇혔다면 같은 과일을 그 위로 떨어뜨려 닿게 하면 합쳐지면서 위로 올라오기도 해요.</li></ol>
<h2 id="s7">고득점 요령 4: 위험선 근처에서의 판단</h2>
<p>과일이 위험선 가까이 쌓였을 때는 새 과일을 높이 쌓이는 쪽이 아니라 <strong>합쳐질 수 있는 곳</strong>에 떨어뜨려야 해요. 합쳐지면 과일 두 개가 하나가 되니 전체 높이가 내려가요. 합칠 곳이 없다면 가장 낮은 자리에 둬요.</p>
<p>이 버전은 떨어뜨린 지 1초가 지나지 않은 과일, 그리고 움직이고 있는 과일은 게임 오버 판정에서 빼요. 그래서 위쪽에 걸친 과일이 있어도 바로 끝나지 않아요. 점선이 깜빡일 때 2초라는 여유가 있다는 걸 기억하고 침착하게 한 수를 고르세요.</p>
<h2 id="s8">수박 게임 흔한 실수</h2>
<div class="table-wrap"><table><thead><tr><th>실수</th><th>왜 문제인가</th><th>이렇게 바꿔요</th></tr></thead><tbody><tr><td>가운데에만 계속 떨어뜨림</td><td>큰 과일이 가운데 생겨 공간이 둘로 나뉨</td><td>처음부터 한쪽 구석을 큰 과일 자리로 정하기</td></tr><tr><td>다음 과일을 안 봄</td><td>짝이 바로 올 걸 모르고 엉뚱한 곳에 둠</td><td>떨어뜨리기 전에 다음 과일 칸 확인</td></tr><tr><td>서둘러 연속으로 떨어뜨림</td><td>앞 과일이 자리 잡기 전에 쌓여 위로 튐</td><td>과일이 멈추는 걸 보고 다음 수 두기</td></tr><tr><td>작은 과일을 큰 과일 사이에 버림</td><td>갇혀서 끝까지 자리만 차지</td><td>열린 자리나 같은 과일 위에 두기</td></tr><tr><td>한라봉과 감을 헷갈림</td><td>합쳐지지 않는 과일을 붙여 둠</td><td>감은 더 크고 초록 꼭지가 있음</td></tr></tbody></table></div>
<p>특히 첫 번째 실수가 가장 흔해요. 손가락을 화면 가운데에 두고 있다가 그대로 떼면 가운데에 쌓이거든요. 모바일에서는 누른 채 좌우로 끌어 위치를 정한 뒤 떼는 방식이니, 한 번 끌어 주는 습관만 들여도 달라져요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s9">수박 게임을 더 재미있게 즐기는 방법</h2>
<p>혼자 기록을 깨는 것도 좋지만, 친구와 같은 판 수로 겨루면 더 재미있어요. 게임이 끝나면 결과 공유 버튼으로 점수와 가장 크게 만든 과일을 보낼 수 있어요. "이번엔 멜론까지 갔다"처럼 최고 과일로 겨루는 것도 방법이에요.</p>
<p>합치기 감각이 비슷한 게임으로는 <a href="https://game.smithlab.co.kr/games/2048/">2048</a>이 있어요. 2048도 큰 숫자를 한쪽 구석에 고정하고 크기 순서로 줄 세우는 전략이 기본이라, <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 공략 글</a>에서 정리한 원리가 수박 게임에도 거의 그대로 통해요. 차이가 있다면 2048은 칸이 정해져 있고 수박 게임은 과일이 굴러가는 물리 퍼즐이라, 같은 자리에 떨어뜨려도 매번 조금씩 다르게 쌓인다는 점이에요.</p>
<h2 id="s10">자주 묻는 질문</h2>
<h3>수박 게임 과일 순서가 어떻게 되나요?</h3>
<p>체리, 딸기, 포도, 한라봉, 감, 사과, 배, 복숭아, 파인애플, 멜론, 수박 순서예요. 같은 과일 두 개가 닿으면 바로 다음 순서 과일로 합쳐져요. 떨어지는 건 체리부터 감까지 다섯 가지뿐이고, 사과부터는 합쳐서만 만들 수 있어요.</p>
<h3>수박 게임 점수는 어떻게 계산되나요?</h3>
<p>스미스 게임 연구소 버전은 새로 만들어진 과일에 따라 딸기 1점, 포도 3점, 한라봉 6점, 감 10점, 사과 15점… 수박 55점처럼 삼각수로 점수를 줘요. 수박 두 개가 합쳐져 사라지면 66점이에요. 원작이나 다른 버전은 점수표가 다를 수 있어요.</p>
<h3>수박 하나를 만들려면 과일이 얼마나 필요한가요?</h3>
<p>한 단계 올라갈 때마다 두 개가 하나로 합쳐지니, 수박 하나는 체리 2의 10제곱 = 1,024개 분량이에요. 감으로 치면 64개예요. 실제로는 여러 크기가 섞여 떨어지니 이보다 적게 떨어뜨려도 되지만, 그만큼 판을 오래 유지해야 한다는 뜻이에요.</p>
<h3>게임 오버는 언제 되나요?</h3>
<p>떨어뜨린 지 1초가 지난 과일이 점선 위에 걸친 채 거의 멈춰서 2초 넘게 있으면 끝나요. 떨어지거나 튀어 오르는 중에 점선을 넘는 건 세지 않아요. 점선이 빨갛게 깜빡이면 위험 신호예요.</p>
<h3>모바일과 PC 중 어디가 유리한가요?</h3>
<p>물리 계산은 같아서 점수 차이는 없어요. 모바일은 끌어서 위치를 잡고 떼는 방식이라 정확하게 놓기 좋고, PC는 마우스로 빠르게 위치를 바꿀 수 있어요. 키보드로 할 때는 ←→로 옮기고 Space로 떨어뜨려요.</p>
<h2 id="s11">정리</h2>
<p>수박 게임은 체리에서 수박까지 11단계를 합쳐 올라가는 퍼즐이고, 수박 하나가 체리 1,024개 분량이라 결국 <strong>판을 얼마나 오래 깔끔하게 유지하느냐</strong>의 게임이에요. 큰 과일은 한쪽 구석에, 나머지는 크기 순서대로, 작은 과일은 같은 과일 위나 열린 자리에. 이 세 가지 원칙과 "다음 과일 칸 보기" 습관만 들이면 점수가 눈에 띄게 올라가요.</p>
<p>지금 바로 <a href="https://game.smithlab.co.kr/games/suika-game/">수박 게임</a>에서 한쪽 구석 전략으로 한 판 해 보세요. 숫자를 합치는 <a href="https://game.smithlab.co.kr/games/2048/">2048</a>이나 손이 바쁜 <a href="https://game.smithlab.co.kr/games/breakout/">벽돌깨기</a>도 함께 즐겨 보면 좋아요.</p>
    ]]></description>
    </item>
    <item>
      <title>테트리스 잘하는 법, 쌓기 기본부터 T-스핀과 점수 계산까지</title>
      <link>https://game.smithlab.co.kr/posts/games/tetris-tips-tspin-scoring/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/tetris-tips-tspin-scoring/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>테트리스를 오래 했는데 점수가 늘 비슷하게 끝난다면, 손이 느려서가 아니라 <strong>줄을 지우는 방식</strong> 때문일 가능성이 커요. 결론부터 말하면 <strong>테트리스 점수는 한 번에 여러 줄을 지울수록 줄당 점수가 커지도록 설계돼 있어서, 1줄씩 네 번 지우면 400점이지만 4줄을 한 번에 지우면 800점, T 블록을 돌려 넣어 2줄을 지우는 T-스핀 더블은 1,200점이에요(레벨 1 기준).</strong> 그래서 고득점은 "빨리 지우기"가 아니라 "크게 지울 자리를 만들어 두기"에서 나와요.</p>
<p>이 글은 스미스 게임 연구소 <a href="https://game.smithlab.co.kr/games/tetris/">테트리스</a>의 실제 점수 규칙을 기준으로 정리했어요. 이 게임은 현대 테트리스 표준(가이드라인)에 맞춰 7-bag 블록 순서, SRS 회전과 벽 차기, 고스트·홀드, T-스핀·백투백·콤보 점수를 넣었기 때문에, 여기서 익힌 요령은 다른 현대 테트리스에서도 거의 그대로 통해요. 처음 하는 분은 1~3번 항목만, 어느 정도 하는 분은 T-스핀과 손 동작 줄이기까지 읽어 보세요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>줄 지우기 점수는 레벨 1 기준 싱글 100, 더블 300, 트리플 500, 테트리스 800점이고, 모두 현재 레벨을 곱해요. 줄당으로 보면 테트리스가 싱글의 두 배예요.</li><li>T-스핀 더블은 1,200점으로 테트리스보다 높고, 테트리스·T-스핀을 연달아 하면 백투백으로 1.5배가 돼요.</li><li>기본기는 "9칸 평평하게 쌓고 한 줄 비우기", "다음 블록 5개 보고 놓을 자리 미리 정하기", "애매한 블록은 홀드에 맡기기" 세 가지예요.</li><li>블록은 7개 한 묶음으로 섞여 나오는 7-bag 방식이라, 같은 블록 사이에 다른 블록이 12개보다 많이 끼지 않아요. I 블록을 하염없이 기다릴 일은 없어요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">테트리스 기본 규칙 다시 보기</h2>
<p>테트리스는 1984년 소련 과학 아카데미 컴퓨터 센터의 알렉세이 파지트노프가 만든 블록 퍼즐 게임이에요. 정사각형 네 개로 이뤄진 블록(테트로미노) 일곱 가지가 위에서 떨어지고, 이걸 돌리고 옮겨서 가로 10칸짜리 줄을 빈틈없이 채우면 그 줄이 사라져요. 블록이 위로 넘쳐 새 블록이 나올 자리가 막히면 게임 오버예요.</p>
<div class="table-wrap"><table><thead><tr><th>블록</th><th>모양</th><th>주로 쓰는 곳</th></tr></thead><tbody><tr><td>I (일자)</td><td>4칸 일직선</td><td>비워 둔 한 줄에 세로로 넣어 테트리스</td></tr><tr><td>O (네모)</td><td>2×2</td><td>평평한 바닥 어디든, 돌려도 모양이 같음</td></tr><tr><td>T</td><td>ㅗ 모양</td><td>울퉁불퉁한 곳 메우기, T-스핀</td></tr><tr><td>S · Z</td><td>지그재그</td><td>한 칸 단차가 있는 곳</td></tr><tr><td>J · L</td><td>ㄱ·ㄴ 모양</td><td>벽 쪽, 두 칸 깊이 구멍</td></tr></tbody></table></div>
<p>현대 테트리스에는 옛날 게임에 없던 도구가 몇 가지 있어요. 스미스 게임 연구소 <a href="https://game.smithlab.co.kr/games/tetris/">테트리스</a>에도 모두 들어 있어요.</p>
<ul><li><strong>고스트</strong>: 지금 블록을 바로 내리면 떨어질 자리를 테두리로 보여 줘요. 하드 드롭 전에 위치를 확인하는 용도예요.</li><li><strong>홀드</strong>: 지금 블록을 옆 칸에 맡겨 두고 나중에 꺼내 써요. 블록 하나가 고정될 때까지 한 번만 쓸 수 있어요.</li><li><strong>다음 블록(NEXT)</strong>: 앞으로 나올 블록 5개를 미리 보여 줘요.</li><li><strong>하드 드롭</strong>: 블록을 바로 바닥까지 내리고 고정해요. 소프트 드롭은 빨리 내리기만 하고, 바닥에서도 0.5초 동안 옮기거나 돌릴 수 있어요(이동·회전할 때마다 연장, 최대 15번).</li></ul>
<h2 id="s2">테트리스 점수 계산표, 한 번에 많이 지울수록 이득</h2>
<p>점수 규칙을 알면 어떤 플레이가 이득인지가 바로 보여요. 아래는 스미스 게임 연구소 테트리스의 점수표이고, 줄 지우기와 T-스핀 점수에는 <strong>현재 레벨을 곱해요</strong>.</p>
<div class="table-wrap"><table><thead><tr><th>동작</th><th>점수 (× 레벨)</th><th>줄당 점수</th></tr></thead><tbody><tr><td>싱글 (1줄)</td><td>100</td><td>100</td></tr><tr><td>더블 (2줄)</td><td>300</td><td>150</td></tr><tr><td>트리플 (3줄)</td><td>500</td><td>약 167</td></tr><tr><td>테트리스 (4줄)</td><td>800</td><td>200</td></tr><tr><td>T-스핀 (줄 없음)</td><td>400</td><td>-</td></tr><tr><td>T-스핀 싱글</td><td>800</td><td>800</td></tr><tr><td>T-스핀 더블</td><td>1,200</td><td>600</td></tr><tr><td>T-스핀 트리플</td><td>1,600</td><td>약 533</td></tr><tr><td>T-스핀 미니 (줄 없음 / 싱글 / 더블)</td><td>100 / 200 / 400</td><td>-</td></tr><tr><td>백투백</td><td>테트리스·T-스핀 줄 지우기를 연달아 하면 1.5배</td><td>-</td></tr><tr><td>콤보</td><td>블록마다 연달아 줄을 지우면 +50 × 콤보 수</td><td>-</td></tr><tr><td>소프트 / 하드 드롭</td><td>칸당 1 / 2 (레벨 무관)</td><td>-</td></tr></tbody></table></div>
<figure class="viz viz-hbar"><figcaption class="viz-title">줄 하나 지울 때 얻는 점수 (레벨 1, 백투백 제외)</figcaption><svg viewBox="0 0 640 254" role="img" aria-label="줄 하나 지울 때 얻는 점수 (레벨 1, 백투백 제외)" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="104" y="29" text-anchor="end">싱글</text><rect class="s1" x="114" y="15" width="57.0" height="20" rx="3"><title>싱글 · 100점</title></rect><text class="viz-val" x="177.0" y="29">100점</text><text class="viz-ax lg" x="104" y="63" text-anchor="end">더블</text><rect class="s1" x="114" y="49" width="85.5" height="20" rx="3"><title>더블 · 150점</title></rect><text class="viz-val" x="205.5" y="63">150점</text><text class="viz-ax lg" x="104" y="97" text-anchor="end">트리플</text><rect class="s1" x="114" y="83" width="95.2" height="20" rx="3"><title>트리플 · 167점</title></rect><text class="viz-val" x="215.2" y="97">167점</text><text class="viz-ax lg" x="104" y="131" text-anchor="end">테트리스</text><rect class="s1" x="114" y="117" width="114.0" height="20" rx="3"><title>테트리스 · 200점</title></rect><text class="viz-val" x="234.0" y="131">200점</text><text class="viz-ax lg" x="104" y="165" text-anchor="end">T-스핀 트리플</text><rect class="s1" x="114" y="151" width="303.8" height="20" rx="3"><title>T-스핀 트리플 · 533점</title></rect><text class="viz-val" x="423.8" y="165">533점</text><text class="viz-ax lg" x="104" y="199" text-anchor="end">T-스핀 더블</text><rect class="s1" x="114" y="185" width="342.0" height="20" rx="3"><title>T-스핀 더블 · 600점</title></rect><text class="viz-val" x="462.0" y="199">600점</text><text class="viz-ax lg" x="104" y="233" text-anchor="end">T-스핀 싱글</text><rect class="s1" x="114" y="219" width="456.0" height="20" rx="3"><title>T-스핀 싱글 · 800점</title></rect><text class="viz-val" x="576.0" y="233">800점</text></svg><p class="viz-note">같은 줄을 지워도 방식에 따라 점수가 최대 8배까지 벌어져요.</p><div class="viz-cap">단위: 점 · 자료: 스미스 게임 연구소 테트리스 점수 규칙으로 직접 계산 (동작 점수 ÷ 지운 줄 수)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>줄당 점수</th></tr></thead><tbody><tr><td>싱글</td><td>100</td></tr><tr><td>더블</td><td>150</td></tr><tr><td>트리플</td><td>167</td></tr><tr><td>테트리스</td><td>200</td></tr><tr><td>T-스핀 트리플</td><td>533</td></tr><tr><td>T-스핀 더블</td><td>600</td></tr><tr><td>T-스핀 싱글</td><td>800</td></tr></tbody></table></div></details></figure>
<p>예를 들어 레벨이 1에 머문다고 가정하고 40줄을 지운다고 해 볼게요. 전부 싱글로 지우면 40 × 100 = 4,000점이에요. 전부 테트리스로 지우면 10번 × 800 = 8,000점이고, 두 번째부터는 백투백이 붙어서 800 + 9 × 1,200 = 11,600점이 돼요. 같은 40줄인데 세 배 가까이 차이가 나요. 실제로는 10줄마다 레벨이 올라 곱하는 수가 커지니, 높은 레벨에서 큰 동작을 할수록 격차는 더 벌어져요.</p>
<p>다만 무조건 4줄만 노리면 안 돼요. 쌓이는 높이가 위험하면 싱글·더블로 내려서 살아남는 게 먼저예요. 게임 오버가 되면 그 뒤로 받을 수 있었던 점수가 전부 사라지니까요.</p>
<h2 id="s3">레벨과 낙하 속도, 10줄마다 빨라져요</h2>
<p>레벨은 지운 줄 수 10줄마다 1씩 올라요(0~9줄 레벨 1, 10~19줄 레벨 2…). 블록이 한 칸 떨어지는 시간은 현대 테트리스에서 널리 쓰는 공식 (0.8 − (레벨 − 1) × 0.007)^(레벨 − 1)초를 그대로 써요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">레벨별 블록이 한 칸 떨어지는 시간</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="레벨별 블록이 한 칸 떨어지는 시간" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">250</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">500</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">750</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">1,000</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">1</text><text class="viz-ax" x="126.0" y="272" text-anchor="middle">3</text><text class="viz-ax" x="200.0" y="272" text-anchor="middle">5</text><text class="viz-ax" x="274.0" y="272" text-anchor="middle">7</text><text class="viz-ax" x="348.0" y="272" text-anchor="middle">9</text><text class="viz-ax" x="422.0" y="272" text-anchor="middle">11</text><text class="viz-ax" x="496.0" y="272" text-anchor="middle">13</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">15</text><polyline class="viz-line s1" points="52.0,18.0 89.0,66.9 126.0,108.2 163.0,142.4 200.0,170.2 237.0,192.2 274.0,209.2 311.0,222.1 348.0,231.8 385.0,238.9 422.0,243.9 459.0,247.4 496.0,249.8 533.0,251.4 570.0,252.3"/><circle class="viz-dot s1" cx="52.0" cy="18.0" r="4"><title>1 · 한 칸 낙하 시간 1,000ms</title></circle><circle class="viz-dot s1" cx="89.0" cy="66.9" r="4"><title>2 · 한 칸 낙하 시간 793ms</title></circle><circle class="viz-dot s1" cx="126.0" cy="108.2" r="4"><title>3 · 한 칸 낙하 시간 618ms</title></circle><circle class="viz-dot s1" cx="163.0" cy="142.4" r="4"><title>4 · 한 칸 낙하 시간 473ms</title></circle><circle class="viz-dot s1" cx="200.0" cy="170.2" r="4"><title>5 · 한 칸 낙하 시간 355ms</title></circle><circle class="viz-dot s1" cx="237.0" cy="192.2" r="4"><title>6 · 한 칸 낙하 시간 262ms</title></circle><circle class="viz-dot s1" cx="274.0" cy="209.2" r="4"><title>7 · 한 칸 낙하 시간 190ms</title></circle><circle class="viz-dot s1" cx="311.0" cy="222.1" r="4"><title>8 · 한 칸 낙하 시간 135ms</title></circle><circle class="viz-dot s1" cx="348.0" cy="231.8" r="4"><title>9 · 한 칸 낙하 시간 94ms</title></circle><circle class="viz-dot s1" cx="385.0" cy="238.9" r="4"><title>10 · 한 칸 낙하 시간 64ms</title></circle><circle class="viz-dot s1" cx="422.0" cy="243.9" r="4"><title>11 · 한 칸 낙하 시간 43ms</title></circle><circle class="viz-dot s1" cx="459.0" cy="247.4" r="4"><title>12 · 한 칸 낙하 시간 28ms</title></circle><circle class="viz-dot s1" cx="496.0" cy="249.8" r="4"><title>13 · 한 칸 낙하 시간 18ms</title></circle><circle class="viz-dot s1" cx="533.0" cy="251.4" r="4"><title>14 · 한 칸 낙하 시간 11ms</title></circle><circle class="viz-dot s1" cx="570.0" cy="252.3" r="4"><title>15 · 한 칸 낙하 시간 7ms</title></circle><text class="viz-val" x="578.0" y="256.3">7</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">레벨 5에서 이미 레벨 1의 약 3배, 레벨 10에서는 약 16배 빨라요.</p><div class="viz-cap">단위: ms · 자료: (0.8 - (레벨-1)×0.007)^(레벨-1) 초 공식으로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>한 칸 낙하 시간</th></tr></thead><tbody><tr><td>1</td><td>1,000</td></tr><tr><td>2</td><td>793</td></tr><tr><td>3</td><td>618</td></tr><tr><td>4</td><td>473</td></tr><tr><td>5</td><td>355</td></tr><tr><td>6</td><td>262</td></tr><tr><td>7</td><td>190</td></tr><tr><td>8</td><td>135</td></tr><tr><td>9</td><td>94</td></tr><tr><td>10</td><td>64</td></tr><tr><td>11</td><td>43</td></tr><tr><td>12</td><td>28</td></tr><tr><td>13</td><td>18</td></tr><tr><td>14</td><td>11</td></tr><tr><td>15</td><td>7</td></tr></tbody></table></div></details></figure>
<p>표를 보면 레벨 1~4 구간은 생각할 시간이 넉넉하지만, 레벨 8(약 0.13초)부터는 블록이 화면 위에서 바닥까지 3초도 안 걸려요. 레벨 13 이후는 거의 순식간에 바닥에 닿아요. 그래서 <strong>느린 레벨에서 쌓기 습관을 확실히 들여 두는 것</strong>이 중요해요. 빠른 레벨에서는 생각할 여유가 없어서, 몸에 밴 습관이 그대로 나오거든요.</p>
<h2 id="s4">1단계: 평평하게 쌓고 한 줄 비우기</h2>
<p>초보 때 가장 효과가 큰 습관은 <strong>9칸만 평평하게 쌓고, 맨 오른쪽(또는 맨 왼쪽) 한 칸 너비는 비워 두는 것</strong>이에요. 비워 둔 줄을 흔히 "우물"이라고 불러요. 바닥 9칸이 4줄 높이로 차면 I 블록을 세로로 세워 우물에 넣어 한 번에 4줄을 지워요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/tetris-tips-tspin-scoring-1.svg" alt="테트리스 쌓기 기본형: 왼쪽은 9칸을 평평하게 쌓고 오른쪽 한 줄을 비워 I 블록으로 4줄을 지우는 모양, 오른쪽은 T 블록을 돌려 넣어 2줄을 지우는 T-스핀 더블 자리" width="800" height="450" loading="lazy" decoding="async"><figcaption>한 줄 비우기와 T-스핀 더블 자리</figcaption></figure>
<p>평평하게 쌓을 때 기억할 점은 세 가지예요.</p>
<ol><li><strong>구멍(덮인 빈칸)을 만들지 않기.</strong> 빈칸 위에 블록이 덮이면 그 줄은 위를 다 걷어 내기 전까지 지울 수 없어요. 구멍 하나가 사실상 줄 하나를 묶어 두는 셈이에요.</li><li><strong>높낮이 차이를 1~2칸 안으로 유지하기.</strong> 3칸 이상 깊은 골이 생기면 I 블록 말고는 메울 블록이 없어요. 깊은 골이 우물 말고 또 생기면 I 블록이 두 곳에서 필요해져 금방 꼬여요.</li><li><strong>S·Z는 단차에 맞춰 눕히기.</strong> S는 왼쪽이 한 칸 낮은 곳에, Z는 오른쪽이 한 칸 낮은 곳에 눕히면 구멍 없이 들어가요. 평평한 바닥에 S·Z를 눕히면 거의 항상 구멍이 생기니, 그럴 땐 세워서 벽 쪽에 붙이거나 홀드하세요.</li></ol>
<p>우물은 벽 쪽(맨 왼쪽이나 맨 오른쪽)에 두는 게 쉬워요. 가운데 우물은 양쪽을 따로 평평하게 맞춰야 해서 어렵고, 새 블록이 나오는 가운데 근처가 높아지면 위험해져요.</p>
<h2 id="s5">2단계: 다음 블록 5개와 7-bag 활용하기</h2>
<p>화면 오른쪽 NEXT 칸에는 다음 블록이 5개 보여요. 지금 블록만 보고 놓으면 다음 블록이 들어갈 자리가 없어지는 일이 자주 생겨요. <strong>지금 블록을 놓기 전에 다음 블록 한두 개가 어디 들어갈지까지 정하는 습관</strong>을 들이면 구멍이 눈에 띄게 줄어요.</p>
<p>블록 순서는 완전한 무작위가 아니라 <strong>7-bag</strong> 방식이에요. 일곱 가지 블록을 한 묶음(가방)에 넣고 섞어서 차례로 내보내고, 다 쓰면 새 가방을 섞어요. 그래서 이런 성질이 생겨요.</p>
<div class="table-wrap"><table><thead><tr><th>성질</th><th>이유</th></tr></thead><tbody><tr><td>7개마다 모든 블록이 정확히 한 번씩 나와요</td><td>한 가방에 일곱 가지가 하나씩 들어 있어서</td></tr><tr><td>같은 블록 사이에 다른 블록은 최대 12개</td><td>한 가방의 맨 앞, 다음 가방의 맨 끝에 나오는 경우가 최악</td></tr><tr><td>같은 블록이 세 번 연속 나오지 않아요</td><td>연속은 가방 끝과 다음 가방 시작이 겹칠 때 최대 2번</td></tr><tr><td>S·Z만 계속 나오는 일은 최대 4개까지</td><td>가방 끝에 S·Z, 다음 가방 시작에 S·Z가 오는 경우</td></tr></tbody></table></div>
<p>이걸 알면 "I 블록이 언제 올까" 같은 불안이 줄어요. I가 한 번 나오면 늦어도 13번째 블록 안에 다시 I가 나오니, 우물은 4줄 깊이까지만 파고 나머지 블록으로 계속 바닥을 다지면 돼요. 이번 가방에서 I가 이미 나왔다면 다음 가방까지 기다려야 한다는 것도 계산할 수 있어요.</p>
<h2 id="s6">3단계: 홀드는 "애매한 블록 보관함"</h2>
<p>홀드는 지금 블록을 맡겨 두고 나중에 꺼내는 기능이에요. 잘 쓰는 방법은 크게 두 가지예요.</p>
<ul><li><strong>I 블록 아껴 두기.</strong> 우물이 아직 4줄 깊이가 안 됐는데 I가 나오면 홀드에 넣어 두고, 바닥이 다 쌓였을 때 꺼내 테트리스를 해요.</li><li><strong>지금 놓기 나쁜 블록 미루기.</strong> 평평한 바닥에 S·Z가 나왔는데 다음 블록이 더 잘 맞는다면 홀드해서 순서를 바꿔요.</li></ul>
<p>주의할 점은 홀드가 블록 하나당 한 번이라는 거예요. 홀드에서 꺼낸 블록은 바로 다시 홀드할 수 없고, 고정될 때까지 놓아야 해요. 그래서 홀드 칸에 이미 놓기 어려운 블록이 들어 있으면, 꺼내는 순간 그 블록을 처리해야 해요. <strong>홀드 칸에는 어디든 잘 들어가는 블록(I, T, O)을 두는 편</strong>이 안전해요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s7">4단계: T-스핀, 테트리스보다 큰 한 방</h2>
<p>T-스핀은 T 블록을 회전시켜 좁은 틈에 끼워 넣는 기술이에요. 점수표에서 봤듯 T-스핀 더블은 1,200점, T-스핀 트리플은 1,600점이라 테트리스(800점)보다 높아요.</p>
<h3>T-스핀으로 인정되는 조건</h3>
<p>스미스 게임 연구소 테트리스는 현대 테트리스에서 널리 쓰는 <strong>3코너 규칙</strong>으로 판정해요.</p>
<ol><li>고정되기 직전 마지막 동작이 <strong>회전</strong>이어야 해요. 회전한 뒤 좌우로 옮기거나 한 칸이라도 떨어지면 일반 블록으로 처리돼요.</li><li>T 블록 중심을 둘러싼 대각선 네 칸 중 <strong>세 칸 이상</strong>이 벽이나 블록으로 막혀 있어야 해요.</li><li>T가 뾰족하게 향한 쪽의 두 칸이 모두 막혀 있으면 정식 T-스핀, 한쪽만 막혀 있으면 <strong>T-스핀 미니</strong>예요(점수가 훨씬 낮아요). 단, 벽 차기의 마지막 단계로 들어간 경우는 정식으로 쳐요.</li></ol>
<h3>T-스핀 더블 자리 만드는 법</h3>
<p>그림의 오른쪽처럼, 2줄에 걸쳐 "위는 세 칸, 아래는 가운데 한 칸"이 빈 ㅜ 모양 구멍을 만들고, 그 구멍 한쪽 위를 블록이 덮도록(지붕) 쌓아요. T 블록을 구멍 위까지 세워서 내린 다음 마지막에 회전하면 ㅜ 모양으로 쏙 들어가면서 2줄이 동시에 지워져요.</p>
<p>처음에는 이 자리를 의도적으로 만들기 어려워요. 연습 순서를 추천하자면 이래요.</p>
<ol><li>평평하게 쌓다가 우연히 ㅜ 모양 구멍이 생기면 T를 홀드해 두고 기다려요.</li><li>고스트 블록으로 T가 회전해서 들어갈 자리를 확인하고, 아래까지 소프트 드롭한 뒤 마지막에 회전해요(하드 드롭 후에는 회전할 수 없어요).</li><li>익숙해지면 지붕이 될 블록(주로 L·J·S·Z)을 일부러 놓아 자리를 만들어요.</li></ol>
<p>T-스핀을 노리다가 쌓기가 엉망이 되면 손해예요. 레벨이 낮을 때 연습하고, 높이가 절반을 넘으면 욕심을 버리는 게 좋아요.</p>
<h2 id="s8">5단계: 백투백과 콤보로 점수 굴리기</h2>
<p><strong>백투백</strong>은 테트리스나 T-스핀 줄 지우기를 사이에 일반 줄 지우기 없이 연달아 하면 1.5배를 주는 규칙이에요. 중간에 줄을 안 지우는 블록이 몇 개 끼어도 끊기지 않고, 싱글·더블·트리플 같은 일반 줄 지우기를 하는 순간 끊겨요. 그래서 테트리스를 노리는 중이라면 급하지 않은 이상 싱글로 줄을 정리하지 않는 게 이득이에요.</p>
<p><strong>콤보</strong>는 블록을 놓을 때마다 연달아 줄을 지우면 쌓이는 보너스예요. 두 번째 연속부터 50 × 콤보 수 × 레벨이 더해져요. 블록 하나라도 줄을 못 지우면 끊겨요. 바닥이 높아졌을 때 싱글·더블을 연달아 지우며 내려오면 콤보 점수가 붙어서 생각보다 손해가 적어요.</p>
<p>판을 완전히 비우는 <strong>퍼펙트 클리어</strong>도 있어요. 1~4줄로 비우면 레벨 × 800 / 1,200 / 1,800 / 2,000점이 추가돼요. 게임 시작 직후처럼 바닥이 낮을 때만 노릴 만해요.</p>
<h2 id="s9">6단계: 손 동작 줄이기 (피네스)</h2>
<p>레벨이 올라가면 생각보다 손이 먼저 바빠져요. 이때 필요한 게 "피네스(finesse)", 즉 <strong>원하는 자리에 가장 적은 입력으로 블록을 놓는 습관</strong>이에요. 대부분의 자리는 이동과 회전을 합쳐 2~3번 입력이면 충분해요.</p>
<ul><li><strong>반대 방향 회전 쓰기.</strong> 시계 방향으로 세 번 돌릴 걸 반시계(Z 키)로 한 번에 돌려요.</li><li><strong>벽까지 꾹 누르기.</strong> 벽 쪽으로 보낼 땐 방향키를 꾹 누르고 있으면 약 0.16초 뒤부터 빠르게 연속 이동해 벽에 붙어요. 한 칸씩 여러 번 누르는 것보다 빠르고 정확해요.</li><li><strong>회전 먼저, 이동 나중.</strong> 회전하면 블록의 중심이 조금 바뀌어요. 먼저 돌리고 옮기면 자리를 덜 헷갈려요.</li><li><strong>하드 드롭 기본.</strong> 위치가 맞으면 Space로 바로 내려요. 소프트 드롭은 T-스핀처럼 바닥에서 마지막 조작이 필요할 때만 써요.</li></ul>
<p>모바일에서는 필드를 탭하면 회전(왼쪽 1/3을 탭하면 반대 방향), 좌우로 끌면 한 칸씩 이동, 아래로 빠르게 튕기면 하드 드롭, 위로 튕기면 홀드예요. 화면 아래 버튼으로도 똑같이 할 수 있어요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s10">테트리스 흔한 실수 5가지</h2>
<div class="table-wrap"><table><thead><tr><th>실수</th><th>왜 손해인지</th><th>고치는 법</th></tr></thead><tbody><tr><td>가운데부터 높이 쌓기</td><td>새 블록이 나오는 가운데가 막혀 게임 오버가 빨라짐</td><td>양옆부터 채우고 가운데는 낮게</td></tr><tr><td>구멍 위에 계속 덮기</td><td>덮인 줄은 위를 다 지울 때까지 못 지움</td><td>구멍이 생기면 위쪽 줄부터 정리</td></tr><tr><td>우물을 두 개 만들기</td><td>I 블록이 두 곳에 필요해짐</td><td>우물은 한 곳, 나머지는 평평하게</td></tr><tr><td>홀드 칸을 묵히기</td><td>꺼낼 때 놓기 어려운 블록이 남음</td><td>홀드엔 I·T·O 위주로</td></tr><tr><td>레벨이 오르면 급해져서 대충 놓기</td><td>구멍이 몰려서 순식간에 쌓임</td><td>느린 레벨에서 같은 패턴 반복 연습</td></tr></tbody></table></div>
<p>비슷한 고전 게임 공략이 궁금하다면 <a href="https://game.smithlab.co.kr/posts/games/snake-game-strategy-high-score/">스네이크 게임 공략, 최고 점수 올리는 법</a>과 <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 공략</a>도 참고해 보세요. 두 게임 모두 "한쪽 구석을 정해 두고 쌓는다"는 원리가 테트리스의 우물과 닮아 있어요.</p>
<h2 id="s11">자주 묻는 질문</h2>
<h3>테트리스 점수는 어떻게 계산되나요?</h3>
<p>한 번에 지운 줄 수에 따라 레벨 1 기준 싱글 100, 더블 300, 트리플 500, 테트리스 800점이고, 여기에 현재 레벨을 곱해요. T-스핀은 줄 없이 400, 싱글 800, 더블 1,200, 트리플 1,600점이에요. 테트리스·T-스핀을 연달아 하면 백투백으로 1.5배, 연속으로 줄을 지우면 콤보 보너스가 붙어요.</p>
<h3>테트리스에서 I 블록이 안 나오면 어떻게 하나요?</h3>
<p>현대 테트리스는 7개 블록을 한 묶음으로 섞는 7-bag 방식이라, 같은 블록 사이에 다른 블록이 12개보다 많이 끼지 않아요. 우물은 4줄 깊이까지만 파고 나머지 블록으로 바닥을 계속 평평하게 다지면서 기다리면 돼요. I가 일찍 나오면 홀드에 넣어 두는 것도 방법이에요.</p>
<h3>T-스핀이 인정되지 않는 이유가 뭔가요?</h3>
<p>마지막 동작이 회전이 아니었을 가능성이 커요. 회전한 뒤 좌우로 옮기거나 한 칸 떨어지면 일반 블록으로 처리돼요. 또 T 중심의 대각선 네 칸 중 세 칸 이상이 막혀 있어야 해서, 지붕이 없는 열린 자리에서 돌리면 T-스핀이 되지 않아요.</p>
<h3>벽에 붙은 블록이 회전되면서 옆으로 움직여요. 버그인가요?</h3>
<p>아니에요. 현대 테트리스 표준 회전 규칙(SRS)의 벽 차기예요. 제자리에서 돌릴 수 없으면 정해진 순서대로 최대 다섯 위치를 시도해서 들어가는 곳으로 옮겨 돌려요. T-스핀도 이 규칙 덕분에 가능해요.</p>
<h3>하드 드롭과 소프트 드롭은 언제 쓰나요?</h3>
<p>위치가 확실하면 하드 드롭(Space)으로 바로 내려 시간을 아끼고, 바닥에서 회전이나 이동이 더 필요할 때만 소프트 드롭(↓)을 써요. 하드 드롭은 칸당 2점, 소프트 드롭은 칸당 1점이 붙지만 줄 지우기 점수에 비하면 작은 편이에요.</p>
<h2 id="s12">정리</h2>
<p>테트리스 점수를 올리는 핵심은 <strong>크게 지울 자리를 만들어 두는 것</strong>이에요. 9칸을 평평하게 쌓고 한 줄을 비워 테트리스를 노리고, 다음 블록 5개를 보며 놓을 자리를 미리 정하고, 애매한 블록은 홀드에 맡기는 것까지만 익혀도 점수가 두세 배로 뛰어요. 여기에 T-스핀 더블과 백투백을 더하면 같은 줄 수로 훨씬 높은 점수를 낼 수 있어요.</p>
<p>설명만 읽기보다 직접 해 보는 게 빨라요. 설치 없이 바로 되는 <a href="https://game.smithlab.co.kr/games/tetris/">테트리스</a>에서 오늘 정리한 순서대로 한 단계씩 연습해 보세요. 최고 점수와 최다 줄 수는 브라우저에 저장돼서 다음에 실력이 얼마나 늘었는지 비교할 수 있어요.</p>
    ]]></description>
    </item>
    <item>
      <title>두더지 잡기 잘하는 법, 60초 고득점 요령과 반응속도 이야기</title>
      <link>https://game.smithlab.co.kr/posts/games/whack-a-mole-reaction-tips/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/whack-a-mole-reaction-tips/</guid>
      <pubDate>Fri, 16 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>두더지 잡기를 하다 보면 처음 15초는 여유롭다가 40초가 넘어가면 손이 꼬이고, 폭탄을 한 번 잘못 쳐서 점수가 뚝 떨어지는 일이 많아요. 결론부터 말하면 <strong>두더지 잡기 고득점은 손이 빠른 것보다 콤보를 끊지 않는 데서 나와요. 스미스 게임 연구소 <a href="https://game.smithlab.co.kr/games/whack-a-mole/">두더지 잡기</a> 기준으로 60초 한 판에 나오는 대상은 평균 약 100개(일반 약 78, 황금 약 8, 폭탄 약 13)이고, 모든 두더지를 0.4초 안에 잡으면 평균 약 375점이지만 놓치는 비율이 5%만 돼도 약 258점, 10%면 약 194점으로 내려가요.</strong> 콤보 배수가 최대 ×4까지 올라가기 때문에, 한 번 끊길 때마다 다음 몇 마리가 ×1로 돌아가는 손해가 생각보다 커요.</p>
<p>이 글은 게임 코드에 들어 있는 실제 숫자로 설명해요. 두더지가 얼마나 오래 머무는지, 언제 몇 마리가 동시에 나오는지, 폭탄은 언제부터 나오는지, 콤보가 정확히 언제 끊기는지를 알고 나면 "그냥 빨리 누르기"보다 훨씬 안정적으로 점수가 나와요. 마지막에는 사람의 반응 시간이 보통 어느 정도인지, 그리고 두더지 잡기의 평균 반응 시간이 왜 반응속도 테스트보다 느리게 나오는지도 정리했어요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>60초 동안 두더지가 머무는 시간은 1.15초에서 0.55초로, 출현 간격은 0.85초에서 0.40초로 일정하게 줄어들고, 동시에 나오는 수는 15초에 2마리, 36초에 3마리로 늘어나요.</li><li>연속 5번째 명중부터 ×2, 10번째 ×3, 15번째부터 ×4라서, 점수의 대부분은 긴 콤보 구간에서 나와요.</li><li>폭탄(8초 이후 등장)은 치면 −2점에 콤보까지 0이 되지만, 그냥 두면 아무 손해가 없어요. 폭탄 앞에서 참는 게 가장 큰 점수 차이를 만들어요.</li><li>시선은 가운데에 두고 주변 시야로 움직임을 잡고, 손은 가운데 줄에 올려 둔 채로 시작하면 이동 거리가 가장 짧아요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">두더지 잡기 게임 규칙 한눈에 보기</h2>
<p>먼저 규칙을 정확히 알아야 전략이 생겨요. 스미스 게임 연구소 두더지 잡기는 3×3, 모두 9개의 구멍이 있고 한 판은 60초예요. 구멍을 탭하거나 클릭하면 망치가 내려가고, 그 순간 두더지가 나와 있으면 잡혀요. 모바일은 손가락이 닿는 순간 판정하기 때문에 손을 뗄 때까지 기다리지 않아요.</p>
<div class="table-wrap"><table><thead><tr><th>대상</th><th>나오는 확률</th><th>점수</th><th>콤보</th></tr></thead><tbody><tr><td>일반 두더지</td><td>나머지 전부</td><td>+1 × 콤보 배수</td><td>+1</td></tr><tr><td>황금 두더지</td><td>8%</td><td>+3 × 콤보 배수</td><td>+1</td></tr><tr><td>폭탄</td><td>8초 이후 15%</td><td>−2 (배수 없음)</td><td>0으로 초기화</td></tr><tr><td>빈 구멍 헛손질</td><td>—</td><td>0</td><td>0으로 초기화</td></tr><tr><td>두더지를 놓침</td><td>—</td><td>0</td><td>0으로 초기화</td></tr></tbody></table></div>
<p>점수는 0점 아래로는 내려가지 않아요. 그리고 중요한 점 하나, <strong>폭탄은 치지 않고 그냥 들어가게 두면 점수도 콤보도 그대로예요.</strong> 놓쳐서 콤보가 끊기는 건 일반 두더지와 황금 두더지뿐이에요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/whack-a-mole-reaction-tips-1.svg" alt="스미스 게임 연구소 두더지 잡기의 3×3 구멍이 숫자 패드 789/456/123과 QWE/ASD/ZXC 키에 어떻게 대응하는지 보여 주는 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>구멍 9개와 키보드 배치. 같은 위치의 키가 같은 구멍이에요.</figcaption></figure>
<h2 id="s2">출현 속도 곡선: 60초 동안 얼마나 빨라질까</h2>
<p>두더지 출현 일정은 화면 프레임이 아니라 게임 시간으로 계산해요. 그래서 120Hz 화면이든 30fps로 버벅이는 기기든 같은 순서, 같은 간격으로 나와요. 경과 시간을 60초로 나눈 비율을 p라고 하면 공식은 이래요.</p>
<ul><li>두더지가 머무는 시간 = 1,150 − 600 × p (밀리초)</li><li>다음 두더지까지 간격 = 850 − 450 × p (밀리초)</li><li>동시에 나와 있을 수 있는 최대 수 = 0~15초 1마리, 15~36초 2마리, 36초부터 3마리</li></ul>
<p>여기에 올라오는 동작 0.12초와 내려가는 동작 0.12초가 앞뒤로 붙어요. 내려가기 시작한 뒤에도 0.06초까지는 맞힐 수 있게 여유를 뒀어요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">경과 시간별 두더지가 머무는 시간과 출현 간격</figcaption><div class="viz-legend"><span><i class="s1"></i>머무는 시간</span><span><i class="s2"></i>출현 간격</span></div><svg viewBox="0 0 640 300" role="img" aria-label="경과 시간별 두더지가 머무는 시간과 출현 간격" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="570" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">400</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">600</text><line class="viz-grid" x1="52" x2="570" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">800</text><line class="viz-grid" x1="52" x2="570" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">1,000</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">1,200</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">0초</text><text class="viz-ax" x="138.3" y="272" text-anchor="middle">10초</text><text class="viz-ax" x="224.7" y="272" text-anchor="middle">20초</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">30초</text><text class="viz-ax" x="397.3" y="272" text-anchor="middle">40초</text><text class="viz-ax" x="483.7" y="272" text-anchor="middle">50초</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">60초</text><polyline class="viz-line s1" points="52.0,27.8 138.3,47.5 224.7,67.2 311.0,86.8 397.3,106.5 483.7,126.2 570.0,145.8"/><circle class="viz-dot s1" cx="52.0" cy="27.8" r="4"><title>0초 · 머무는 시간 1,150밀리초</title></circle><circle class="viz-dot s1" cx="138.3" cy="47.5" r="4"><title>10초 · 머무는 시간 1,050밀리초</title></circle><circle class="viz-dot s1" cx="224.7" cy="67.2" r="4"><title>20초 · 머무는 시간 950밀리초</title></circle><circle class="viz-dot s1" cx="311.0" cy="86.8" r="4"><title>30초 · 머무는 시간 850밀리초</title></circle><circle class="viz-dot s1" cx="397.3" cy="106.5" r="4"><title>40초 · 머무는 시간 750밀리초</title></circle><circle class="viz-dot s1" cx="483.7" cy="126.2" r="4"><title>50초 · 머무는 시간 650밀리초</title></circle><circle class="viz-dot s1" cx="570.0" cy="145.8" r="4"><title>60초 · 머무는 시간 550밀리초</title></circle><text class="viz-val" x="578.0" y="149.8">550</text><polyline class="viz-line s2" points="52.0,86.8 138.3,101.6 224.7,116.3 311.0,131.1 397.3,145.8 483.7,160.6 570.0,175.3"/><circle class="viz-dot s2" cx="52.0" cy="86.8" r="4"><title>0초 · 출현 간격 850밀리초</title></circle><circle class="viz-dot s2" cx="138.3" cy="101.6" r="4"><title>10초 · 출현 간격 775밀리초</title></circle><circle class="viz-dot s2" cx="224.7" cy="116.3" r="4"><title>20초 · 출현 간격 700밀리초</title></circle><circle class="viz-dot s2" cx="311.0" cy="131.1" r="4"><title>30초 · 출현 간격 625밀리초</title></circle><circle class="viz-dot s2" cx="397.3" cy="145.8" r="4"><title>40초 · 출현 간격 550밀리초</title></circle><circle class="viz-dot s2" cx="483.7" cy="160.6" r="4"><title>50초 · 출현 간격 475밀리초</title></circle><circle class="viz-dot s2" cx="570.0" cy="175.3" r="4"><title>60초 · 출현 간격 400밀리초</title></circle><text class="viz-val" x="578.0" y="179.3">400</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">두 값 모두 직선으로 줄어들어요. 끝무렵엔 시작의 절반 안팎이에요.</p><div class="viz-cap">단위: 밀리초 · 자료: 스미스 게임 연구소 두더지 잡기 코드(1150 − 600p, 850 − 450p)로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>머무는 시간</th><th>출현 간격</th></tr></thead><tbody><tr><td>0초</td><td>1,150</td><td>850</td></tr><tr><td>10초</td><td>1,050</td><td>775</td></tr><tr><td>20초</td><td>950</td><td>700</td></tr><tr><td>30초</td><td>850</td><td>625</td></tr><tr><td>40초</td><td>750</td><td>550</td></tr><tr><td>50초</td><td>650</td><td>475</td></tr><tr><td>60초</td><td>550</td><td>400</td></tr></tbody></table></div></details></figure>
<p>숫자로 보면 체감과 딱 맞아요. 처음에는 두더지가 1.15초나 머무르고 한 번에 1마리만 나오니 사실상 연습 구간이에요. 15초에 동시 2마리가 풀리면서 첫 번째 고비가 오고, 36초에 3마리가 되면서 두 번째 고비가 와요. 마지막 10초는 머무는 시간이 0.6초 남짓이라, 두더지를 "본 다음 생각하고" 치면 늦어요.</p>
<h3>황금 두더지는 더 짧게 나와요</h3>
<p>황금 두더지는 같은 시점의 일반 두더지보다 머무는 시간이 60%예요. 시작할 때는 0.69초, 30초에는 0.51초, 끝무렵에는 0.33초밖에 안 돼요. 그래서 황금 두더지는 보이자마자 다른 것보다 먼저 치는 게 맞아요. 두더지 두 마리가 동시에 있을 때도 황금을 먼저 치고 일반으로 넘어가면 둘 다 잡을 확률이 높아요.</p>
<h2 id="s3">콤보 배수가 점수를 결정해요</h2>
<p>콤보는 헛손질, 폭탄, 놓침 없이 연속으로 맞힌 횟수예요. 배수는 연속 1~4번째 명중 ×1, 5~9번째 ×2, 10~14번째 ×3, 15번째부터 ×4예요. 15번째부터는 일반 두더지 하나가 4점, 황금 두더지 하나가 12점이에요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/whack-a-mole-reaction-tips-2.svg" alt="연속 명중 횟수에 따라 콤보 배수가 ×1, ×2, ×3, ×4로 올라가고 헛손질·폭탄·놓침에서 0으로 돌아가는 구조를 보여 주는 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>콤보 배수는 5번째, 10번째, 15번째 명중에서 올라가요.</figcaption></figure>
<p>콤보 15를 만들기까지 얻는 점수를 계산해 보면 배수의 무게가 보여요. 일반 두더지만 잡는다고 하면 1~4번째 4점, 5~9번째 10점, 10~14번째 15점이라 처음 14마리로 29점을 얻어요. 그다음부터는 한 마리에 4점이니, 15번째 이후 7~8마리만 잡아도 앞의 14마리만큼 점수가 나와요. 반대로 콤보 20에서 한 번 끊기면, 다시 ×4에 도달할 때까지 14마리 동안 29점밖에 못 얻어요. 계속 ×4였다면 56점이었으니 실수 한 번에 약 27점, 거기에 폭탄이었다면 2점을 더 잃어요.</p>
<h3>놓치는 비율과 평균 점수 (시뮬레이션)</h3>
<p>실제 게임 규칙을 그대로 옮긴 시뮬레이션으로, 폭탄은 하나도 안 치고 일반·황금 두더지를 나온 지 0.4초 만에 치는 사람이 일정 비율로 놓친다고 가정해 40판씩 돌려 봤어요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">놓치는 비율별 60초 평균 점수 (반응 0.4초, 폭탄은 안 침)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="놓치는 비율별 60초 평균 점수 (반응 0.4초, 폭탄은 안 침)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">300</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">400</text><rect class="s1" x="69.3" y="32.8" width="80.6" height="221.2" rx="3"><title>0% · 평균 점수 375점</title></rect><text class="viz-val" x="109.6" y="27.8" text-anchor="middle">375</text><text class="viz-ax" x="109.6" y="272" text-anchor="middle">0%</text><rect class="s1" x="184.5" y="101.8" width="80.6" height="152.2" rx="3"><title>5% · 평균 점수 258점</title></rect><text class="viz-val" x="224.8" y="96.8" text-anchor="middle">258</text><text class="viz-ax" x="224.8" y="272" text-anchor="middle">5%</text><rect class="s1" x="299.7" y="139.5" width="80.6" height="114.5" rx="3"><title>10% · 평균 점수 194점</title></rect><text class="viz-val" x="340.0" y="134.5" text-anchor="middle">194</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">10%</text><rect class="s1" x="414.9" y="182.6" width="80.6" height="71.4" rx="3"><title>20% · 평균 점수 121점</title></rect><text class="viz-val" x="455.2" y="177.6" text-anchor="middle">121</text><text class="viz-ax" x="455.2" y="272" text-anchor="middle">20%</text><rect class="s1" x="530.1" y="201.5" width="80.6" height="52.5" rx="3"><title>30% · 평균 점수 89점</title></rect><text class="viz-val" x="570.4" y="196.5" text-anchor="middle">89</text><text class="viz-ax" x="570.4" y="272" text-anchor="middle">30%</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">놓치는 비율이 5%만 돼도 평균 점수가 약 31% 줄어요.</p><div class="viz-cap">단위: 점 · 자료: 스미스 게임 연구소 두더지 잡기 규칙으로 판마다 40회 시뮬레이션해 평균 (출현 위치·종류는 무작위)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>평균 점수</th></tr></thead><tbody><tr><td>0%</td><td>375</td></tr><tr><td>5%</td><td>258</td></tr><tr><td>10%</td><td>194</td></tr><tr><td>20%</td><td>121</td></tr><tr><td>30%</td><td>89</td></tr></tbody></table></div></details></figure>
<p>20번에 1번 놓치는 것만으로 점수가 3분의 2 수준으로 내려가요. 이게 두더지 잡기 점수가 "손이 빠른 사람"보다 "실수 안 하는 사람" 순서로 갈리는 이유예요. 모르는 구멍을 미리 찍어 치는 습관도 같은 이유로 손해예요. 빈 구멍을 치면 헛손질이 되고 콤보가 0이 되니까요.</p>
<h2 id="s4">반응 속도가 느려지면 몇 점이 빠질까</h2>
<p>이번에는 반대로 실수 없이 모두 치되, 두더지가 나온 뒤 치기까지 걸리는 시간만 바꿔서 같은 시뮬레이션을 돌려 봤어요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">두더지를 치기까지 걸리는 시간별 60초 평균 점수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="두더지를 치기까지 걸리는 시간별 60초 평균 점수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">300</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">400</text><rect class="s1" x="69.3" y="31.6" width="80.6" height="222.4" rx="3"><title>0.3초 · 평균 점수 377점</title></rect><text class="viz-val" x="109.6" y="26.6" text-anchor="middle">377</text><text class="viz-ax" x="109.6" y="272" text-anchor="middle">0.3초</text><rect class="s1" x="184.5" y="32.8" width="80.6" height="221.2" rx="3"><title>0.4초 · 평균 점수 375점</title></rect><text class="viz-val" x="224.8" y="27.8" text-anchor="middle">375</text><text class="viz-ax" x="224.8" y="272" text-anchor="middle">0.4초</text><rect class="s1" x="299.7" y="77.0" width="80.6" height="177.0" rx="3"><title>0.5초 · 평균 점수 300점</title></rect><text class="viz-val" x="340.0" y="72.0" text-anchor="middle">300</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">0.5초</text><rect class="s1" x="414.9" y="125.4" width="80.6" height="128.6" rx="3"><title>0.6초 · 평균 점수 218점</title></rect><text class="viz-val" x="455.2" y="120.4" text-anchor="middle">218</text><text class="viz-ax" x="455.2" y="272" text-anchor="middle">0.6초</text><rect class="s1" x="530.1" y="176.7" width="80.6" height="77.3" rx="3"><title>0.7초 · 평균 점수 131점</title></rect><text class="viz-val" x="570.4" y="171.7" text-anchor="middle">131</text><text class="viz-ax" x="570.4" y="272" text-anchor="middle">0.7초</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">0.4초 안이면 거의 다 잡지만, 0.5초부터 끝무렵 두더지를 놓치기 시작해요.</p><div class="viz-cap">단위: 점 · 자료: 스미스 게임 연구소 두더지 잡기 규칙으로 각 40회 시뮬레이션해 평균</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>평균 점수</th></tr></thead><tbody><tr><td>0.3초</td><td>377</td></tr><tr><td>0.4초</td><td>375</td></tr><tr><td>0.5초</td><td>300</td></tr><tr><td>0.6초</td><td>218</td></tr><tr><td>0.7초</td><td>131</td></tr></tbody></table></div></details></figure>
<p>0.3초와 0.4초는 점수 차이가 거의 없어요. 두 경우 모두 두더지를 거의 다 잡기 때문이에요. 차이는 0.5초부터 생겨요. 이때부터 끝무렵의 짧은 황금 두더지(0.33초 남짓)와 마지막 구간 일반 두더지를 놓치기 시작하고, 놓칠 때마다 콤보가 끊겨서 점수가 급하게 떨어져요. 0.7초가 되면 한 판에 20마리 넘게 놓치고 평균 점수는 131점까지 내려가요.</p>
<p>즉 목표는 "모든 두더지를 0.4~0.5초 안에 꾸준히"예요. 이보다 더 빠르게 만드는 것보다, 이 속도를 60초 내내 실수 없이 유지하는 게 점수에 훨씬 크게 작용해요.</p>
<h2 id="s5">고득점 요령 1: 가운데를 보고 주변 시야로 잡기</h2>
<p>9개 구멍을 눈으로 하나씩 훑으면 시선을 옮기는 데만 시간이 걸려요. 시선은 가운데(5번) 구멍쯤에 고정하고, 나머지 8개는 주변 시야로 "뭔가 올라왔다"는 움직임만 잡는 게 빨라요. 사람 눈은 시야 바깥쪽에서 색이나 모양보다 움직임을 먼저 알아채기 때문에, 두더지가 올라오는 동작(0.12초)이 좋은 신호가 돼요.</p>
<p>화면이 작은 모바일이라면 기기를 조금 멀리 두는 것도 도움이 돼요. 판 전체가 시야 가운데에 더 쉽게 들어오거든요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">고득점 요령 2: 쉬는 자세를 정해 두기</h2>
<p>치고 나서 손을 어디에 두느냐가 다음 반응 시간을 정해요.</p>
<ul><li><strong>키보드</strong>: 숫자 패드라면 검지·중지·약지를 4 5 6에, 왼손이라면 A S D에 올려 두세요. 윗줄과 아랫줄은 손가락을 위아래로 한 칸만 움직이면 되고, 손 전체를 옮길 일이 없어요. 한글 입력 상태여도 키 위치로 판정해서 그대로 동작해요.</li><li><strong>마우스</strong>: 친 뒤에는 커서를 가운데 구멍 근처로 돌려놓는 습관을 들이면 어느 구멍까지든 이동 거리가 짧아져요.</li><li><strong>모바일</strong>: 한 손 엄지보다 양손 검지가 유리해요. 왼쪽 열은 왼손, 오른쪽 열은 오른손, 가운데 열은 가까운 쪽 손으로 나누면 손이 겹치지 않아요.</li></ul>
<h2 id="s7">고득점 요령 3: 폭탄 앞에서 한 박자 참기</h2>
<p>폭탄은 8초부터 나오고, 나오는 대상 중 약 15%예요. 한 판에 평균 13개쯤 나와요. 폭탄은 검은색 둥근 모양에 불붙은 심지가 있어서 두더지와 실루엣이 달라요. 문제는 반사적으로 치는 습관이에요.</p>
<p>폭탄 한 번의 손해는 −2점이 전부가 아니에요. 앞에서 계산한 것처럼 콤보 15 이상에서 끊기면 다시 ×4까지 올라가는 동안 약 27점을 손해 봐요. 그러니 "올라오는 순간 친다"가 아니라 "올라오는 순간 보고, 두더지면 친다"로 순서를 정해 두세요. 실루엣 확인에 0.1초 정도를 써도, 앞의 반응 시간 시뮬레이션에서 보듯 0.4초 안에만 치면 점수 손해가 거의 없어요.</p>
<h2 id="s8">고득점 요령 4: 시간대별로 전략 바꾸기</h2>
<p>출현 곡선을 알면 구간마다 할 일이 달라져요.</p>
<div class="table-wrap"><table><thead><tr><th>구간</th><th>상황</th><th>할 일</th></tr></thead><tbody><tr><td>0~8초</td><td>1마리씩, 1.15초 안팎, 폭탄 없음</td><td>콤보 쌓기. 여기서 ×2까지는 꼭 만들기</td></tr><tr><td>8~15초</td><td>폭탄 등장, 아직 1마리씩</td><td>폭탄 실루엣에 눈 익히기</td></tr><tr><td>15~36초</td><td>동시 2마리, 1.0→0.8초</td><td>황금 먼저, 그다음 가까운 쪽</td></tr><tr><td>36~60초</td><td>동시 3마리, 0.8→0.55초</td><td>가운데 시선 고정, 헛손질 금지</td></tr></tbody></table></div>
<p>마지막 구간에서 세 마리가 동시에 있으면 다 잡으려다 헛손질하기 쉬워요. 하나 놓쳐도 콤보는 끊기니, 차라리 확실한 것부터 순서대로 정확히 치는 게 결과가 좋아요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s9">반응 시간에 대한 솔직한 이야기</h2>
<p>사람이 화면의 변화를 보고 손으로 반응하는 단순 시각 반응 시간은 흔히 <strong>약 200~250밀리초(0.2~0.25초)</strong> 정도로 이야기해요. 물론 사람마다, 그날 컨디션과 기기 지연에 따라 달라지고, 화면 주사율과 입력 장치에서 생기는 수십 밀리초의 지연도 그 안에 섞여요.</p>
<p>두더지 잡기가 끝나면 나오는 <strong>평균 반응 시간</strong>은 이보다 길게 나오는 게 정상이에요. 이 게임의 평균 반응 시간은 두더지가 올라오기 시작한 순간부터 망치로 맞힌 순간까지를 명중마다 재서 평균 낸 값이라, 그 안에 "아홉 곳 중 어디인지 찾기", "두더지인지 폭탄인지 구분하기", "손가락이나 커서를 옮기기"가 모두 들어가요. 한 곳만 보고 색이 바뀌면 누르는 단순 반응보다 단계가 많으니 400~500밀리초가 나와도 이상한 일이 아니에요.</p>
<p>내 순수 반응 속도가 궁금하면 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>로 따로 재 보세요. 두 숫자를 비교하면 "찾기와 구분하기"에 몇 밀리초를 쓰고 있는지 감이 와요. 반응 속도가 무엇이고 어떻게 재는지는 <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응속도 설명 글</a>에 정리해 뒀어요.</p>
<h3>정확도는 이렇게 계산해요</h3>
<p>결과 화면의 정확도는 맞힌 두더지 수를 전체 휘두른 횟수로 나눈 값이에요. 빈 구멍 헛손질과 폭탄을 친 것도 휘두른 횟수에 들어가요. 놓친 두더지는 휘두른 게 아니라서 정확도에는 안 들어가고 따로 "놓침"으로 보여 줘요. 정확도 100%인데 점수가 낮다면 놓침이 많은 거고, 놓침은 적은데 정확도가 낮다면 미리 찍어 치는 습관이 있는 거예요.</p>
<h2 id="s10">자주 묻는 질문</h2>
<h3>두더지 잡기 최고 점수는 몇 점까지 나올 수 있나요?</h3>
<p>출현 위치와 종류가 무작위라 판마다 달라요. 모든 두더지를 0.3~0.4초 안에 놓치지 않고 잡고 폭탄을 하나도 안 친다고 가정한 시뮬레이션에서 평균 약 375점이 나왔어요. 황금 두더지가 많이 나온 판은 이보다 높아질 수 있어요.</p>
<h3>폭탄을 그냥 두면 손해인가요?</h3>
<p>아니에요. 폭탄은 치지 않으면 점수도 콤보도 그대로예요. 놓쳤을 때 콤보가 끊기는 건 일반·황금 두더지뿐이니, 폭탄은 무시하는 게 정답이에요.</p>
<h3>키보드와 터치 중 어느 쪽이 유리한가요?</h3>
<p>키보드는 손가락이 이미 키 위에 있어서 이동 거리가 거의 없어요. 숫자 패드(789/456/123)나 왼손 Q W E / A S D / Z X C 배치에 익숙해지면 마우스보다 빠른 경우가 많아요. 모바일 터치는 손가락이 닿는 순간 판정해서 클릭보다 느리지 않아요.</p>
<h3>화면이 버벅이면 두더지가 더 빨리 나오나요?</h3>
<p>아니에요. 두더지 출현은 게임 시간으로 계산해서 화면 프레임 수와 상관없이 같은 간격으로 나와요. 다른 창이나 탭으로 가면 자동으로 일시정지되고, 그동안 시간도 흐르지 않아요.</p>
<h3>평균 반응 시간이 반응속도 테스트보다 느린 이유는 뭔가요?</h3>
<p>반응속도 테스트는 한 곳만 보고 바뀌면 누르는 단순 반응이에요. 두더지 잡기는 아홉 곳 중 위치를 찾고, 폭탄인지 구분하고, 손을 옮기는 과정이 더해져서 시간이 더 걸려요.</p>
<h2 id="s11">정리</h2>
<p>두더지 잡기 점수는 콤보 배수가 대부분을 만들어요. 60초 동안 두더지가 머무는 시간은 1.15초에서 0.55초로 줄고, 15초와 36초에 동시 출현 수가 늘어나요. 이 흐름에 맞춰 처음엔 콤보를 쌓고, 중반엔 황금 두더지를 먼저 치고, 후반엔 헛손질 없이 확실한 것부터 치는 게 기본이에요. 폭탄은 그냥 두면 손해가 없으니 참는 게 이득이에요.</p>
<p>지금 <a href="https://game.smithlab.co.kr/games/whack-a-mole/">두더지 잡기</a>로 한 판 해 보고, <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a> 결과와 비교해 보세요. 타이밍으로 겨루는 게임이 더 궁금하다면 <a href="https://game.smithlab.co.kr/posts/games/stack-tower-game-tips/">스택 쌓기 잘하는 법</a>도 함께 읽어 보세요.</p>
    ]]></description>
    </item>
    <item>
      <title>설치 없는 웹게임 추천 — 친구랑 링크로 바로 하는 브라우저 게임…</title>
      <link>https://game.smithlab.co.kr/posts/games/browser-games-no-install-play-with-friends/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/browser-games-no-install-play-with-friends/</guid>
      <pubDate>Thu, 15 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>점심시간 10분, 친구 기다리는 카페, 회의 시작 전 애매한 시간에 게임 하나 하고 싶은데 앱을 깔기는 부담스러울 때가 있어요. 용량도 아깝고, 회원가입하라는 화면이 뜨면 바로 닫고 싶어지죠. 이럴 때 찾는 게 설치 없는 웹게임이에요.</p>
<p>결론부터 말하면 요즘 브라우저 게임은 <strong>링크 하나</strong>로 열리고, 3D 그래픽이나 친구와의 실시간 대전까지 앱 없이 가능해요. 다만 혼자 할지, 친구와 할지, 회사 와이파이인지에 따라 고를 게임과 확인할 점이 달라요.</p>
<p>이 글에서는 웹게임이 설치 없이 돌아가는 원리, 상황별로 고르는 기준, 친구와 링크로 같이 하는 게임이 어떻게 연결되는지(P2P), 연결이 안 될 때 해결법, 그리고 안전하게 즐기는 체크리스트를 정리했어요. 예시는 스미스 게임 연구소에서 바로 할 수 있는 게임들로 들었어요. 친구랑 바로 붙어 보고 싶다면 <a href="https://game.smithlab.co.kr/games/sky-arena/">스카이 아레나</a>에서 방 링크를 만들어 보내면 돼요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>웹게임은 HTML5·WebGL 같은 브라우저 기본 기술로 돌아가서 설치·가입 없이 링크만 열면 시작돼요. 기록은 보통 그 브라우저 안에만 저장돼요.</li><li>혼자 짧게는 2048·스네이크·지뢰찾기, 머리 쓰기는 숫자 기억력·두뇌 트레이닝, 친구와 함께는 링크로 초대하는 실시간 대전 게임이 잘 맞아요.</li><li>친구와 하는 웹게임 중 일부는 서버 없이 브라우저끼리 직접 연결(P2P)돼요. 회사·학교 와이파이나 일부 모바일망은 이 연결을 막을 수 있어요.</li><li>실행 파일(.exe, .apk) 다운로드를 요구하거나 개인정보를 과하게 묻는 사이트는 '설치 없는 게임'이 아니니 피하세요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">설치 없는 웹게임은 어떻게 돌아갈까</h2>
<p>예전 웹게임은 플래시 플러그인을 깔아야 했어요. 플래시는 2020년 말 지원이 끝났고, 지금의 웹게임은 브라우저에 이미 들어 있는 기술만으로 돌아가요.</p>
<div class="table-wrap"><table><thead><tr><th>기술</th><th>하는 일</th><th>예시</th></tr></thead><tbody><tr><td>HTML5 Canvas</td><td>2D 그림을 빠르게 그리기</td><td>스네이크, 지뢰찾기</td></tr><tr><td>WebGL</td><td>그래픽 카드로 3D 그리기</td><td>3D 비행 대전</td></tr><tr><td>WebRTC</td><td>브라우저끼리 직접 데이터 주고받기</td><td>친구와 실시간 대전</td></tr><tr><td>쿠키·로컬 저장소</td><td>최고 점수·설정을 브라우저에 저장</td><td>최고 기록 유지</td></tr></tbody></table></div>
<p>그래서 "설치 없음"은 정말로 아무것도 안 깐다는 뜻이에요. 페이지를 열면 게임 코드가 함께 내려오고, 탭을 닫으면 끝이에요. 대신 기록은 <strong>그 브라우저에만</strong> 남는 경우가 많아요. 휴대폰에서 세운 2048 최고 점수가 회사 컴퓨터에서는 안 보이는 게 정상이고, 쿠키를 지우면 기록도 사라져요. 기록을 남기고 싶다면 결과 화면을 캡처해 두는 게 가장 확실해요.</p>
<h3>웹게임 기록이 사라지는 경우</h3>
<p>브라우저 저장소에 남은 기록은 생각보다 쉽게 지워져요. <a href="https://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria" target="_blank" rel="noopener">MDN의 저장소 할당량·삭제 기준 문서</a>를 기준으로 정리하면 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>상황</th><th>기록이 남나요?</th><th>이유</th></tr></thead><tbody><tr><td>같은 기기·같은 브라우저로 다시 열기</td><td>남아요</td><td>그 브라우저의 사이트별 저장소에 그대로 있어요</td></tr><tr><td>다른 기기, 또는 크롬↔사파리처럼 다른 브라우저</td><td>안 보여요</td><td>저장소는 브라우저마다 따로예요</td></tr><tr><td>시크릿·InPrivate 창</td><td>창을 닫으면 지워져요</td><td>사생활 보호 모드는 끝날 때 데이터를 삭제해요</td></tr><tr><td>쿠키·사이트 데이터 삭제</td><td>지워져요</td><td>최고 점수도 같은 저장소에 있어요</td></tr><tr><td>사파리에서 7일 넘게 그 사이트를 안 누름</td><td>지워질 수 있어요</td><td>추적 방지가 켜져 있으면 스크립트가 만든 데이터를 정리해요</td></tr><tr><td>저장 공간이 거의 꽉 참</td><td>지워질 수 있어요</td><td>브라우저가 오래 안 쓴 사이트 데이터부터 비워요</td></tr></tbody></table></div>
<p>아이폰 사파리에서 2048을 가끔 하는 경우라면, 일주일 넘게 안 들어가면 최고 기록이 사라질 수 있다는 뜻이에요. 기록을 꼭 남기고 싶다면 캡처를 하거나, 최소한 일주일에 한 번은 열어 보는 게 방법이에요.</p>
<h2 id="s2">상황별 웹게임 추천, 이렇게 고르세요</h2>
<p>웹게임을 고를 땐 "얼마나 시간이 있나"와 "누구랑 하나" 두 가지만 정하면 돼요.</p>
<div class="table-wrap"><table><thead><tr><th>상황</th><th>추천 게임</th><th>이유</th></tr></thead><tbody><tr><td>혼자, 5분 이내</td><td><a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>, <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억력 테스트</a></td><td>한 판이 1분 안팎, 기록 비교가 재밌음</td></tr><tr><td>혼자, 10~20분</td><td><a href="https://game.smithlab.co.kr/games/2048/">2048 게임</a>, <a href="https://game.smithlab.co.kr/games/snake/">스네이크 게임</a>, <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a></td><td>판마다 실력이 늘고 전략이 있음</td></tr><tr><td>부모님과 함께</td><td><a href="https://game.smithlab.co.kr/games/brain-training/">두뇌 트레이닝</a></td><td>큰 글씨, 하루 5분 구성</td></tr><tr><td>타자 연습 겸</td><td><a href="https://game.smithlab.co.kr/games/typing-test/">한글 타자 속도 테스트</a></td><td>타수·정확도가 숫자로 나옴</td></tr><tr><td>친구 2~6명</td><td><a href="https://game.smithlab.co.kr/games/sky-arena/">스카이 아레나</a></td><td>링크로 초대, 실시간 3D 공중전</td></tr></tbody></table></div>
<p>혼자 하는 게임은 "규칙은 쉬운데 전략이 깊은" 게임이 오래 가요. 2048은 큰 수를 한 코너에 고정하는 전략 하나로 실력이 확 갈리고, 지뢰찾기는 1-2-1 같은 패턴을 알면 찍기가 거의 사라져요. 각각의 공략은 <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 게임 공략</a>, <a href="https://game.smithlab.co.kr/posts/games/minesweeper-patterns/">지뢰찾기 공략</a>에 정리해 두었어요.</p>
<p>부모님과 함께할 때는 화면이 단순하고 글씨가 큰 게임이 좋아요. 두뇌 게임이 치매를 막아 준다는 식의 기대보다는 "같이 웃으며 하는 하루 5분"으로 접근하는 게 맞아요. 연구로 확인된 범위는 <a href="https://game.smithlab.co.kr/posts/games/brain-games-dementia-facts/">두뇌 게임과 치매 예방, 어디까지 사실일까</a>에서 따로 다뤘어요.</p>
<h2 id="s3">친구랑 링크로 하는 웹게임, 연결 원리</h2>
<p>친구와 같이 하는 웹게임은 연결 방식이 크게 두 가지예요.</p>
<ol><li><strong>서버 중계 방식</strong> — 모든 플레이어가 게임 회사 서버에 접속하고, 서버가 상태를 모아 다시 나눠 줘요. 안정적이지만 서버 비용이 들어서 보통 가입·광고·유료 아이템이 붙어요.</li><li><strong>P2P(브라우저끼리 직접) 방식</strong> — 처음 만날 때 주소만 교환하고, 그다음부터는 브라우저끼리 WebRTC로 직접 데이터를 주고받아요. 게임 서버가 필요 없어서 가입 없이 링크만으로 시작할 수 있어요.</li></ol>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/browser-games-no-install-play-with-friends-1.svg" alt="같은 4명이 게임할 때 서버 중계 방식은 모두가 게임 서버 하나에 연결돼 연결 4개, P2P 방식은 4명이 서로 직접 이어져 연결 6개가 생기는 구조를 비교한 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>P2P는 서버가 필요 없는 대신, 인원이 늘수록 연결 수가 빠르게 늘어요</figcaption></figure>
<p>스카이 아레나는 두 번째 방식이에요. 접속 정보 교환에만 공개 릴레이를 쓰고, 게임 데이터는 서버에 저장되지 않아요. 방을 만들면 방 코드가 붙은 링크가 생기고, 친구가 그 링크를 열고 입장하면 같은 방에서 만나요. 가장 먼저 들어온 사람이 방장이 되고, 방장이 나가면 다음 사람이 자동으로 이어받아요.</p>
<p>P2P는 사람이 늘수록 연결이 빠르게 늘어나요. 모든 사람이 서로 직접 연결되는 구조라 n명이면 연결이 n×(n−1)÷2개 생기고, 내 브라우저 하나가 n−1명과 동시에 데이터를 주고받아야 해요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">P2P 직접 연결 방식에서 인원별 연결 수</figcaption><div class="viz-legend"><span><i class="s1"></i>전체 연결 수</span><span><i class="s2"></i>내 브라우저 하나의 연결 수</span></div><svg viewBox="0 0 640 300" role="img" aria-label="P2P 직접 연결 방식에서 인원별 연결 수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">30</text><line class="viz-grid" x1="52" x2="628" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">50</text><rect class="s1" x="64.3" y="249.3" width="27.8" height="4.7" rx="3"><title>2명 · 전체 연결 수 1개</title></rect><rect class="s2" x="94.1" y="249.3" width="27.8" height="4.7" rx="3"><title>2명 · 내 브라우저 하나의 연결 수 1개</title></rect><text class="viz-ax" x="93.1" y="272" text-anchor="middle">2명</text><rect class="s1" x="146.6" y="239.8" width="27.8" height="14.2" rx="3"><title>3명 · 전체 연결 수 3개</title></rect><rect class="s2" x="176.4" y="244.6" width="27.8" height="9.4" rx="3"><title>3명 · 내 브라우저 하나의 연결 수 2개</title></rect><text class="viz-ax" x="175.4" y="272" text-anchor="middle">3명</text><rect class="s1" x="228.9" y="225.7" width="27.8" height="28.3" rx="3"><title>4명 · 전체 연결 수 6개</title></rect><rect class="s2" x="258.7" y="239.8" width="27.8" height="14.2" rx="3"><title>4명 · 내 브라우저 하나의 연결 수 3개</title></rect><text class="viz-ax" x="257.7" y="272" text-anchor="middle">4명</text><rect class="s1" x="311.2" y="206.8" width="27.8" height="47.2" rx="3"><title>5명 · 전체 연결 수 10개</title></rect><rect class="s2" x="341.0" y="235.1" width="27.8" height="18.9" rx="3"><title>5명 · 내 브라우저 하나의 연결 수 4개</title></rect><text class="viz-ax" x="340.0" y="272" text-anchor="middle">5명</text><rect class="s1" x="393.5" y="183.2" width="27.8" height="70.8" rx="3"><title>6명 · 전체 연결 수 15개</title></rect><rect class="s2" x="423.3" y="230.4" width="27.8" height="23.6" rx="3"><title>6명 · 내 브라우저 하나의 연결 수 5개</title></rect><text class="viz-ax" x="422.3" y="272" text-anchor="middle">6명</text><rect class="s1" x="475.8" y="121.8" width="27.8" height="132.2" rx="3"><title>8명 · 전체 연결 수 28개</title></rect><rect class="s2" x="505.6" y="221.0" width="27.8" height="33.0" rx="3"><title>8명 · 내 브라우저 하나의 연결 수 7개</title></rect><text class="viz-ax" x="504.6" y="272" text-anchor="middle">8명</text><rect class="s1" x="558.1" y="41.6" width="27.8" height="212.4" rx="3"><title>10명 · 전체 연결 수 45개</title></rect><rect class="s2" x="587.9" y="211.5" width="27.8" height="42.5" rx="3"><title>10명 · 내 브라우저 하나의 연결 수 9개</title></rect><text class="viz-ax" x="586.9" y="272" text-anchor="middle">10명</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">6명이면 연결 15개, 10명이면 45개로 늘어요. 브라우저끼리 대전하는 게임이 보통 소규모 인원으로 제한되는 이유예요.</p><div class="viz-cap">단위: 개 · 자료: 모든 참가자가 서로 직접 연결된다고 보고 n×(n−1)÷2, n−1로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>전체 연결 수</th><th>내 브라우저 하나의 연결 수</th></tr></thead><tbody><tr><td>2명</td><td>1</td><td>1</td></tr><tr><td>3명</td><td>3</td><td>2</td></tr><tr><td>4명</td><td>6</td><td>3</td></tr><tr><td>5명</td><td>10</td><td>4</td></tr><tr><td>6명</td><td>15</td><td>5</td></tr><tr><td>8명</td><td>28</td><td>7</td></tr><tr><td>10명</td><td>45</td><td>9</td></tr></tbody></table></div></details></figure>
<h2 id="s4">친구랑 연결이 안 될 때 해결법</h2>
<p>P2P 웹게임에서 "친구가 안 보여요"는 대부분 네트워크 문제예요. 집 공유기나 통신사는 여러 기기가 공인 IP 하나를 나눠 쓰게 하는 NAT를 쓰는데, 브라우저끼리 직접 연결하려면 이 NAT를 넘어야 해요. <a href="https://developer.mozilla.org/en-US/docs/Web/API/WebRTC_API/Protocols" target="_blank" rel="noopener">MDN의 WebRTC 프로토콜 설명</a>에 나오는 단계를 쉽게 풀면 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>단계</th><th>하는 일</th><th>실패하는 경우</th></tr></thead><tbody><tr><td>시그널링</td><td>방 코드로 서로의 접속 정보를 교환해요</td><td>방 코드가 다르거나 릴레이에 접속이 안 될 때</td></tr><tr><td>STUN</td><td>"바깥에서 본 내 주소"를 알아내요</td><td>UDP가 막힌 회사·학교 망</td></tr><tr><td>직접 연결 시도</td><td>두 브라우저가 서로의 주소로 동시에 문을 두드려요</td><td>양쪽 다 엄격한 NAT(대칭형 NAT)일 때</td></tr><tr><td>TURN 중계(있을 때만)</td><td>직접 연결이 안 되면 중계 서버를 거쳐요</td><td>중계 서버가 없는 게임은 여기서 실패</td></tr></tbody></table></div>
<p>TURN 중계는 모든 게임 데이터가 지나가서 비용이 크기 때문에, 무료 P2P 웹게임은 이 단계를 두지 않는 경우가 많아요. 그래서 한쪽 네트워크만 바꿔도 연결이 되는 일이 흔해요.</p>
<p>연결 실패는 이런 환경에서 자주 생겨요. 스카이 아레나 안내에도 나와 있듯 이런 환경에서 자주 생겨요.</p>
<ul><li><strong>회사·학교·공공 와이파이</strong> — 방화벽이 P2P에 쓰는 UDP 연결을 막는 경우가 많아요.</li><li><strong>일부 모바일 데이터망</strong> — 통신사 NAT 설정이 엄격하면 직접 연결이 실패할 수 있어요.</li><li><strong>VPN·광고 차단 확장 프로그램</strong> — WebRTC를 막거나 우회시키는 경우가 있어요.</li><li><strong>오래된 브라우저</strong> — 최신 크롬·사파리·엣지·파이어폭스를 권장해요.</li></ul>
<p>해결 순서는 간단해요.</p>
<ol><li>두 사람의 방 코드가 같은지 확인해요. 링크를 다시 보내는 게 가장 빨라요.</li><li>한쪽이 회사·학교 와이파이라면 휴대폰 핫스팟이나 집 와이파이로 바꿔 봐요.</li><li>VPN과 광고 차단 확장 프로그램을 잠시 꺼요.</li><li>브라우저를 최신 버전으로 업데이트하고 새로고침해요.</li><li>그래도 안 되면 혼자 AI 봇과 연습 모드로 기다려요. 봇 연습은 네트워크 없이도 돼요.</li></ol>
<aside class="callout tip"><b class="callout-h">팁</b><p>두 사람 모두 회사 와이파이라면 한 사람만 휴대폰 데이터로 바꿔도 충분한 경우가 많아요. 직접 연결은 양쪽 중 한쪽만 열려 있어도 성공할 확률이 크게 올라가요.</p></aside>
<h3>핑(ping)과 프레임, 랙의 정체</h3>
<p>실시간 대전에서 "랙"이라고 부르는 건 대부분 지연 시간(핑) 때문이에요. 화면은 60fps 기준으로 한 장면이 약 16.7ms마다 바뀌어요. 핑이 50ms면 상대 움직임이 약 3프레임 늦게, 150ms면 약 9프레임 늦게 도착하는 셈이에요. P2P는 서버를 거치지 않아서 가까운 사람끼리는 지연이 짧은 편이지만, 한 명의 회선이 느리면 그 사람과의 연결만 끊기거나 튀어요. 게임 화면에 핑이 표시된다면 100ms 아래를 쾌적한 기준으로 보면 돼요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">핑(지연 시간)이 60fps 화면에서 몇 프레임 늦는지</figcaption><svg viewBox="0 0 640 186" role="img" aria-label="핑(지연 시간)이 60fps 화면에서 몇 프레임 늦는지" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="65" y="29" text-anchor="end">20ms</text><rect class="s1" x="75" y="15" width="39.6" height="20" rx="3"><title>20ms · 1.2프레임</title></rect><text class="viz-val" x="120.6" y="29">1.2프레임</text><text class="viz-ax lg" x="65" y="63" text-anchor="end">50ms</text><rect class="s1" x="75" y="49" width="99.0" height="20" rx="3"><title>50ms · 3프레임</title></rect><text class="viz-val" x="180.0" y="63">3프레임</text><text class="viz-ax lg" x="65" y="97" text-anchor="end">100ms</text><rect class="s1" x="75" y="83" width="198.0" height="20" rx="3"><title>100ms · 6프레임</title></rect><text class="viz-val" x="279.0" y="97">6프레임</text><text class="viz-ax lg" x="65" y="131" text-anchor="end">150ms</text><rect class="s1" x="75" y="117" width="297.0" height="20" rx="3"><title>150ms · 9프레임</title></rect><text class="viz-val" x="378.0" y="131">9프레임</text><text class="viz-ax lg" x="65" y="165" text-anchor="end">250ms</text><rect class="s1" x="75" y="151" width="495.0" height="20" rx="3"><title>250ms · 15프레임</title></rect><text class="viz-val" x="576.0" y="165">15프레임</text></svg><p class="viz-note">100ms 이상부터는 조준이 밀리는 느낌이 확실히 나요.</p><div class="viz-cap">단위: 프레임 · 자료: 1프레임 = 1000 ÷ 60 ≈ 16.7ms로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>늦는 프레임 수</th></tr></thead><tbody><tr><td>20ms</td><td>1.2</td></tr><tr><td>50ms</td><td>3</td></tr><tr><td>100ms</td><td>6</td></tr><tr><td>150ms</td><td>9</td></tr><tr><td>250ms</td><td>15</td></tr></tbody></table></div></details></figure>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">웹게임 안전하게 즐기는 체크리스트</h2>
<p>설치가 없다고 해서 모든 웹게임 사이트가 안전한 건 아니에요. 아래 항목을 확인하세요.</p>
<ul><li><strong>파일 다운로드를 요구하지 않는가</strong> — .exe, .apk, .dmg 설치를 요구하면 그건 웹게임이 아니에요. 바로 닫으세요.</li><li><strong>불필요한 권한을 묻지 않는가</strong> — 게임과 상관없는 알림 허용, 위치, 카메라·마이크 권한 요청은 거절해도 돼요.</li><li><strong>개인정보를 과하게 받지 않는가</strong> — 닉네임 정도면 충분해요. 전화번호·주민번호를 묻는 게임은 피하세요.</li><li><strong>P2P라면 IP 노출을 이해했는가</strong> — 브라우저끼리 직접 연결되면 같은 방 참가자에게 IP 주소가 전달될 수 있어요. 걱정되면 아는 사람끼리만 방 코드로 하세요.</li><li><strong>결제 유도가 지나치지 않은가</strong> — 무료 웹게임에서 갑자기 결제 화면이 뜨면 주소창의 도메인부터 확인하세요.</li><li><strong>HTTPS 주소인가</strong> — 주소창에 자물쇠가 있는지 확인해요.</li></ul>
<aside class="callout warn"><b class="callout-h">주의</b><p>"플래시 플레이어를 설치해야 게임이 실행돼요" 같은 안내는 지금은 그 자체로 의심 신호예요. 플래시는 2020년 12월 31일 지원이 끝났고, 2021년부터 주요 브라우저에서 실행되지 않아요. 이런 설치 파일은 악성 프로그램인 경우가 많으니 받지 마세요.</p></aside>
<h2 id="s6">모바일에서 웹게임 잘 즐기는 요령</h2>
<p>휴대폰에서도 대부분의 웹게임이 돌아가요. 조금만 신경 쓰면 훨씬 쾌적해요.</p>
<ol><li><strong>가로 모드와 전체 화면</strong> — 3D 대전이나 넓은 판 게임은 가로로 돌리고 전체 화면을 켜면 버튼이 덜 겹쳐요.</li><li><strong>홈 화면에 추가</strong> — 브라우저 메뉴의 "홈 화면에 추가"를 쓰면 앱처럼 아이콘으로 바로 열 수 있어요. 설치가 아니라 바로가기라 용량을 거의 안 써요.</li><li><strong>스와이프 게임은 게임판 위에서</strong> — 2048·스네이크는 게임판 위에서 스와이프해야 페이지가 스크롤되지 않아요.</li><li><strong>배터리와 발열</strong> — 3D 게임은 그래픽 처리량이 많아 배터리가 빨리 닳아요. 저전력 모드에서는 프레임이 떨어질 수 있어요.</li></ol>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">자주 묻는 질문</h2>
<h3>설치 없는 웹게임은 정말 아무것도 안 깔리나요?</h3>
<p>네. 페이지를 열 때 게임 코드가 브라우저로 내려와 실행되고, 탭을 닫으면 끝나요. 최고 점수 같은 작은 기록만 그 브라우저의 쿠키나 저장소에 남아요.</p>
<h3>친구랑 같이 하는 웹게임은 어떻게 초대하나요?</h3>
<p>방을 만들면 방 코드가 붙은 링크가 생겨요. 그 링크를 카톡 등으로 보내고, 친구가 링크를 열어 입장하면 같은 방에서 만나요. 스카이 아레나는 최대 6명까지 함께할 수 있어요.</p>
<h3>회사 와이파이에서 친구와 연결이 안 돼요.</h3>
<p>회사·학교 네트워크는 방화벽이 P2P 연결을 막는 경우가 많아요. 휴대폰 핫스팟이나 다른 네트워크로 바꿔 보고, VPN과 광고 차단 확장 프로그램도 잠시 꺼 보세요.</p>
<h3>웹게임 기록이 사라졌어요.</h3>
<p>대부분의 웹게임은 기록을 그 브라우저에만 저장해요. 쿠키를 지웠거나, 시크릿 모드였거나, 다른 기기·브라우저로 열었다면 기록이 안 보여요. 중요한 기록은 캡처해 두세요.</p>
<h3>부모님과 같이 할 만한 웹게임이 있을까요?</h3>
<p>글씨가 크고 규칙이 단순한 게임이 좋아요. 카드 짝 맞추기·순서 기억·간단 계산처럼 하루 5분 구성의 두뇌 트레이닝이 무난하고, 숫자 기억력 테스트도 함께 기록을 비교하며 하기 좋아요.</p>
<h2 id="s8">정리</h2>
<p>설치 없는 웹게임은 링크 하나로 시작하고, 기록은 브라우저에 남고, 친구와는 <strong>링크로 초대</strong>하는 구조예요. 혼자 짧게는 반응속도·숫자 기억력, 조금 길게는 2048·스네이크·지뢰찾기, 친구와는 실시간 대전이 잘 맞아요. 친구와 연결이 안 되면 네트워크부터 바꿔 보세요.</p>
<ul><li>친구와 대전: <a href="https://game.smithlab.co.kr/games/sky-arena/">스카이 아레나</a></li><li>혼자 한 판: <a href="https://game.smithlab.co.kr/games/snake/">스네이크 게임</a>, <a href="https://game.smithlab.co.kr/games/2048/">2048 게임</a>, <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a></li><li>부모님과 함께: <a href="https://game.smithlab.co.kr/games/brain-training/">두뇌 트레이닝</a></li><li>함께 읽기: <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 게임 공략</a>, <a href="https://game.smithlab.co.kr/posts/games/minesweeper-patterns/">지뢰찾기 공략, 1-2-1 패턴</a></li></ul>
    ]]></description>
    </item>
    <item>
      <title>스네이크 게임 공략, 안 죽고 오래 버티는 경로 전략과 고득점 계산</title>
      <link>https://game.smithlab.co.kr/posts/games/snake-game-strategy-high-score/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/snake-game-strategy-high-score/</guid>
      <pubDate>Thu, 15 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>스네이크 게임은 규칙이 단순해서 누구나 바로 시작하지만, 몸이 30칸쯤 넘어가면 갑자기 갇혀서 끝나 버리죠. 먹이가 바로 앞에 있는데 꼬리에 막혀 돌아갈 길이 없을 때가 제일 억울해요. 결론부터 말하면 <strong>스네이크 게임 공략의 핵심은 "먹이에 빨리 가기"가 아니라 "다음에 갈 길을 남겨 두기"예요.</strong> 초반에는 최단 거리로 먹고, 몸이 길어지면 가장자리를 크게 돌거나 지그재그로 판을 채우는 식으로 경로를 바꾸면 오래 버틸 수 있어요.</p>
<p>이 글은 스미스 게임 연구소의 <a href="https://game.smithlab.co.kr/games/snake/">스네이크 게임</a>(20×20 판, 시작 길이 3칸) 규칙을 기준으로, 속도가 어떻게 빨라지는지, 황금 먹이가 점수를 얼마나 올려 주는지 직접 계산하고, 단계별 생존 전략과 흔한 사망 원인을 정리했어요. 다른 판 크기의 스네이크 게임에도 그대로 쓸 수 있는 원리예요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>초반(몸 길이 20칸 미만)에는 최단 거리로 먹이를 먹고, 중반부터는 가장자리를 따라 크게 도는 습관으로 바꿔요.</li><li>몸이 판의 절반 가까이 차면 한 줄씩 왕복하는 지그재그 경로가 가장 안전해요. 느려 보여도 막다른 길에 갇히지 않아요.</li><li>이 게임은 먹이 22개를 먹으면 한 칸에 0.062초로 최고 속도에 도달해요. 그 뒤로는 반응보다 미리 정한 경로가 중요해요.</li><li>황금 먹이(+30점)를 챙기면 같은 먹이 개수에서 점수가 60% 늘어나요. 단, 무리하게 쫓다 갇히면 손해예요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">스네이크 게임 규칙과 점수 구조 먼저 짚기</h2>
<p>공략 전에 규칙을 숫자로 정확히 알아 두면 판단이 쉬워져요. 스미스 게임 연구소 스네이크 게임의 규칙은 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>항목</th><th>값</th></tr></thead><tbody><tr><td>판 크기</td><td>20×20 = 400칸</td></tr><tr><td>시작 길이</td><td>3칸</td></tr><tr><td>일반 먹이</td><td>+10점, 몸 1칸 증가, 속도 조금 증가</td></tr><tr><td>황금 먹이</td><td>먹이 5개마다 5초 동안 등장, +30점, 몸 1칸 증가</td></tr><tr><td>속도</td><td>한 칸에 0.15초에서 먹이마다 0.004초씩 빨라짐, 최소 약 0.062초</td></tr><tr><td>게임 오버</td><td>벽 또는 내 몸에 부딪힘 (벽 통과 없음)</td></tr><tr><td>방향 입력</td><td>최대 3개까지 순서대로 기억</td></tr></tbody></table></div>
<p>여기서 중요한 숫자 두 개가 있어요. 하나는 <strong>속도 상한</strong>이에요. 0.15 − 0.004 × 22 = 0.062초이므로 먹이 22개를 먹은 뒤부터는 더 빨라지지 않아요. 처음보다 약 2.4배 빠른 속도예요. 다른 하나는 <strong>판 점유율</strong>이에요. 400칸 판에서 몸 길이 100이면 판의 25%, 200이면 50%를 내 몸이 차지해요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">먹은 먹이 개수별 한 칸 이동 시간</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="먹은 먹이 개수별 한 칸 이동 시간" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">25</text><line class="viz-grid" x1="52" x2="570" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">50</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">75</text><line class="viz-grid" x1="52" x2="570" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="570" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">125</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">150</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">0개</text><text class="viz-ax" x="126.0" y="272" text-anchor="middle">5개</text><text class="viz-ax" x="200.0" y="272" text-anchor="middle">10개</text><text class="viz-ax" x="274.0" y="272" text-anchor="middle">15개</text><text class="viz-ax" x="348.0" y="272" text-anchor="middle">20개</text><text class="viz-ax" x="422.0" y="272" text-anchor="middle">22개</text><text class="viz-ax" x="496.0" y="272" text-anchor="middle">30개</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">50개</text><polyline class="viz-line s1" points="52.0,18.0 126.0,49.5 200.0,80.9 274.0,112.4 348.0,143.9 422.0,156.5 496.0,156.5 570.0,156.5"/><circle class="viz-dot s1" cx="52.0" cy="18.0" r="4"><title>0개 · 이동 시간 150ms</title></circle><circle class="viz-dot s1" cx="126.0" cy="49.5" r="4"><title>5개 · 이동 시간 130ms</title></circle><circle class="viz-dot s1" cx="200.0" cy="80.9" r="4"><title>10개 · 이동 시간 110ms</title></circle><circle class="viz-dot s1" cx="274.0" cy="112.4" r="4"><title>15개 · 이동 시간 90ms</title></circle><circle class="viz-dot s1" cx="348.0" cy="143.9" r="4"><title>20개 · 이동 시간 70ms</title></circle><circle class="viz-dot s1" cx="422.0" cy="156.5" r="4"><title>22개 · 이동 시간 62ms</title></circle><circle class="viz-dot s1" cx="496.0" cy="156.5" r="4"><title>30개 · 이동 시간 62ms</title></circle><circle class="viz-dot s1" cx="570.0" cy="156.5" r="4"><title>50개 · 이동 시간 62ms</title></circle><text class="viz-val" x="578.0" y="160.5">62</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">22개 이후로는 속도가 고정이라, 그때부터 죽는 이유는 대부분 속도가 아니라 경로예요.</p><div class="viz-cap">단위: ms · 자료: 게임 규칙(시작 0.15초, 먹이당 0.004초 감소, 하한 약 0.062초)으로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>이동 시간</th></tr></thead><tbody><tr><td>0개</td><td>150</td></tr><tr><td>5개</td><td>130</td></tr><tr><td>10개</td><td>110</td></tr><tr><td>15개</td><td>90</td></tr><tr><td>20개</td><td>70</td></tr><tr><td>22개</td><td>62</td></tr><tr><td>30개</td><td>62</td></tr><tr><td>50개</td><td>62</td></tr></tbody></table></div></details></figure>
<p>이 그래프가 공략의 출발점이에요. 많은 사람이 "빨라져서 죽었다"고 느끼지만, 최고 속도는 먹이 22개(몸 길이 25칸 안팎)에서 이미 도달해요. 그 뒤에 죽는 건 속도 때문이 아니라 <strong>스스로 만든 막다른 길</strong> 때문인 경우가 훨씬 많아요.</p>
<h2 id="s2">단계별 스네이크 게임 공략, 길이에 따라 전략을 바꾸기</h2>
<h3>초반 (길이 3~20칸): 최단 거리로 먹기</h3>
<p>몸이 짧을 때는 갇힐 위험이 거의 없어요. 먹이를 보면 가로로 갈지 세로로 갈지 한 번만 정하고 최단 거리로 가서 먹으면 돼요. 이 구간에서 시간을 아끼는 게 중요한 이유는, 아직 속도가 느려서 한 칸에 0.1초 이상 걸리기 때문이에요. 쓸데없이 돌아가면 그만큼 지루하고 집중력만 떨어져요.</p>
<h3>중반 (길이 20~100칸): 가장자리를 따라 크게 돌기</h3>
<p>몸이 판 너비(20칸)를 넘어가면 가운데에서 급하게 꺾을 때 자기 몸에 둘러싸이기 쉬워요. 이때부터는 <strong>판 가장자리를 따라 크게 도는 습관</strong>을 들여요. 기본 동선은 "가장자리를 돌다가 먹이가 있는 줄에서 안으로 들어가 먹고, 다시 가장자리로 나오기"예요.</p>
<p>가장자리를 쓰는 이유는 간단해요. 벽 쪽은 한쪽이 막혀 있어서 내 몸이 바깥을 막는 일이 없고, 몸이 판 둘레를 따라 정리되면서 가운데 넓은 공간이 남아요. 가운데가 비어 있어야 다음 먹이로 가는 길이 여러 개 생겨요.</p>
<h3>후반 (길이 100칸 이상): 지그재그로 판 채우기</h3>
<p>몸이 판의 25%를 넘으면 지그재그가 가장 안전해요. 맨 위 줄을 왼쪽에서 오른쪽으로 끝까지 가고, 한 칸 내려와 오른쪽에서 왼쪽으로, 다시 한 칸 내려와… 하는 식으로 한 줄씩 왕복해요. 맨 아래까지 오면 한쪽 세로줄을 비워 두었다가 그 줄로 다시 맨 위로 올라가요.</p>
<p>이 경로는 수학에서 말하는 <strong>해밀턴 순환</strong>(모든 칸을 한 번씩 지나 제자리로 오는 경로)이에요. 20×20처럼 한 변이 짝수인 판에서는 이런 순환이 항상 존재해요. 이 경로만 따라가면 이론상 몸이 판 전체를 채울 때까지 절대 자기 몸에 부딪히지 않아요. 단점은 느리다는 거예요. 한 바퀴가 400칸이라 최고 속도에서도 400 × 0.062 = 약 24.8초가 걸려요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">몸 길이별 판 점유율과 추천 전략</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="몸 길이별 판 점유율과 추천 전략" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">60</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">80</text><rect class="s1" x="69.3" y="239.2" width="80.6" height="14.8" rx="3"><title>길이 20 · 판 점유율 5%</title></rect><text class="viz-val" x="109.6" y="234.2" text-anchor="middle">5</text><text class="viz-ax" x="109.6" y="272" text-anchor="middle">길이 20</text><rect class="s1" x="184.5" y="217.1" width="80.6" height="36.9" rx="3"><title>길이 50 · 판 점유율 12.5%</title></rect><text class="viz-val" x="224.8" y="212.1" text-anchor="middle">12.5</text><text class="viz-ax" x="224.8" y="272" text-anchor="middle">길이 50</text><rect class="s1" x="299.7" y="180.2" width="80.6" height="73.8" rx="3"><title>길이 100 · 판 점유율 25%</title></rect><text class="viz-val" x="340.0" y="175.2" text-anchor="middle">25</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">길이 100</text><rect class="s1" x="414.9" y="106.5" width="80.6" height="147.5" rx="3"><title>길이 200 · 판 점유율 50%</title></rect><text class="viz-val" x="455.2" y="101.5" text-anchor="middle">50</text><text class="viz-ax" x="455.2" y="272" text-anchor="middle">길이 200</text><rect class="s1" x="530.1" y="32.8" width="80.6" height="221.2" rx="3"><title>길이 300 · 판 점유율 75%</title></rect><text class="viz-val" x="570.4" y="27.8" text-anchor="middle">75</text><text class="viz-ax" x="570.4" y="272" text-anchor="middle">길이 300</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">5%까지는 최단 거리, 25%까지는 가장자리 돌기, 그 이상은 지그재그가 안전해요.</p><div class="viz-cap">단위: % · 자료: 몸 길이 ÷ 400칸으로 직접 계산 (20×20 판 기준)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>판 점유율</th></tr></thead><tbody><tr><td>길이 20</td><td>5</td></tr><tr><td>길이 50</td><td>12.5</td></tr><tr><td>길이 100</td><td>25</td></tr><tr><td>길이 200</td><td>50</td></tr><tr><td>길이 300</td><td>75</td></tr></tbody></table></div></details></figure>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/snake-game-strategy-high-score-1.svg" alt="지그재그 해밀턴 순환 경로: 8×8 판에서 맨 위 줄을 끝까지 간 뒤 한 칸씩 내려오며 왕복하고, 비워 둔 맨 왼쪽 세로줄로 출발점에 돌아오는 순서" width="800" height="450" loading="lazy" decoding="async"><figcaption>맨 왼쪽 한 줄을 비워 두는 게 지그재그의 핵심이에요</figcaption></figure>
<h3>20×20 판에서 지그재그를 실제로 그리는 순서</h3>
<p>그림처럼 그리면 20×20 판에서는 이렇게 돌아요. 맨 왼쪽 1열을 "복귀 통로"로 비워 두고, 2~20열만 지그재그로 왕복하는 구조예요.</p>
<ol><li>왼쪽 위 모서리(1행 1열)에서 출발해 1행을 오른쪽 벽까지 가요.</li><li>한 칸 내려와 2행은 오른쪽에서 왼쪽으로 가되, <strong>2열에서 멈추고</strong> 1열은 밟지 않아요.</li><li>3행은 2열에서 오른쪽 벽까지, 4행은 다시 2열까지… 이렇게 19행까지 왕복해요.</li><li>20행(맨 아래 줄)은 오른쪽 벽에서 1열까지 끝까지 가요.</li><li>1열을 타고 위로 올라가 1행 1열로 돌아오면 한 바퀴예요.</li></ol>
<p>행이 20개(짝수)라서 마지막 줄이 정확히 오른쪽에서 왼쪽 방향으로 끝나요. 한 변이 홀수인 판(예: 15×15)에서는 이런 완전한 순환이 수학적으로 불가능해서, 한 칸은 비워 두고 도는 변형을 써야 해요.</p>
<div class="table-wrap"><table><thead><tr><th>몸 길이</th><th>판 점유율</th><th>지그재그 한 바퀴 중 먹이까지 평균 거리</th><th>최고 속도 기준 평균 소요</th></tr></thead><tbody><tr><td>50칸</td><td>12.5%</td><td>약 200칸</td><td>약 12.4초</td></tr><tr><td>150칸</td><td>37.5%</td><td>약 200칸</td><td>약 12.4초</td></tr><tr><td>300칸</td><td>75%</td><td>약 200칸</td><td>약 12.4초</td></tr><tr><td>참고: 최단 거리</td><td>-</td><td>약 13칸</td><td>약 0.8초</td></tr></tbody></table></div>
<p>먹이가 무작위로 생긴다면 지그재그로는 평균 반 바퀴(200칸)를 가야 먹이에 닿아요. 반면 20×20 판에서 두 점 사이 평균 맨해튼 거리는 약 13.3칸이라, 최단 거리로 가면 평균 0.8초면 돼요. 같은 먹이 하나에 15배 넘게 시간이 드는 셈이라, 지그재그는 "안전하지만 느린" 방법이라는 게 숫자로도 보여요.</p>
<p>현실적인 타협은 <strong>"지그재그를 기본으로 하되, 먹이가 경로에서 가까우면 지름길을 쓰고 다시 지그재그로 돌아오기"</strong>예요. 지름길을 쓸 때는 돌아올 자리가 꼬리 쪽인지 꼭 확인하세요. 꼬리는 계속 빠져나가니까 꼬리 쪽으로 돌아오는 지름길은 안전하고, 머리 앞쪽 몸통으로 돌아오는 지름길은 위험해요.</p>
<h2 id="s3">꼬리를 따라가면 길이 열린다</h2>
<p>갇힐 것 같은 순간 가장 쓸모 있는 원리가 "꼬리 따라가기"예요. 뱀이 한 칸 움직일 때마다 머리는 한 칸 나아가고 꼬리 칸은 비워져요(먹이를 먹은 순간만 빼고). 그래서 <strong>내 꼬리가 있는 칸은 곧 빈칸이 될 자리</strong>예요.</p>
<p>막다른 공간으로 들어갈지 고민될 때는 이렇게 판단해요.</p>
<ol><li>들어가려는 공간의 빈칸 수를 대략 세요.</li><li>그 공간을 다 도는 동안 꼬리가 출구 쪽을 비워 줄지 확인해요.</li><li>빈칸 수가 몸 길이보다 크거나, 꼬리가 출구 근처에 있으면 들어가도 돼요.</li><li>둘 다 아니면 먹이를 포기하고 꼬리 쪽으로 돌아요.</li></ol>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/snake-game-strategy-high-score-2.svg" alt="좁은 공간에 들어갈지 판단하는 순서도: 빈칸 수가 몸 길이보다 크면 들어가도 되고, 아니면 꼬리가 출구 근처인지 확인해 아니면 먹이를 포기하고 꼬리 쪽으로 돌기" width="800" height="450" loading="lazy" decoding="async"><figcaption>빈칸 수와 꼬리 위치, 두 가지만 확인해요</figcaption></figure>
<p>머리로 정확히 세기는 어렵지만, "꼬리가 어디 있는지 늘 곁눈으로 본다"는 습관만 들여도 사망률이 확 줄어요.</p>
<h2 id="s4">방향은 미리, 한 박자 빠르게 입력하기</h2>
<p>최고 속도(한 칸 0.062초)에서는 초당 약 16칸을 움직여요. 사람의 단순 반응 시간이 대략 0.2~0.25초라는 걸 생각하면, 화면을 보고 반응해서 꺾으면 이미 3~4칸 지나간 뒤예요. 반응 속도에 대해서는 <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응속도 평균은 몇 ms일까</a> 글에서 자세히 다뤘어요.</p>
<p>그래서 빠른 구간에서는 <strong>보고 반응하는 게 아니라 미리 입력</strong>해야 해요. 스미스 게임 연구소 스네이크는 방향 입력을 최대 3개까지 순서대로 기억해요. 예를 들어 벽 앞에서 유턴하려면 벽 두세 칸 전에 "↑ →"처럼 두 번 꺾기를 미리 넣어 두면, 게임이 한 칸씩 차례로 처리해요. 바로 뒤로 도는 180도 회전은 자기 몸에 부딪히는 것이라 무시되니, 유턴은 항상 두 번 꺾기로 해야 해요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">황금 먹이와 점수 계산, 얼마나 챙겨야 할까</h2>
<p>황금 먹이는 일반 먹이 5개마다 5초 동안 나타나고 +30점이에요. 일반 먹이 3개 값이니 꽤 크죠. 일반 먹이 n개를 먹으면서 나오는 황금 먹이를 모두 먹었다고 가정하면 점수는 10n + 30 × (n ÷ 5의 몫)이에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">일반 먹이 개수별 점수, 황금 먹이 포함 여부 비교</figcaption><div class="viz-legend"><span><i class="s1"></i>일반 먹이만</span><span><i class="s2"></i>황금 먹이 모두 포함</span></div><svg viewBox="0 0 640 300" role="img" aria-label="일반 먹이 개수별 점수, 황금 먹이 포함 여부 비교" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">500</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">1,000</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">1,500</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">2,000</text><rect class="s1" x="73.6" y="242.2" width="49.4" height="11.8" rx="3"><title>10개 · 일반 먹이만 100점</title></rect><rect class="s2" x="125.0" y="235.1" width="49.4" height="18.9" rx="3"><title>10개 · 황금 먹이 모두 포함 160점</title></rect><text class="viz-ax" x="124.0" y="272" text-anchor="middle">10개</text><rect class="s1" x="217.6" y="230.4" width="49.4" height="23.6" rx="3"><title>20개 · 일반 먹이만 200점</title></rect><rect class="s2" x="269.0" y="216.2" width="49.4" height="37.8" rx="3"><title>20개 · 황금 먹이 모두 포함 320점</title></rect><text class="viz-ax" x="268.0" y="272" text-anchor="middle">20개</text><rect class="s1" x="361.6" y="195.0" width="49.4" height="59.0" rx="3"><title>50개 · 일반 먹이만 500점</title></rect><rect class="s2" x="413.0" y="159.6" width="49.4" height="94.4" rx="3"><title>50개 · 황금 먹이 모두 포함 800점</title></rect><text class="viz-ax" x="412.0" y="272" text-anchor="middle">50개</text><rect class="s1" x="505.6" y="136.0" width="49.4" height="118.0" rx="3"><title>100개 · 일반 먹이만 1,000점</title></rect><rect class="s2" x="557.0" y="65.2" width="49.4" height="188.8" rx="3"><title>100개 · 황금 먹이 모두 포함 1,600점</title></rect><text class="viz-ax" x="556.0" y="272" text-anchor="middle">100개</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">황금 먹이를 다 챙기면 같은 먹이 개수에서 점수가 1.6배가 돼요.</p><div class="viz-cap">단위: 점 · 자료: 일반 +10점, 먹이 5개마다 황금 +30점 규칙으로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>일반 먹이만</th><th>황금 먹이 모두 포함</th></tr></thead><tbody><tr><td>10개</td><td>100</td><td>160</td></tr><tr><td>20개</td><td>200</td><td>320</td></tr><tr><td>50개</td><td>500</td><td>800</td></tr><tr><td>100개</td><td>1,000</td><td>1,600</td></tr></tbody></table></div></details></figure>
<p>1.6배는 무시하기 어려운 차이예요. 하지만 5초라는 제한이 있어요. 최고 속도에서 5초면 약 80칸을 갈 수 있어서 판 어디에 있든 거리상으로는 대부분 닿을 수 있어요. 문제는 <strong>경로를 무너뜨리고 쫓아갈 때</strong>예요. 황금 먹이를 먹으려고 지그재그를 깨고 가운데로 파고들었다가 갇히면 30점 얻고 게임이 끝나요.</p>
<p>판단 기준은 이렇게 잡으면 좋아요.</p>
<ul><li>몸 길이 50칸 미만: 웬만하면 황금 먹이를 챙겨요. 갇힐 위험이 낮아요.</li><li>50~150칸: 지금 경로에서 10칸 이내로 벗어나서 먹고 돌아올 수 있을 때만 챙겨요.</li><li>150칸 이상: 경로 위에 있거나 바로 옆일 때만 먹어요. 생존이 점수보다 커요.</li></ul>
<h2 id="s6">점수대별 목표와 연습 루틴</h2>
<p>한 번에 기록을 크게 올리려 하기보다, 점수 구간마다 연습할 기술을 하나씩 정해 두면 늘어요. 아래 표는 황금 먹이를 대부분 챙긴다고 가정한 대략적인 목표예요(일반 먹이 5개 + 황금 1개 = 80점, 몸 6칸 증가로 계산).</p>
<div class="table-wrap"><table><thead><tr><th>목표 점수</th><th>몸 길이(대략)</th><th>판 점유율</th><th>집중 연습 포인트</th></tr></thead><tbody><tr><td>300점</td><td>약 25칸</td><td>6%</td><td>최단 거리 동선, 최고 속도 적응</td></tr><tr><td>800점</td><td>약 63칸</td><td>16%</td><td>가장자리 돌기, 미리 입력 2개</td></tr><tr><td>1,600점</td><td>약 123칸</td><td>31%</td><td>지그재그 전환 시점, 꼬리 확인</td></tr><tr><td>2,400점</td><td>약 183칸</td><td>46%</td><td>지름길 쓰고 지그재그로 복귀</td></tr><tr><td>3,200점 이상</td><td>약 243칸 이상</td><td>61% 이상</td><td>경로 유지, 황금 먹이 과감히 포기</td></tr></tbody></table></div>
<p>연습할 때는 이런 루틴이 효과적이었어요.</p>
<ul><li><strong>한 판에 하나만 연습하기</strong> — "이번 판은 가장자리만 돈다"처럼 목표를 하나로 정해요. 점수보다 동선을 지키는 게 목적이에요.</li><li><strong>죽은 장면 떠올리기</strong> — 게임 오버 직전 3초를 떠올려 보면 대부분 "가운데에서 꺾었다", "꼬리를 안 봤다" 둘 중 하나예요.</li><li><strong>10판 단위로 평균 보기</strong> — 한 판 최고 기록은 운이 커요. 10판 평균 점수가 오르면 실력이 늘었다는 뜻이에요.</li><li><strong>집중력은 15~20분</strong> — 후반 지그재그 구간은 단조로워서 집중이 풀리기 쉬워요. 길게 하기보다 짧게 여러 번이 좋아요.</li></ul>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">스네이크 게임에서 자주 죽는 원인 5가지</h2>
<ol><li><strong>가운데에서 급회전</strong> — 몸이 길 때 판 가운데서 연속으로 꺾으면 자기 몸으로 원을 만들고 그 안에 갇혀요.</li><li><strong>먹이 바로 옆 막다른 칸</strong> — 먹이가 몸통 사이 좁은 틈에 생겼을 때 무작정 들어가면 나올 길이 없어요. 꼬리 위치부터 확인하세요.</li><li><strong>180도 회전 시도</strong> — 반대 방향 입력은 무시돼서, 급할수록 "왜 안 돌아가지?" 하다 벽에 박아요. 유턴은 두 번 꺾기예요.</li><li><strong>입력 과다</strong> — 불안해서 방향키를 연타하면 기억된 입력 3개가 엉뚱하게 실행될 수 있어요. 필요한 만큼만 누르세요.</li><li><strong>화면 밖 방해</strong> — 다른 탭으로 가면 자동으로 일시정지되지만, 휴대폰 알림이나 대화 때문에 시선을 뺏기는 건 막아 주지 않아요. Space나 P로 먼저 멈추세요.</li></ol>
<h2 id="s8">자주 묻는 질문</h2>
<h3>스네이크 게임에서 벽을 통과할 수 있나요?</h3>
<p>스미스 게임 연구소 스네이크 게임은 고전 규칙이라 벽에 닿으면 게임이 끝나요. 가장자리를 따라 움직이는 건 괜찮아서, 오히려 가장자리를 활용하는 게 핵심 전략이에요.</p>
<h3>스네이크 게임 최고 점수는 이론상 몇 점인가요?</h3>
<p>20×20 판에 시작 길이 3칸이면 몸을 397칸 더 늘릴 수 있어요. 일반 먹이 5개와 황금 먹이 1개를 한 묶음(80점, 6칸)으로 보면 약 66묶음이라, 황금 먹이를 모두 먹었을 때 대략 5,200점대가 이론상 상한이에요. 실제로는 판이 꽉 찰수록 먹이 위치가 제한돼 훨씬 어려워요.</p>
<h3>속도가 빨라져서 못 따라가겠어요.</h3>
<p>이 게임은 먹이 22개 이후 속도가 더 오르지 않아요. 그 구간부터는 반응보다 경로가 중요해요. 지그재그처럼 미리 정해 둔 경로를 따라가고, 방향은 벽 두세 칸 전에 미리 입력해 두세요.</p>
<h3>모바일에서도 공략이 똑같나요?</h3>
<p>원리는 같아요. 모바일은 스와이프나 화면 아래 방향 버튼으로 조작해요. 스와이프 동작은 짧고 확실하게 하고, 빠른 구간에서는 버튼 입력이 더 정확한 경우가 많아요.</p>
<h3>최고 점수는 저장되나요?</h3>
<p>스미스 게임 연구소 스네이크 게임은 최고 점수를 브라우저 쿠키에 저장해요. 같은 기기·같은 브라우저에서는 다시 들어와도 기록이 남지만, 쿠키를 지우거나 다른 기기에서 열면 새로 시작해요.</p>
<h3>스네이크 게임과 2048 공략은 비슷한가요?</h3>
<p>둘 다 "지금 이득보다 다음 수의 여유"를 중시한다는 점이 닮았어요. 2048은 큰 수를 코너에 고정하고, 스네이크는 몸을 가장자리에 정리해 가운데 공간을 남기는 식이에요.</p>
<h2 id="s9">정리</h2>
<p>스네이크 게임 공략은 길이에 따라 세 단계로 기억하면 돼요. <strong>짧을 땐 최단 거리, 중간엔 가장자리 돌기, 길어지면 지그재그.</strong> 여기에 꼬리 위치 확인과 미리 입력만 더하면 기록이 눈에 띄게 늘어요. 최고 속도는 먹이 22개에서 이미 도달하니, 그 뒤로 죽는다면 속도 탓이 아니라 경로 탓이라고 보고 동선을 점검해 보세요.</p>
<ul><li>바로 해 보기: <a href="https://game.smithlab.co.kr/games/snake/">스네이크 게임</a></li><li>비슷한 전략 게임: <a href="https://game.smithlab.co.kr/games/2048/">2048 게임</a>, 공략은 <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 게임 공략, 코너 전략과 뱀 배치</a></li><li>손이 느린 것 같다면: <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a></li><li>다른 기록 게임 요령: <a href="https://game.smithlab.co.kr/posts/games/one-to-fifty-game-record-tips/">1 to 50 게임 기록 올리는 법</a></li></ul>
    ]]></description>
    </item>
    <item>
      <title>숫자 기억력 평균은 몇 자리? — 숫자 폭 7±2의 진실과 청킹으로…</title>
      <link>https://game.smithlab.co.kr/posts/games/number-memory-digit-span/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/number-memory-digit-span/</guid>
      <pubDate>Thu, 08 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>숫자 기억력 테스트를 해 보면 6~8자리 근처에서 갑자기 머리가 하얘지는 순간이 와요. 친구는 10자리를 넘기는데 나는 7자리에서 막히면 "내 기억력이 나쁜가?" 싶죠. 결론부터 말하면 숫자를 보거나 듣고 바로 따라 외우는 '숫자 폭(digit span)'은 성인 평균이 6.5~7.4자리 정도이고, 그 이상은 타고난 용량보다 숫자를 덩어리로 묶는 전략(청킹)의 차이인 경우가 많아요.</p>
<p>이 글에서는 "7±2"라는 유명한 숫자가 어디서 왔는지, 왜 최근 연구는 오히려 "4개"라고 말하는지, 그리고 청킹으로 기록을 실제로 늘리는 방법을 숫자 예시로 정리할게요. 직접 재 보려면 <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억력 테스트</a>를 열어 두세요. 3자리에서 시작해 맞힐 때마다 한 자리씩 늘어나고, 한 번 틀리면 마지막으로 맞힌 자릿수가 기록이 돼요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>숫자를 순서대로 따라 외우는 숫자 폭은 성인 평균 6.5~7.4자리, 거꾸로 외우기는 4.9~6.0자리예요(Woods 외 2011). 1956년 Miller가 정리한 '7±2'와 맞아요.</li><li>Cowan(2001)은 되뇌기나 묶기를 막으면 실제로 동시에 붙잡는 덩어리는 약 4개(3~5개) 정도라고 정리했어요.</li><li>7자리 이상을 외우는 사람은 대개 숫자를 2~4자리 덩어리로 묶어 '항목 수'를 줄이는 거예요.</li><li>한 대학생은 약 230시간 연습으로 숫자 폭을 79자리까지 늘렸지만, 그 능력은 숫자에만 통했어요(Ericsson, Chase &amp; Faloon 1980).</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">숫자 폭(digit span)이란 무엇인가</h2>
<p>숫자 폭은 숫자 여러 개를 한 번 보거나 들은 뒤, 순서까지 정확하게 바로 되말할 수 있는 최대 개수예요. 심리학에서 가장 오래되고 간단한 단기 기억 측정법 중 하나라서 여러 인지 검사에 하위 과제로 들어가 있어요.</p>
<p>측정 방식은 크게 두 가지예요.</p>
<ul><li><strong>바로 따라 외우기(forward)</strong>: 들은 순서 그대로 말하기. 우리 테스트가 이 방식이에요.</li><li><strong>거꾸로 따라 외우기(backward)</strong>: 들은 숫자를 역순으로 말하기. 머릿속에서 순서를 뒤집는 작업이 추가돼서 보통 바로 따라 외우기보다 짧게 나와요.</li></ul>
<p>실제 측정값을 보면 감이 와요. 미국 재향군인부 연구팀의 Woods 외(2011) 연구 <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC2978794/" target="_blank" rel="noopener">「숫자 폭 평가의 개선」(Journal of Clinical and Experimental Neuropsychology)</a>는 컴퓨터로 숫자를 들려주고 길이를 자동 조정하는 방식으로 두 집단을 쟀어요.</p>
<div class="table-wrap"><table><thead><tr><th>집단</th><th>인원·나이</th><th>바로 따라 외우기 (전통 방식)</th><th>바로 (평균 폭 지표)</th><th>거꾸로 (전통 방식)</th><th>거꾸로 (평균 폭 지표)</th></tr></thead><tbody><tr><td>실험 1</td><td>30명, 18~46세</td><td>7.36자리</td><td>7.41자리</td><td>5.80자리</td><td>6.00자리</td></tr><tr><td>실험 2</td><td>763명, 18~65세</td><td>6.35자리</td><td>6.52자리</td><td>4.61자리</td><td>4.91자리</td></tr></tbody></table></div>
<p>전통 방식은 같은 길이에서 두 번 연속 틀리기 전까지의 최대 길이이고, 평균 폭 지표는 연구팀이 새로 만든 더 정밀한 점수예요. 두 실험 모두 거꾸로 외우기가 바로 외우기보다 1.4~1.7자리 짧았어요. 큰 표본(실험 2)에서 바로 따라 외우기는 나이와 의미 있는 상관이 없었고, 거꾸로 외우기는 나이가 많을수록 약간 짧아졌어요. 교육 연수가 길수록 대부분의 점수가 조금 높았고요.</p>
<p>다만 숫자를 귀로 듣는지 눈으로 보는지, 한 자리씩 하나씩 보여 주는지 한꺼번에 보여 주는지, 보여 주는 시간이 얼마인지에 따라 결과가 달라요. 그래서 인터넷 테스트 기록을 검사 기준표에 바로 대 보는 건 의미가 크지 않아요. 우리 테스트는 숫자를 한꺼번에 화면에 띄우고 1.2초 + 자리당 0.55초 동안 보여 줘요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">숫자 기억력 테스트의 자릿수별 표시 시간</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="숫자 기억력 테스트의 자릿수별 표시 시간" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">2</text><line class="viz-grid" x1="52" x2="570" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">4</text><line class="viz-grid" x1="52" x2="570" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">6</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">8</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">3자리</text><text class="viz-ax" x="167.1" y="272" text-anchor="middle">5자리</text><text class="viz-ax" x="282.2" y="272" text-anchor="middle">7자리</text><text class="viz-ax" x="397.3" y="272" text-anchor="middle">9자리</text><text class="viz-ax" x="512.4" y="272" text-anchor="middle">11자리</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">12자리</text><polyline class="viz-line s1" points="52.0,169.9 109.6,153.7 167.1,137.5 224.7,121.2 282.2,105.0 339.8,88.8 397.3,72.6 454.9,56.3 512.4,40.1 570.0,23.9"/><circle class="viz-dot s1" cx="52.0" cy="169.9" r="4"><title>3자리 · 표시 시간 2.9초</title></circle><circle class="viz-dot s1" cx="109.6" cy="153.7" r="4"><title>4자리 · 표시 시간 3.4초</title></circle><circle class="viz-dot s1" cx="167.1" cy="137.5" r="4"><title>5자리 · 표시 시간 4초</title></circle><circle class="viz-dot s1" cx="224.7" cy="121.2" r="4"><title>6자리 · 표시 시간 4.5초</title></circle><circle class="viz-dot s1" cx="282.2" cy="105.0" r="4"><title>7자리 · 표시 시간 5초</title></circle><circle class="viz-dot s1" cx="339.8" cy="88.8" r="4"><title>8자리 · 표시 시간 5.6초</title></circle><circle class="viz-dot s1" cx="397.3" cy="72.6" r="4"><title>9자리 · 표시 시간 6.2초</title></circle><circle class="viz-dot s1" cx="454.9" cy="56.3" r="4"><title>10자리 · 표시 시간 6.7초</title></circle><circle class="viz-dot s1" cx="512.4" cy="40.1" r="4"><title>11자리 · 표시 시간 7.2초</title></circle><circle class="viz-dot s1" cx="570.0" cy="23.9" r="4"><title>12자리 · 표시 시간 7.8초</title></circle><text class="viz-val" x="578.0" y="27.9">7.8</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">자리가 늘어도 한 자리에 주어지는 시간은 0.55초로 같아서, 묶는 속도가 기록을 좌우해요</p><div class="viz-cap">단위: 초 · 자료: 스미스 게임 연구소 숫자 기억력 테스트 규칙(1.2초 + 자릿수 × 0.55초)으로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>표시 시간</th></tr></thead><tbody><tr><td>3자리</td><td>2.9</td></tr><tr><td>4자리</td><td>3.4</td></tr><tr><td>5자리</td><td>4</td></tr><tr><td>6자리</td><td>4.5</td></tr><tr><td>7자리</td><td>5</td></tr><tr><td>8자리</td><td>5.6</td></tr><tr><td>9자리</td><td>6.2</td></tr><tr><td>10자리</td><td>6.7</td></tr><tr><td>11자리</td><td>7.2</td></tr><tr><td>12자리</td><td>7.8</td></tr></tbody></table></div></details></figure>
<h2 id="s2">매직넘버 7±2: Miller(1956)가 말한 것</h2>
<p>"사람은 한 번에 7개 정도 기억한다"는 말은 심리학자 조지 밀러(George A. Miller)가 1956년 학술지 Psychological Review에 발표한 논문 <a href="https://pubmed.ncbi.nlm.nih.gov/13310704/" target="_blank" rel="noopener">"The Magical Number Seven, Plus or Minus Two"(PubMed 13310704)</a>에서 유명해졌어요. 밀러는 숫자·글자·단어를 외우는 실험이나 소리의 높낮이를 구별하는 실험 등 여러 결과를 모아 보니, 한계가 대략 <strong>5~9개(7±2)</strong> 근처에 모인다고 정리했어요.</p>
<p>그런데 이 논문에서 오히려 더 중요한 개념은 <strong>청크(chunk)</strong> 예요. 밀러는 기억의 한계가 "숫자 몇 개"가 아니라 "의미 있는 덩어리 몇 개"로 정해진다고 봤어요. 이진수 0과 1을 낱개로 외우면 몇 개 못 외우지만, 세 자리씩 묶어 8진수 한 글자로 바꿔 외우면 훨씬 긴 이진수를 기억할 수 있다는 예시를 들었죠.</p>
<h2 id="s3">4덩어리 이론: Cowan(2001)은 왜 더 작게 볼까</h2>
<p>2001년 넬슨 코완(Nelson Cowan)은 학술지 Behavioral and Brain Sciences에 실린 논문 <a href="https://pubmed.ncbi.nlm.nih.gov/11515286/" target="_blank" rel="noopener">"The magical number 4 in short-term memory"(PubMed 11515286)</a>에서 다른 결론을 냈어요. 사람들이 7개쯤 외울 수 있는 건 머릿속으로 소리 내어 되뇌거나 몰래 묶어 외우는 전략을 쓰기 때문이고, 이런 전략을 막으면 동시에 붙잡는 덩어리는 평균 약 4개(대략 3~5개) 라는 거예요.</p>
<p>두 숫자는 서로 모순이라기보다 측정하는 대상이 달라요.</p>
<div class="table-wrap"><table><thead><tr><th>구분</th><th>Miller (1956)</th><th>Cowan (2001)</th></tr></thead><tbody><tr><td>대표 숫자</td><td>7±2</td><td>약 4 (3~5)</td></tr><tr><td>측정 조건</td><td>일반적인 따라 외우기 과제</td><td>되뇌기·묶기를 최대한 막은 과제</td></tr><tr><td>의미</td><td>전략까지 포함한 실제 기억 범위</td><td>순수하게 동시에 쥘 수 있는 덩어리 수</td></tr><tr><td>실전 해석</td><td>평소 체감하는 한계</td><td>덩어리를 4개 안쪽으로 만들면 유리</td></tr></tbody></table></div>
<p>실전에서 얻을 결론은 하나예요. 숫자를 4개 안팎의 덩어리로 만들 수 있으면 기록이 늘어난다는 것. 12자리도 3자리씩 묶으면 4덩어리가 돼요.</p>
<h2 id="s4">청킹: 같은 12자리를 4개로 만드는 법</h2>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/number-memory-digit-span-1.svg" alt="2002 1945 365 7 열두 자리 숫자를 낱개로 외우면 12개 항목이지만, 2002·1945·365·7 네 덩어리로 묶으면 4개 항목이 되는 청킹 예시" width="800" height="450" loading="lazy" decoding="async"><figcaption>의미 있는 숫자와 연결하면 덩어리 하나가 더 단단해져요</figcaption></figure>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/number-memory-digit-span-2.svg" alt="같은 12자리 숫자 382010571945를 바로 따라 외우면 12개 항목, 거꾸로 외우면 12개 항목에 순서 뒤집기가 추가되고, 3자리씩 묶으면 4개 항목이 된다는 비교 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>같은 숫자라도 붙잡는 방식에 따라 머릿속 항목 수가 달라져요</figcaption></figure>
<p>청킹은 "낱개 항목 수를 줄이는 기술"이에요. 같은 12자리라도 묶는 방식에 따라 머릿속 항목 수가 이렇게 달라져요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">12자리 숫자를 외울 때 머릿속 항목 수</figcaption><svg viewBox="0 0 640 152" role="img" aria-label="12자리 숫자를 외울 때 머릿속 항목 수" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="91" y="29" text-anchor="end">낱개로 외우기</text><rect class="s1" x="101" y="15" width="469.0" height="20" rx="3"><title>낱개로 외우기 · 12개</title></rect><text class="viz-val" x="576.0" y="29">12개</text><text class="viz-ax lg" x="91" y="63" text-anchor="end">2자리씩 묶기</text><rect class="s1" x="101" y="49" width="234.5" height="20" rx="3"><title>2자리씩 묶기 · 6개</title></rect><text class="viz-val" x="341.5" y="63">6개</text><text class="viz-ax lg" x="91" y="97" text-anchor="end">3자리씩 묶기</text><rect class="s1" x="101" y="83" width="156.3" height="20" rx="3"><title>3자리씩 묶기 · 4개</title></rect><text class="viz-val" x="263.3" y="97">4개</text><text class="viz-ax lg" x="91" y="131" text-anchor="end">4자리씩 묶기</text><rect class="s1" x="101" y="117" width="117.2" height="20" rx="3"><title>4자리씩 묶기 · 3개</title></rect><text class="viz-val" x="224.2" y="131">3개</text></svg><p class="viz-note">3~4자리 묶음이면 Cowan이 말한 약 4덩어리 안쪽으로 들어와요</p><div class="viz-cap">단위: 개 · 자료: 12 ÷ 묶음 크기로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>항목 수</th></tr></thead><tbody><tr><td>낱개로 외우기</td><td>12</td></tr><tr><td>2자리씩 묶기</td><td>6</td></tr><tr><td>3자리씩 묶기</td><td>4</td></tr><tr><td>4자리씩 묶기</td><td>3</td></tr></tbody></table></div></details></figure>
<h3>묶는 요령 세 가지</h3>
<ol><li><strong>리듬으로 묶기</strong>: 전화번호처럼 3-4-4나 3-3-3으로 끊어 읽어요. 우리 테스트도 숫자를 3자리씩 띄어서 보여 줘요. "삼팔이, 영일영, 오칠일" 하는 식으로 한 덩어리를 한 박자에 읽으세요.</li><li><strong>의미 붙이기</strong>: 1945(광복), 2002(월드컵), 365(1년), 112·119처럼 이미 아는 숫자를 찾으면 덩어리 하나가 거의 공짜로 기억돼요.</li><li><strong>패턴 찾기</strong>: 2468(짝수 순서), 777(반복), 1357(홀수), 9876(내림차순) 같은 규칙은 네 자리를 한 덩어리로 만들어 줘요.</li></ol>
<h3>묶는 방식별 장단점</h3>
<div class="table-wrap"><table><thead><tr><th>묶는 방식</th><th>예</th><th>덩어리 수 (12자리 기준)</th><th>장점</th><th>약점</th></tr></thead><tbody><tr><td>3자리 리듬</td><td>382 010 571 945</td><td>4</td><td>화면 띄어쓰기와 같아 바로 적용</td><td>의미가 없어 덩어리가 약함</td></tr><tr><td>의미 연결</td><td>2002 1945 365 7</td><td>4</td><td>덩어리 하나가 단단해짐</td><td>아는 숫자가 없으면 시간만 씀</td></tr><tr><td>패턴</td><td>2468 1357 9876</td><td>3</td><td>4자리를 거의 공짜로 기억</td><td>무작위 숫자에서는 드묾</td></tr><tr><td>2자리씩</td><td>38 20 10 57 19 45</td><td>6</td><td>읽기 쉬움</td><td>4덩어리를 넘어가 금방 한계</td></tr></tbody></table></div>
<aside class="callout tip"><b class="callout-h">팁</b><p>묶는 크기는 3자리로 고정하고, 의미나 패턴이 눈에 띌 때만 4자리로 늘리세요. 매번 묶는 방법을 고민하는 시간이 숫자가 보이는 시간(자리당 0.55초)을 잡아먹어요.</p></aside>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">소리 내어 되뇌기와 한국어 숫자의 이점</h2>
<p>작업 기억 모델로 유명한 배들리(Baddeley)와 히치(Hitch)의 1974년 이론에는 '음운 고리(phonological loop)'라는 부분이 있어요. 말소리를 잠깐 붙잡아 두고 속으로 되뇌는 장치인데, 이 장치는 개수보다 <strong>소리를 되뇌는 데 걸리는 시간</strong>에 제약을 받아요. Baddeley, Thomson &amp; Buchanan(1975)은 발음이 긴 단어일수록 적게 기억하는 '단어 길이 효과'를 보고했어요.</p>
<p>숫자도 마찬가지예요. Ellis &amp; Hennelly(1980)는 숫자 이름이 영어보다 길게 발음되는 웨일스어 사용자의 숫자 폭이 영어로 잴 때보다 짧게 나온다고 보고했어요. 한국어의 일·이·삼·사는 모두 한 음절이라 빠르게 되뇌기 좋은 편이에요. 다만 이게 한국어 사용자의 숫자 폭을 실제로 얼마나 늘리는지 직접 비교한 수치를 여기서 제시하긴 어려워서, "되뇌기에 유리한 조건" 정도로만 이해해 주세요.</p>
<p>실전 팁은 간단해요. 숫자가 보이는 동안 <strong>속으로 빠르게 소리 내어 읽고</strong>, 사라진 뒤 입력할 때까지 같은 리듬으로 한두 번 더 되뇌세요. 영어로 읽는 것보다 한국어로 짧게 읽는 게 유리할 수 있어요.</p>
<h2 id="s6">연습하면 어디까지 늘까: 79자리 사례와 한계</h2>
<p>연습 효과를 보여 주는 가장 유명한 연구가 Ericsson, Chase &amp; Faloon의 <a href="https://pubmed.ncbi.nlm.nih.gov/7375930/" target="_blank" rel="noopener">"Acquisition of a memory skill"(Science 1980, PubMed 7375930)</a>이에요. 평범한 숫자 폭(약 7자리)을 가진 대학생 S.F.가 약 20개월 동안 230시간 넘게 연습한 끝에 <strong>79자리</strong>까지 따라 외우게 됐어요.</p>
<p>비결은 기억 용량이 커진 게 아니라 청킹이었어요. 달리기 선수였던 S.F.는 3~4자리 숫자를 달리기 기록(예: 3492 → "3분 49초 2, 1마일 세계기록에 가까운 기록")으로 바꿔 외웠고, 그 덩어리들을 다시 큰 묶음으로 정리했어요. 흥미롭게도 같은 사람이 글자를 외우는 과제에서는 다시 평범한 수준(약 6개) 이었다고 해요. 연습으로 늘어난 건 '숫자를 묶는 기술'이지 기억력 전체가 아니었던 거예요.</p>
<p>이 사례는 두 가지를 동시에 말해 줘요.</p>
<ul><li><strong>기록은 확실히 늘릴 수 있다</strong>: 전략을 익히면 7자리의 벽은 넘을 수 있어요.</li><li><strong>게임 기록 상승 = 머리가 좋아짐은 아니다</strong>: 연습한 과제에 특화된 기술일 가능성이 커요. 이 부분은 <a href="https://game.smithlab.co.kr/posts/games/brain-games-dementia-facts/">두뇌 게임과 치매 예방, 어디까지 사실일까</a>에서 자세히 다뤘어요.</li></ul>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">기록을 늘리는 1주 연습 루틴</h2>
<ol><li><strong>기준 기록 재기</strong>: 첫날 <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억력 테스트</a>를 3판 해서 가장 좋은 기록을 적어 두세요. 한 판은 운이 크게 작용해요.</li><li><strong>3자리 리듬 고정(1~2일차)</strong>: 화면의 띄어쓰기대로 3자리씩 한 박자에 읽는 연습만 해요.</li><li><strong>의미 붙이기(3~4일차)</strong>: 덩어리마다 아는 숫자(연도, 번호, 생일)가 있는지 0.5초 안에 찾아보는 연습을 해요.</li><li><strong>되뇌기 리듬(5~6일차)</strong>: 숫자가 사라진 뒤 입력 전까지 같은 리듬으로 한 번 더 되뇌어요.</li><li><strong>다시 측정(7일차)</strong>: 첫날과 같은 기기·같은 시간대에 3판을 해서 비교해요.</li></ol>
<p>연습할 때는 하루 10~15분 정도 짧게 하는 게 좋아요. 오래 연달아 하면 집중력이 떨어져 오히려 기록이 나빠지고, 수면 부족·피로·스트레스도 기록을 크게 흔들어요. 순간 집중력이 궁금하다면 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>와 <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응속도 평균은 몇 ms일까</a> 글도 함께 보세요.</p>
<aside class="callout warn"><b class="callout-h">주의</b><p>이 게임 기록으로 기억력 저하나 치매를 판단할 수 없어요. 검사에서 쓰는 숫자 폭은 소리로 한 자리씩 1초 간격으로 들려주는 등 조건이 엄격하게 정해져 있어서, 화면에 한꺼번에 보여 주는 게임과는 점수 의미가 달라요.</p></aside>
<h3>흔한 실수</h3>
<ul><li><strong>처음부터 끝까지 낱개로 읽기</strong>: 7자리 근처에서 바로 막히는 가장 흔한 이유예요.</li><li><strong>덩어리 크기를 매번 바꾸기</strong>: 어떤 땐 2자리, 어떤 땐 4자리로 묶으면 묶는 데 시간이 더 걸려요. 기본은 3자리로 고정하세요.</li><li><strong>마지막 덩어리 소홀</strong>: 앞부분만 열심히 외우다 마지막 1~2자리를 놓치는 경우가 많아요. 12자리라면 "382 010 571 945"처럼 마지막까지 같은 박자로 읽으세요.</li></ul>
<h2 id="s8">자주 묻는 질문</h2>
<h3>숫자 기억력 평균은 몇 자리인가요?</h3>
<p>컴퓨터로 잰 Woods 외(2011) 연구에서 성인의 바로 따라 외우기 평균은 6.35~7.36자리(전통 방식)였어요. Miller(1956)는 이 범위를 7±2로 정리했어요. 다만 측정 방식에 따라 결과가 달라서 온라인 테스트 기록을 기준표와 직접 비교하긴 어려워요.</p>
<h3>7자리를 못 넘기면 기억력이 나쁜 건가요?</h3>
<p>아니에요. 7자리 근처는 많은 사람이 막히는 지점이고, 그 이상은 대개 청킹 같은 전략 차이예요. 이 게임은 오락용이라 기억력을 진단할 수 없고, 일상에서 기억력 변화가 걱정된다면 게임 점수보다 전문가 상담이 맞아요.</p>
<h3>7±2와 4개 중 어느 쪽이 맞나요?</h3>
<p>둘 다 맞는데 재는 조건이 달라요. 7±2는 평소처럼 되뇌기와 묶기를 쓸 수 있을 때의 범위이고, Cowan(2001)의 약 4개는 그런 전략을 막았을 때 동시에 붙잡을 수 있는 덩어리 수예요.</p>
<h3>청킹을 하면 정말 기록이 늘어나나요?</h3>
<p>같은 12자리도 3자리씩 묶으면 머릿속 항목이 12개에서 4개로 줄어요. 대학생이 연습으로 79자리까지 외운 사례(Ericsson, Chase &amp; Faloon 1980)도 청킹 덕분이었어요. 다만 늘어난 능력은 주로 숫자 외우기에 한정됐어요.</p>
<h3>거꾸로 외우기가 더 어려운 이유는 뭔가요?</h3>
<p>숫자를 붙잡아 두는 것에 더해 순서를 머릿속에서 뒤집는 작업이 추가되기 때문이에요. 그래서 거꾸로 따라 외우기는 보통 바로 따라 외우기보다 짧게 나오고, 작업 기억을 보는 과제로 함께 쓰여요.</p>
<h2 id="s9">정리</h2>
<p>숫자 폭은 성인 평균 6.5~7.4자리 정도이고, 7±2(Miller 1956)는 되뇌기·묶기를 포함한 실제 범위, 약 4덩어리(Cowan 2001)는 순수하게 동시에 쥐는 용량이에요. 그래서 기록을 늘리는 핵심은 3자리 리듬으로 묶고, 의미를 붙이고, 같은 박자로 되뇌는 것이에요. 다만 연습으로 늘어난 기록은 주로 그 과제에 한정된다는 점도 기억해 두세요.</p>
<p>지금 <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억력 테스트</a>로 기준 기록을 재고, 1주 루틴 뒤에 다시 비교해 보세요. 머리를 쓰는 다른 게임으로는 <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 공략</a>도 있어요.</p>
    ]]></description>
    </item>
    <item>
      <title>2048 게임 공략, 코너 전략과 뱀 배치로 2048 타일 만드는 법</title>
      <link>https://game.smithlab.co.kr/posts/games/2048-strategy-guide/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/2048-strategy-guide/</guid>
      <pubDate>Mon, 05 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>2048을 처음 하면 대부분 512나 1024 근처에서 판이 꽉 막혀요. 방향키를 아무렇게나 누르다 보면 "이건 운 게임이구나" 싶지만, 새 타일이 2 아니면 4로만 나오는 단순한 게임이라 몇 가지 원칙만 지켜도 결과가 크게 달라져요. 결론부터 말하면 가장 큰 수를 한쪽 코너에 박아 두고, 그 옆으로 큰 순서대로 뱀(S자)처럼 이어지게 쌓는 것, 이 하나가 공략의 거의 전부예요.</p>
<p>이 글에서는 코너 전략을 실제로 어떻게 운영하는지, 어떤 방향을 피해야 하는지, 막혔을 때 어떻게 수습하는지, 그리고 점수가 정확히 어떤 원리로 올라가는지를 계산으로 보여 드릴게요. 바로 해 보고 싶다면 <a href="https://game.smithlab.co.kr/games/2048/">2048 게임</a>을 옆에 띄워 놓고 읽으셔도 좋아요. 방향키와 스와이프 둘 다 되고, 최고 점수는 브라우저 쿠키에 저장돼요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>가장 큰 타일을 한 코너(예: 왼쪽 위)에 고정하고, 첫 줄을 큰 수부터 내림차순으로 채운 뒤 다음 줄은 반대 방향으로 이어 가는 뱀 배치를 만드세요.</li><li>기본은 두 방향(← ↑)만 쓰고, 세 번째 방향(→)은 첫 줄이 꽉 찼을 때만, 네 번째 방향(↓)은 정말 다른 수가 없을 때만 써요.</li><li>점수는 합칠 때 생기는 새 타일 값의 합이라, 2로만 2^n 타일을 만들면 정확히 (n−1)×2^n 점이 쌓여요. 2048 타일 하나면 20,480점이에요.</li><li>새 타일은 원작 기준 90% 확률로 2, 10% 확률로 4가 나오고, 한 번 움직일 때마다 하나씩 생겨요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">2048 게임 규칙, 공략 전에 정확히 짚기</h2>
<p>규칙이 단순해서 오히려 대충 알고 넘어가기 쉬워요. 공략에 직접 관련되는 부분만 정리하면 이렇습니다.</p>
<ul><li>4×4 판에서 방향키(또는 스와이프)를 누르면 모든 타일이 그 방향 끝까지 미끄러져요.</li><li>같은 숫자 두 개가 부딪히면 하나로 합쳐지고, 값은 두 배가 돼요. 한 번 움직일 때 이미 합쳐진 타일은 그 턴에 또 합쳐지지 않아요. 그래서 <code>2 2 2 2</code> 를 왼쪽으로 밀면 <code>4 4 _ _</code> 가 되지, <code>8</code> 이 되지 않아요.</li><li>실제로 무언가 움직인 경우에만 빈칸 하나에 새 타일이 생겨요. <a href="https://github.com/gabrielecirulli/2048" target="_blank" rel="noopener">원작(Gabriele Cirulli의 2048) 소스 코드</a> 기준으로 2가 나올 확률 90%, 4가 나올 확률 10%예요(<code>Math.random() &lt; 0.9 ? 2 : 4</code>). 이 사이트의 2048도 같은 확률을 써요.</li><li>빈칸이 없고 인접한 같은 수도 없으면 게임 오버예요.</li><li>점수는 <strong>합쳐서 새로 생긴 타일의 값</strong>만큼 올라가요. 2+2로 4가 생기면 4점, 1024+1024로 2048이 생기면 2048점이에요.</li></ul>
<p>한 줄을 왼쪽(←)으로 밀 때 실제로 어떻게 합쳐지는지 예시로 보면 규칙이 바로 잡혀요. 아래 결과는 원작과 같은 합치기 규칙을 파이썬으로 구현해 직접 돌린 값이에요.</p>
<div class="table-wrap"><table><thead><tr><th>밀기 전 줄</th><th>← 민 뒤</th><th>이번 이동 점수</th><th>읽는 법</th></tr></thead><tbody><tr><td>2 2 2 2</td><td>4 4 _ _</td><td>8</td><td>왼쪽부터 두 개씩 짝지어 합쳐져요</td></tr><tr><td>2 2 4 _</td><td>4 4 _ _</td><td>4</td><td>새로 생긴 4는 옆의 4와 그 턴에 안 합쳐져요</td></tr><tr><td>4 2 2 _</td><td>4 4 _ _</td><td>4</td><td>같은 이유로 8이 되지 않아요</td></tr><tr><td>2 _ 2 4</td><td>4 4 _ _</td><td>4</td><td>빈칸은 없는 셈 치고 미끄러진 뒤 합쳐요</td></tr><tr><td>4 4 8 8</td><td>8 16 _ _</td><td>24</td><td>한 줄에서 두 쌍이 동시에 합쳐질 수 있어요</td></tr><tr><td>2 4 8 16</td><td>2 4 8 16</td><td>0</td><td>움직임이 없으니 새 타일도 안 생겨요</td></tr></tbody></table></div>
<p>마지막 줄이 중요해요. 아무것도 움직이지 않는 방향은 "눌러도 턴이 안 넘어가는" 방향이라, 판이 위험할 때 시간을 버는 수단이 되지 못해요.</p>
<p>여기서 중요한 사실 두 가지가 나와요. 첫째, 새 타일은 빈칸 중 무작위 자리에 생겨서 내가 통제할 수 없어요. 그러니 <strong>어디에 떨어져도 덜 위험한 판 모양</strong>을 유지하는 게 핵심이에요. 둘째, 같은 줄에 같은 수가 셋 이상 있으면 미는 방향 쪽부터 먼저 합쳐져요. 이 순서를 알면 원하는 타일만 골라 합칠 수 있어요.</p>
<h2 id="s2">코너 전략: 가장 큰 수를 한 구석에 고정하기</h2>
<p>코너 전략은 2048 공략에서 가장 널리 쓰이는 방법이에요. 원리는 간단해요. 큰 타일이 판 한가운데 있으면 주변 네 칸이 모두 작은 수에 둘러싸여 합칠 길이 막혀요. 반대로 코너에 있으면 이웃이 두 칸뿐이라, 그 두 칸만 관리하면 돼요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/2048-strategy-guide-1.svg" alt="왼쪽 위 코너에 2048을 두고 첫 줄은 2048-1024-512-256, 둘째 줄은 128-64-32-16을 거꾸로, 셋째 줄은 8-4-2로 이어지는 뱀 배치 예시와 방향 사용 원칙 카드" width="800" height="520" loading="lazy" decoding="async"><figcaption>큰 수는 코너에, 나머지는 S자로 이어 붙이기</figcaption></figure>
<p>코너를 하나 정했으면(여기서는 왼쪽 위로 예를 들게요) 운영은 이렇게 해요.</p>
<ol><li>첫 줄을 내림차순으로 채운다. 왼쪽 위가 가장 크고, 오른쪽으로 갈수록 작아지게 둬요. 예: <code>256 128 64 32</code>.</li><li>둘째 줄은 반대 방향으로 이어 간다. 첫 줄 오른쪽 끝(가장 작은 수) 바로 아래에 그다음 큰 수가 오게 해요. 그러면 둘째 줄에서 수가 자라 첫 줄 끝과 같은 값이 되는 순간, 위로 밀어 합치고 그 결과가 다시 왼쪽으로 연쇄해서 합쳐져요.</li><li>새 타일은 아래쪽 빈 공간에서 키운다. 작은 수끼리 합치는 작업은 아래 두 줄에서 하고, 완성된 수를 위로 올려 보내는 느낌으로 해요.</li></ol>
<p>이 배치를 뱀(snake) 배치, 또는 체인이라고 부르는데, 핵심은 "다음에 합쳐질 타일이 바로 옆에 붙어 있게" 만드는 거예요. 위 그림처럼 8 → 16 → 32 → 64 → 128 → 256 → 512 → 1024 → 2048 순서로 한 줄로 이어져 있으면, 맨 끝의 8 옆에 8이 하나 만들어지는 순간 연쇄가 시작돼요.</p>
<h3>왜 꼭 한 코너여야 할까</h3>
<p>코너를 중간에 바꾸면 그동안 쌓은 내림차순 줄이 통째로 무너져요. 예를 들어 왼쪽 위에 1024가 있는데 아래로 한 번 밀어 버리면, 첫 줄 빈자리에 2나 4가 끼어들어 1024가 코너에서 밀려나요. 이걸 다시 되돌리려면 그 작은 타일을 1024 크기까지 키워야 해서 사실상 판이 끝나요. 그래서 코너는 처음에 정하면 끝까지 유지하는 게 원칙이에요.</p>
<h2 id="s3">방향 운영법: 두 방향 위주, 세 번째는 아껴서, 네 번째는 금지</h2>
<p>왼쪽 위 코너 기준으로 방향마다 역할을 나누면 이렇게 돼요.</p>
<div class="table-wrap"><table><thead><tr><th>방향</th><th>사용 빈도</th><th>이유</th></tr></thead><tbody><tr><td>← 왼쪽</td><td>가장 자주</td><td>큰 수를 코너 쪽으로 모아 줌</td></tr><tr><td>↑ 위쪽</td><td>가장 자주</td><td>큰 수를 첫 줄로 올려 보냄</td></tr><tr><td>→ 오른쪽</td><td>가끔</td><td>첫 줄이 4칸 모두 차 있을 때만 안전</td></tr><tr><td>↓ 아래쪽</td><td>거의 안 씀</td><td>첫 줄에 빈칸이 생기고 코너가 무너질 위험</td></tr></tbody></table></div>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/2048-strategy-guide-2.svg" alt="왼쪽은 첫 줄 512-256-128-64가 꽉 차 있어 오른쪽으로 밀어도 첫 줄이 그대로인 경우, 오른쪽은 첫 줄 끝이 비어 있어 512가 코너에서 밀려나고 코너가 비는 경우를 나란히 비교한 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>같은 → 한 번도 첫 줄이 꽉 찼는지에 따라 결과가 정반대예요</figcaption></figure>
<p>오른쪽을 쓸 때 조건이 중요해요. 첫 줄이 꽉 차 있고 그 안에 이웃한 같은 수가 없으면 오른쪽으로 밀어도 첫 줄은 움직이지 않으니 코너가 안전해요. 첫 줄에 빈칸이 하나라도 있으면 큰 수가 오른쪽으로 끌려가고, 비어 버린 왼쪽 위 코너에 새 타일이 떨어질 수 있어요.</p>
<aside class="callout warn"><b class="callout-h">주의</b><p>첫 줄에 같은 수가 나란히 있을 때도 → 는 위험해요. 예를 들어 첫 줄이 <code>256 128 128 32</code> 이면 → 를 누르는 순간 128 두 개가 합쳐지며 줄이 오른쪽으로 당겨지고, 코너 자리가 비어요. 이럴 땐 ← 로 먼저 합치세요.</p></aside>
<p>아래쪽은 위와 왼쪽, 오른쪽이 모두 안 움직일 때만 어쩔 수 없이 써요. 그때도 바로 다음 수에 위로 다시 밀어서 첫 줄을 복구할 수 있는지 먼저 확인해요. 만약 아래로 밀었는데 코너 자리에 2가 생겼다면, 당황하지 말고 그 2를 최대한 빨리 키워 첫 줄 순서에 끼워 넣거나, 큰 수를 다시 코너로 데려올 기회를 노려야 해요.</p>
<h2 id="s4">2048 점수 계산법: 2048 타일 하나는 몇 점일까</h2>
<p>점수가 어떻게 쌓이는지 알면 "이 판에서 몇 점 정도 나올지"가 감이 와요. 규칙상 점수는 합칠 때 생긴 타일 값의 합이에요.</p>
<p>2로만 시작한다고 가정하고, 2^n 타일 하나를 만들 때 쌓이는 점수를 S(n)이라고 하면</p>
<ul><li>4(=2²)를 만들려면 2+2를 한 번 합치니 4점 → S(2) = 4</li><li>8을 만들려면 4를 두 개 만들고(4+4점) 마지막에 8점 → S(3) = 2×4 + 8 = 16</li><li>일반적으로 S(n) = 2×S(n−1) + 2^n 이고, 이를 풀면 <strong>S(n) = (n−1)×2^n</strong> 이에요.</li></ul>
<p>확인해 볼게요. 16 = 2⁴ 이니 (4−1)×16 = 48점, 실제로도 8 두 개(16+16)에 마지막 16을 더하면 48점이에요. 같은 식으로 2048 = 2¹¹ 이니 <strong>10 × 2048 = 20,480점</strong>이에요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">타일 하나를 2로만 만들었을 때 쌓이는 점수</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="타일 하나를 2로만 만들었을 때 쌓이는 점수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">10,000</text><line class="viz-grid" x1="52" x2="628" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">20,000</text><line class="viz-grid" x1="52" x2="628" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">30,000</text><line class="viz-grid" x1="52" x2="628" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">40,000</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">50,000</text><rect class="s1" x="66.4" y="250.4" width="67.2" height="3.6" rx="3"><title>128 · 점수 768점</title></rect><text class="viz-val" x="100.0" y="245.4" text-anchor="middle">768</text><text class="viz-ax" x="100.0" y="272" text-anchor="middle">128</text><rect class="s1" x="162.4" y="245.5" width="67.2" height="8.5" rx="3"><title>256 · 점수 1,792점</title></rect><text class="viz-val" x="196.0" y="240.5" text-anchor="middle">1,792</text><text class="viz-ax" x="196.0" y="272" text-anchor="middle">256</text><rect class="s1" x="258.4" y="234.7" width="67.2" height="19.3" rx="3"><title>512 · 점수 4,096점</title></rect><text class="viz-val" x="292.0" y="229.7" text-anchor="middle">4,096</text><text class="viz-ax" x="292.0" y="272" text-anchor="middle">512</text><rect class="s1" x="354.4" y="210.5" width="67.2" height="43.5" rx="3"><title>1024 · 점수 9,216점</title></rect><text class="viz-val" x="388.0" y="205.5" text-anchor="middle">9,216</text><text class="viz-ax" x="388.0" y="272" text-anchor="middle">1024</text><rect class="s1" x="450.4" y="157.3" width="67.2" height="96.7" rx="3"><title>2048 · 점수 20,480점</title></rect><text class="viz-val" x="484.0" y="152.3" text-anchor="middle">20,480</text><text class="viz-ax" x="484.0" y="272" text-anchor="middle">2048</text><rect class="s1" x="546.4" y="41.3" width="67.2" height="212.7" rx="3"><title>4096 · 점수 45,056점</title></rect><text class="viz-val" x="580.0" y="36.3" text-anchor="middle">45,056</text><text class="viz-ax" x="580.0" y="272" text-anchor="middle">4096</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">한 단계 올라갈 때마다 점수는 두 배보다 조금 더 늘어나요</p><div class="viz-cap">단위: 점 · 자료: 공식 (n-1)×2^n 으로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>점수</th></tr></thead><tbody><tr><td>128</td><td>768</td></tr><tr><td>256</td><td>1,792</td></tr><tr><td>512</td><td>4,096</td></tr><tr><td>1024</td><td>9,216</td></tr><tr><td>2048</td><td>20,480</td></tr><tr><td>4096</td><td>45,056</td></tr></tbody></table></div></details></figure>
<h3>4가 나오면 점수가 조금 깎이는 이유</h3>
<p>실제 게임에서는 10% 확률로 4가 바로 생겨요. 스폰된 4는 "2+2를 합쳐서 4점을 받는 과정"을 건너뛴 셈이라, 그 4점을 못 받아요. 그래서 실제 점수는 (n−1)×2^n − 4×(스폰된 4의 개수) 예요.</p>
<p>판 위 숫자의 합은 지금까지 생긴 타일 값의 합과 같아요(합쳐도 합은 그대로니까요). 새 타일 하나의 기댓값은 0.9×2 + 0.1×4 = 2.2 이므로, 2048 타일 하나에 들어간 스폰 수는 평균 2048 ÷ 2.2 ≈ 931개, 그중 4는 약 93개예요. 그러면 기대 점수는 20,480 − 4×93.1 ≈ <strong>20,108점</strong> 정도예요. 움직일 때마다 타일이 하나씩 생기니, 2048 타일 하나를 만들기까지 대략 930번 정도는 움직여야 한다는 뜻이기도 해요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">타일 하나를 만드는 데 필요한 평균 이동 횟수 (기댓값)</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="타일 하나를 만드는 데 필요한 평균 이동 횟수 (기댓값)" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">500</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">1,000</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">1,500</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">2,000</text><rect class="s1" x="66.4" y="247.2" width="67.2" height="6.8" rx="3"><title>128 · 이동 횟수 58회</title></rect><text class="viz-val" x="100.0" y="242.2" text-anchor="middle">58</text><text class="viz-ax" x="100.0" y="272" text-anchor="middle">128</text><rect class="s1" x="162.4" y="240.3" width="67.2" height="13.7" rx="3"><title>256 · 이동 횟수 116회</title></rect><text class="viz-val" x="196.0" y="235.3" text-anchor="middle">116</text><text class="viz-ax" x="196.0" y="272" text-anchor="middle">256</text><rect class="s1" x="258.4" y="226.5" width="67.2" height="27.5" rx="3"><title>512 · 이동 횟수 233회</title></rect><text class="viz-val" x="292.0" y="221.5" text-anchor="middle">233</text><text class="viz-ax" x="292.0" y="272" text-anchor="middle">512</text><rect class="s1" x="354.4" y="199.1" width="67.2" height="54.9" rx="3"><title>1024 · 이동 횟수 465회</title></rect><text class="viz-val" x="388.0" y="194.1" text-anchor="middle">465</text><text class="viz-ax" x="388.0" y="272" text-anchor="middle">1024</text><rect class="s1" x="450.4" y="144.1" width="67.2" height="109.9" rx="3"><title>2048 · 이동 횟수 931회</title></rect><text class="viz-val" x="484.0" y="139.1" text-anchor="middle">931</text><text class="viz-ax" x="484.0" y="272" text-anchor="middle">2048</text><rect class="s1" x="546.4" y="34.3" width="67.2" height="219.7" rx="3"><title>4096 · 이동 횟수 1,862회</title></rect><text class="viz-val" x="580.0" y="29.3" text-anchor="middle">1,862</text><text class="viz-ax" x="580.0" y="272" text-anchor="middle">4096</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><div class="viz-cap">단위: 회 · 자료: 새 타일 기댓값 2.2(2가 90% · 4가 10%)로 나눠 직접 계산 · 반올림</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>이동 횟수</th></tr></thead><tbody><tr><td>128</td><td>58</td></tr><tr><td>256</td><td>116</td></tr><tr><td>512</td><td>233</td></tr><tr><td>1024</td><td>465</td></tr><tr><td>2048</td><td>931</td></tr><tr><td>4096</td><td>1,862</td></tr></tbody></table></div></details></figure>
<h3>2048 달성 순간 점수가 2만 점보다 높은 이유</h3>
<p>2048이 처음 뜨는 순간 판에는 2048 말고도 다른 타일이 깔려 있어요. 위 그림의 판(2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2)을 전부 2로만 만들었다고 치면 점수는 20,480 + 9,216 + 4,096 + 1,792 + 768 + 320 + 128 + 48 + 16 + 4 + 0 = <strong>36,868점</strong>이에요. 여기서 스폰된 4만큼 조금 빠지니, 판 모양이 이 정도라면 3만 점 중후반이 나와요. 반대로 말하면 점수만 봐도 판에 무엇이 얼마나 쌓였는지 거꾸로 짐작할 수 있어요.</p>
<h2 id="s5">직접 돌려 본 시뮬레이션: 원칙만 지켜도 점수가 몇 배</h2>
<p>"코너 전략이 정말 효과가 있나?"는 컴퓨터로 확인할 수 있어요. 원작 규칙(새 타일 2가 90%, 4가 10%)을 그대로 구현하고, 세 가지 방식으로 각각 3,000판씩 끝까지 두게 했어요. 같은 난수 씨앗(seed 42)을 써서 조건을 맞췄어요.</p>
<ul><li>무작위: 매 턴 네 방향 중 아무거나 눌러요.</li><li>코너 고정 순서: 항상 ←, ↑, →, ↓ 순서로 시도해서 움직이는 첫 방향을 눌러요. 생각 없이 우선순위만 지키는 방식이에요.</li><li>코너 + 빈칸 우선: ←·↑·→ 중에서 "가장 큰 수가 왼쪽 위 코너에 남는가 → 빈칸이 가장 많이 남는가 → 이번 점수가 큰가" 순으로 골라요. ↓는 다른 방향이 모두 막혔을 때만 써요. 한 수만 내다보는 아주 단순한 판단이에요.</li></ul>
<div class="table-wrap"><table><thead><tr><th>방식 (각 3,000판)</th><th>평균 점수</th><th>평균 이동 수</th><th>128 이상 도달</th><th>256 이상</th><th>512 이상</th><th>1024 이상</th></tr></thead><tbody><tr><td>무작위</td><td>1,081</td><td>117</td><td>54.1%</td><td>7.6%</td><td>0%</td><td>0%</td></tr><tr><td>코너 고정 순서</td><td>2,309</td><td>208</td><td>86.6%</td><td>48.5%</td><td>2.6%</td><td>0%</td></tr><tr><td>코너 + 빈칸 우선</td><td>3,769</td><td>300</td><td>97.3%</td><td>78.1%</td><td>24.8%</td><td>0.4%</td></tr></tbody></table></div>
<figure class="viz viz-hbar"><figcaption class="viz-title">방식별 평균 점수 (각 3,000판 시뮬레이션)</figcaption><svg viewBox="0 0 640 118" role="img" aria-label="방식별 평균 점수 (각 3,000판 시뮬레이션)" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="130" y="29" text-anchor="end">무작위</text><rect class="s1" x="140" y="15" width="116.2" height="20" rx="3"><title>무작위 · 1,081점</title></rect><text class="viz-val" x="262.2" y="29">1,081점</text><text class="viz-ax lg" x="130" y="63" text-anchor="end">코너 고정 순서</text><rect class="s1" x="140" y="49" width="248.2" height="20" rx="3"><title>코너 고정 순서 · 2,309점</title></rect><text class="viz-val" x="394.2" y="63">2,309점</text><text class="viz-ax lg" x="130" y="97" text-anchor="end">코너 + 빈칸 우선</text><rect class="s1" x="140" y="83" width="405.2" height="20" rx="3"><title>코너 + 빈칸 우선 · 3,769점</title></rect><text class="viz-val" x="551.2" y="97">3,769점</text></svg><p class="viz-note">한 수만 내다봐도 무작위보다 평균 점수가 약 3.5배예요</p><div class="viz-cap">단위: 점 · 자료: 원작 규칙을 파이썬으로 구현해 직접 시뮬레이션 (seed 42 · 2026-10-18)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>평균 점수</th></tr></thead><tbody><tr><td>무작위</td><td>1,081</td></tr><tr><td>코너 고정 순서</td><td>2,309</td></tr><tr><td>코너 + 빈칸 우선</td><td>3,769</td></tr></tbody></table></div></details></figure>
<p>결과에서 읽을 점은 세 가지예요. 첫째, 방향 우선순위만 고정해도 평균 점수가 2배 넘게 올라요. 둘째, 그 위에 "빈칸을 많이 남기는 수"를 고르는 판단 하나를 더하면 512 도달률이 2.6%에서 24.8%로 뛰어요. 셋째, 한 수만 보는 단순 규칙으로는 1024조차 0.4%에 그치고 2048은 한 판도 못 만들었어요.</p>
<p>즉 코너 전략은 출발점일 뿐이고, 2048까지 가려면 두세 수 앞을 보며 "다음에 합쳐질 타일이 옆에 붙도록" 배치를 다듬는 사람의 판단이 필요해요. 아래 습관들이 바로 그 부분이에요.</p>
<aside class="callout tip"><b class="callout-h">팁</b><p>판단이 애매하면 "이 수를 두고 나면 빈칸이 몇 개 남는가"를 세어 보세요. 시뮬레이션에서 빈칸을 기준으로 고르는 것만으로 512 도달률이 약 10배가 됐어요.</p></aside>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">판이 막혔을 때 수습하는 법</h2>
<p>아무리 조심해도 판은 막혀요. 자주 겪는 상황별로 정리할게요.</p>
<ul><li><strong>첫 줄에 작은 수가 끼었을 때</strong>: 예를 들어 <code>512 256 4 64</code> 처럼 순서가 깨졌다면, 4 바로 아래에서 4를 만들어 위로 합치는 식으로 끼어든 타일을 먼저 키워요. 무리하게 다른 큰 수를 움직이지 않는 게 좋아요.</li><li><strong>같은 수가 떨어져 있을 때</strong>: 64가 첫 줄과 셋째 줄에 따로 있다면, 아래 64를 위로 올리는 길을 먼저 비워요. 한 번에 안 되면 그 사이 칸들을 먼저 정리해요.</li><li><strong>빈칸이 2개 이하일 때</strong>: 가장 위험한 순간이에요. 이때는 작은 수 합치기를 최우선으로 해서 빈칸을 늘려요. 큰 수 합치기는 빈칸을 하나만 만들지만, 아래쪽 작은 수 정리는 여러 칸을 한꺼번에 비워 줄 때가 많아요.</li><li><strong>어쩔 수 없이 아래로 밀어야 할 때</strong>: 첫 줄 전체가 같이 내려가는지, 코너만 비는지를 먼저 봐요. 코너가 있는 열(맨 왼쪽 열)이 위에서 아래까지 꽉 차 있고 세로로 합쳐질 쌍이 없다면, 아래로 밀어도 코너 타일은 그 자리에 그대로 있어요.</li></ul>
<h2 id="s7">고득점을 위한 습관 5가지</h2>
<ol><li>한 수 앞을 본다. 누르기 전에 "이걸 밀면 빈칸이 어디에 생기는지"를 봐요. 새 타일은 빈칸 아무 곳에나 떨어지니, 빈칸이 코너 옆에 생기는 수는 피해요.</li><li>작은 수를 흩어 놓지 않는다. 2와 4가 판 곳곳에 하나씩 있으면 합칠 상대를 못 찾아요. 아래 두 줄에서 몰아서 처리해요.</li><li>큰 수를 성급하게 합치지 않는다. 256 두 개가 있어도 그걸 합쳐서 오히려 줄 순서가 깨진다면 잠시 미뤄요.</li><li>빠르게 누르지 않는다. 2048은 시간제한이 없어요. 판이 커질수록 한 번 실수의 대가가 커지니 천천히 해요.</li><li>기록을 남긴다. 우리 사이트의 <a href="https://game.smithlab.co.kr/games/2048/">2048 게임</a>은 최고 점수가 쿠키에 저장돼요. 같은 브라우저에서 기록을 비교하면 내가 어느 단계에서 자주 무너지는지 보여요.</li></ol>
<h2 id="s8">단계별 목표: 어느 타일에서 무엇이 달라지나</h2>
<p>타일이 커질수록 판에 들고 있어야 하는 "재료"가 늘어나서 같은 실수의 대가도 커져요. 아래 표의 점수·이동 수는 앞에서 쓴 공식과 새 타일 기댓값 2.2로 계산한 값이고, 필요한 칸 수는 그 타일을 만들기 직전에 뱀 사슬(예: 256을 만들기 직전이면 128 → 64 → … → 2 → 2)이 차지하는 최소 칸 수예요.</p>
<div class="table-wrap"><table><thead><tr><th>목표 타일</th><th>2로만 만들 때 점수</th><th>평균 이동 수</th><th>직전 사슬이 차지하는 칸</th><th>이 단계의 핵심</th></tr></thead><tbody><tr><td>256</td><td>1,792</td><td>약 116</td><td>8칸 (판의 절반)</td><td>코너를 정하고 바꾸지 않기</td></tr><tr><td>512</td><td>4,096</td><td>약 233</td><td>9칸</td><td>첫 줄 내림차순 유지</td></tr><tr><td>1024</td><td>9,216</td><td>약 465</td><td>10칸</td><td>둘째 줄을 반대 방향으로 잇기</td></tr><tr><td>2048</td><td>20,480</td><td>약 931</td><td>11칸</td><td>아래 두 줄에서만 작은 수 처리</td></tr><tr><td>4096</td><td>45,056</td><td>약 1,862</td><td>12칸</td><td>남는 4칸으로 버티는 정밀 운영</td></tr></tbody></table></div>
<p>2^n 타일을 만들기 직전에는 2^(n−1), 2^(n−2), …, 2, 2처럼 n개의 타일이 한 줄로 이어져 있어야 연쇄가 터져요. 4096이면 그 사슬만 12칸이라 16칸 판에서 숨 쉴 공간이 4칸뿐이에요. 4096부터 난이도가 급격히 오르는 이유가 여기에 있어요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s9">흔한 실수와 오해</h2>
<ul><li><strong>"4방향을 골고루 써야 한다"</strong>: 반대예요. 골고루 쓸수록 큰 수가 판 가운데로 떠돌아요.</li><li><strong>"2048 만들면 끝"</strong>: 원작은 2048 이후에도 계속할 수 있어요. 4096, 8192로 가려면 판 공간이 훨씬 빠듯해져서 뱀 배치가 더 엄격해야 해요.</li><li><strong>"점수가 높으면 타일도 높다"</strong>: 대체로 맞지만 정확히 비례하진 않아요. 위에서 본 것처럼 점수는 판 전체 타일의 생성 이력을 반영해요.</li></ul>
<p>숫자 퍼즐보다 순발력이 궁금하다면 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>와 <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응속도 평균과 높이는 법</a> 글도, 논리 퍼즐을 좋아한다면 <a href="https://game.smithlab.co.kr/posts/games/minesweeper-patterns/">지뢰찾기 패턴 공략</a>도 같이 보시면 좋아요.</p>
<h2 id="s10">자주 묻는 질문</h2>
<h3>2048은 운 게임인가요?</h3>
<p>새 타일 위치와 2·4 여부는 무작위라 운이 섞여 있어요. 하지만 코너 전략처럼 어떤 위치에 타일이 떨어져도 버틸 수 있는 판 모양을 유지하면 운의 영향이 크게 줄어요. 같은 사람이 원칙을 지키기 전후로 결과가 확연히 달라지는 게임이에요.</p>
<h3>2048 타일을 만들면 점수는 몇 점인가요?</h3>
<p>2로만 만들었다면 2048 타일 하나에 정확히 20,480점이 쌓여요. 실제로는 4가 섞여 나와 평균 약 20,100점이고, 그 순간 판에 남은 다른 타일 점수까지 합치면 보통 그보다 높게 나와요.</p>
<h3>어느 코너가 가장 좋나요?</h3>
<p>네 코너는 대칭이라 성능 차이는 없어요. 손에 익은 방향 두 개를 정하고 그에 맞는 코너를 고르면 돼요. 중요한 건 한 번 정한 코너를 판이 끝날 때까지 바꾸지 않는 거예요.</p>
<h3>아래 방향(↓)은 절대 쓰면 안 되나요?</h3>
<p>다른 세 방향이 모두 움직이지 않을 때는 써야 해요. 다만 쓰기 전에 첫 줄이 같이 내려가서 코너가 비는지 확인하고, 바로 다음 수에 위로 복구할 수 있는지 생각해 두세요.</p>
<h3>새 타일이 4가 나올 확률은 얼마인가요?</h3>
<p>원작 2048 기준으로 새 타일은 90% 확률로 2, 10% 확률로 4예요. 그래서 새 타일 하나의 평균값은 2.2이고, 이 값으로 필요한 이동 횟수와 기대 점수를 대략 계산할 수 있어요.</p>
<h2 id="s11">정리</h2>
<p>2048 공략은 결국 코너 하나, 내림차순 첫 줄, 뱀처럼 이어지는 다음 줄이에요. 방향은 두 개를 주로 쓰고, 세 번째는 첫 줄이 꽉 찼을 때만, 네 번째는 다른 수가 없을 때만 써요. 점수는 (n−1)×2^n 공식으로 계산돼서 2048 타일 하나에 약 2만 점, 이를 위해 평균 930번 정도 움직여야 해요.</p>
<p>원칙을 알았으면 바로 <a href="https://game.smithlab.co.kr/games/2048/">2048 게임</a>에서 확인해 보세요. 머리를 식히고 싶다면 <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a>나 <a href="https://game.smithlab.co.kr/games/snake/">스네이크 게임</a>도 준비돼 있어요.</p>
    ]]></description>
    </item>
    <item>
      <title>두뇌 게임과 치매 예방 — 어디까지 사실일까 — 뇌 건강 생활습관과…</title>
      <link>https://game.smithlab.co.kr/posts/games/brain-games-dementia-facts/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/brain-games-dementia-facts/</guid>
      <pubDate>Mon, 05 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>부모님이 요즘 깜빡하는 일이 늘었다고 하시면 덜컥 걱정이 돼요. 그래서 "치매 예방 게임"을 검색하게 되고, 광고에서는 "하루 10분이면 뇌가 젊어진다" 같은 말이 쏟아지죠. 결론부터 말하면 두뇌 게임만으로 치매를 예방하거나 치료한다는 의학적 근거는 없어요. 다만 머리를 쓰는 활동은 운동·사회 활동·혈압 관리와 함께 <strong>뇌 건강에 좋은 생활 습관의 한 조각</strong>으로 권장되고, 무엇보다 부모님과 매일 이야기할 거리가 된다는 장점이 있어요.</p>
<p>이 글에서는 두뇌 게임 연구에서 비교적 분명한 것과 아직 논쟁 중인 것, 치매 위험을 낮추는 데 더 큰 역할을 하는 생활 습관, 보건복지부·중앙치매센터가 알리는 치매 예방 수칙 3·3·3, 그리고 부모님과 <a href="https://game.smithlab.co.kr/games/brain-training/">두뇌 트레이닝</a>을 부담 없이 이어 가는 방법을 정리할게요. 기억력 변화가 이미 걱정되는 상황이라면 이 글보다 <strong>가까운 치매안심센터(보건소)나 병원 상담</strong>이 먼저라는 점도 꼭 기억해 주세요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>두뇌 게임을 하면 그 게임 실력은 확실히 늘지만, 그 효과가 일상의 기억력 전반으로 이어지는지는 연구마다 결과가 엇갈려요.</li><li>게임만으로 치매를 예방하거나 치료한다는 근거는 없고, 그렇게 광고하는 제품은 과장일 가능성이 높아요.</li><li>치매 위험을 낮추는 데는 신체 활동, 혈압·혈당 관리, 청력 관리, 금연·절주, 사람들과의 교류 같은 생활 습관이 함께 중요해요.</li><li>두뇌 게임은 매일 짧게, 가족과 함께, 다른 건강 습관과 묶어서 할 때 가장 의미가 있어요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">두뇌 게임 효과, 연구로 확인된 것과 아닌 것</h2>
<p>두뇌 훈련 연구를 크게 나누면 세 층으로 볼 수 있어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/brain-games-dementia-facts-1.svg" alt="두뇌 게임 효과를 비교적 분명함(연습한 게임 실력 향상), 연구마다 엇갈림(다른 능력과 일상으로의 전이), 확인되지 않음(게임만으로 치매 예방·치료) 세 칸으로 나눈 비교 카드" width="800" height="450" loading="lazy" decoding="async"><figcaption>연구 흐름을 단순화한 개념도예요</figcaption></figure>
<p>첫째, <strong>연습한 과제의 실력은 꾸준히 오른다</strong>는 건 거의 이견이 없어요. 카드 짝 맞추기를 매일 하면 카드 짝 맞추기가 빨라지고, 계산 문제를 풀면 그 유형의 계산이 빨라져요. 너무 당연하게 들리지만, 앱의 "뇌 나이가 10살 젊어졌어요" 같은 표시는 대부분 이 익숙해짐을 보여 주는 거예요.</p>
<p>둘째, 그 효과가 <strong>다른 능력이나 일상생활로 옮겨 가는지</strong>(학계에서는 '전이 효과'라고 불러요)는 지금도 논쟁 중이에요. 훈련한 과제와 비슷한 검사에서는 효과가 보이기도 하지만, 거리가 먼 능력일수록 효과가 약해지거나 사라진다는 연구가 많아요. 반대로 특정 훈련을 받은 노인을 오래 추적해 긍정적인 결과를 보고한 대규모 연구도 있어서, 아직 "된다" 또는 "안 된다"로 단정하기 어려운 영역이에요.</p>
<p>셋째, 게임만으로 치매를 예방하거나 치료한다는 것은 확인되지 않았어요. 2014년에는 여러 나라의 인지과학자·신경과학자 수십 명이 "두뇌 게임이 인지 저하를 줄이거나 되돌린다는 주장은 과학적 근거가 부족하다"는 공동 성명을 낸 적이 있고, 2016년에는 미국 연방거래위원회(FTC)가 한 유명 두뇌 훈련 앱 회사의 "치매·노화 예방" 광고를 근거 없는 광고로 보고 제재하기도 했어요. FTC 발표 내용은 <a href="https://www.ftc.gov/news-events/news/press-releases/2016/01/lumosity-pay-2-million-settle-ftc-deceptive-advertising-charges-its-brain-training-program" target="_blank" rel="noopener">미국 연방거래위원회 보도자료(2016년 1월)</a>에 있어요. 그러니 "이것만 하면 치매 걱정 끝" 같은 문구가 보이면 한 발 물러서서 보시는 게 좋아요.</p>
<h3>주요 연구를 숫자로 보면</h3>
<p>광고 문구 대신 실제 논문이 무엇을 보고했는지 정리하면 이래요. 모두 PubMed 초록에서 숫자를 그대로 옮겼어요.</p>
<div class="table-wrap"><table><thead><tr><th>연구</th><th>대상·기간</th><th>무엇을 했나</th><th>보고된 결과</th></tr></thead><tbody><tr><td><a href="https://pubmed.ncbi.nlm.nih.gov/24417410/" target="_blank" rel="noopener">ACTIVE 10년 추적 (Rebok 외 2014)</a></td><td>미국 노인 2,832명, 평균 73.6세, 10년</td><td>기억·추론·처리속도 훈련 10회 + 보강 4회</td><td>추론·속도 훈련 효과는 10년 유지, 기억 훈련 효과는 사라짐. 훈련군 약 60%, 대조군 50%가 일상 기능을 기준선 이상으로 유지</td></tr><tr><td><a href="https://pubmed.ncbi.nlm.nih.gov/25771249/" target="_blank" rel="noopener">FINGER (Ngandu 외 2015)</a></td><td>핀란드 위험군 1,260명, 2년</td><td>식사·운동·인지 훈련·혈관 위험 관리를 함께</td><td>인지 검사 종합 점수 변화가 대조군보다 연 0.022 더 좋음(통계적으로 유의)</td></tr><tr><td><a href="https://pubmed.ncbi.nlm.nih.gov/27697851/" target="_blank" rel="noopener">Simons 외 2016 리뷰</a></td><td>두뇌 훈련 회사들이 근거로 든 논문 전체</td><td>연구 설계·분석 점검</td><td>훈련한 과제는 좋아진다는 근거는 많고, 먼 과제·일상으로의 전이 근거는 적음</td></tr></tbody></table></div>
<p>ACTIVE는 훈련 효과가 오래간다는 점에서 자주 인용되지만, 효과가 가장 분명했던 건 훈련한 바로 그 능력이었어요. FINGER는 인지 훈련을 운동·식사·혈압 관리와 묶었을 때의 결과라, 게임 하나의 효과로 읽으면 안 돼요.</p>
<h2 id="s2">세계보건기구는 인지 훈련을 어떻게 볼까</h2>
<p>세계보건기구(WHO)는 2019년 <a href="https://www.who.int/publications/i/item/9789241550543" target="_blank" rel="noopener">「인지 저하와 치매 위험 감소」 지침</a>을 냈어요. 여기서 신체 활동, 금연, 균형 잡힌 식사, 위험한 음주 줄이기, 고혈압·당뇨 관리 등이 권고 항목으로 정리됐고, 인지 훈련은 인지 기능이 정상이거나 경도인지장애가 있는 노인에게 <strong>"제공해 볼 수 있다"는 조건부 권고</strong>로 들어갔어요. 근거의 확실성은 "매우 낮음~낮음"으로 평가됐고요.</p>
<p>사회 활동에 대해서는 치매 위험 감소를 직접 권고할 근거는 충분하지 않다고 하면서도, 사회 참여와 지지가 전반적인 건강·삶의 질과 깊게 연결돼 있다는 점을 함께 언급했어요. 정리하면 "해 볼 만하지만 큰 기대는 금물, 다른 건강 습관과 함께" 정도가 공식적인 온도예요.</p>
<h2 id="s3">치매 위험을 낮추는 생활 습관이 더 큰 그림이에요</h2>
<p>국제 의학 학술지 랜싯(The Lancet)의 치매 위원회는 몇 년마다 "바꿀 수 있는 치매 위험 요인"을 정리한 보고서를 내요. 2024년 보고서에서는 낮은 교육 수준, 청력 저하, 높은 LDL 콜레스테롤, 우울증, 머리 외상, 신체 활동 부족, 당뇨, 흡연, 고혈압, 비만, 과음, 사회적 고립, 대기오염, 치료하지 않은 시력 저하까지 <strong>14가지</strong>를 꼽았어요.</p>
<p>요인별로 얼마나 큰지는 보고서 본문 표에 나와요(<a href="https://pubmed.ncbi.nlm.nih.gov/39096926/" target="_blank" rel="noopener">Livingston 외 2024, The Lancet, PubMed 39096926</a>). 아래 비율은 요인끼리 겹치는 부분을 보정한 가중 인구기여율이에요.</p>
<div class="table-wrap"><table><thead><tr><th>생애 시기</th><th>위험 요인</th><th>기여 비율</th><th>생활에서 할 수 있는 일</th></tr></thead><tbody><tr><td>어린 시절</td><td>낮은 교육 수준</td><td>5%</td><td>평생 배우기, 읽고 쓰기</td></tr><tr><td>중년</td><td>청력 저하</td><td>7%</td><td>청력 검사, 필요하면 보청기</td></tr><tr><td>중년</td><td>높은 LDL 콜레스테롤</td><td>7%</td><td>정기 검진, 식사·약물 관리</td></tr><tr><td>중년</td><td>우울증</td><td>3%</td><td>상담과 치료</td></tr><tr><td>중년</td><td>머리 외상</td><td>3%</td><td>헬멧, 낙상 예방</td></tr><tr><td>중년</td><td>신체 활동 부족</td><td>2%</td><td>주 150분 이상 중강도 운동</td></tr><tr><td>중년</td><td>흡연</td><td>2%</td><td>금연</td></tr><tr><td>중년</td><td>당뇨</td><td>2%</td><td>혈당 관리</td></tr><tr><td>중년</td><td>고혈압</td><td>2%</td><td>혈압 측정과 관리</td></tr><tr><td>중년</td><td>비만</td><td>1%</td><td>체중 관리</td></tr><tr><td>중년</td><td>과음</td><td>1%</td><td>절주</td></tr><tr><td>노년</td><td>사회적 고립</td><td>5%</td><td>가족·이웃과 자주 만나기</td></tr><tr><td>노년</td><td>대기오염</td><td>3%</td><td>미세먼지 많은 날 외출 조절</td></tr><tr><td>노년</td><td>치료하지 않은 시력 저하</td><td>2%</td><td>안과 검진, 안경·백내장 치료</td></tr></tbody></table></div>
<p>반올림한 값을 모두 더하면 45%예요. 청력 저하(7%)와 사회적 고립(5%)이 운동 부족(2%)보다 크게 잡힌 게 눈에 띄어요. 부모님 세대에서 보청기 점검과 사람 만나기가 왜 중요한지 숫자로 보여 줘요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">바꿀 수 있는 위험 요인으로 설명되는 치매 비율 추정</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="바꿀 수 있는 위험 요인으로 설명되는 치매 비율 추정" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">30</text><line class="viz-grid" x1="52" x2="628" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">50</text><rect class="s1" x="80.8" y="88.8" width="134.4" height="165.2" rx="3"><title>2017년 보고서(9개 요인) · 잠재적 비율 35%</title></rect><text class="viz-val" x="148.0" y="83.8" text-anchor="middle">35</text><text class="viz-ax" x="148.0" y="272" text-anchor="middle">2017년 보고서(9개 요인)</text><rect class="s1" x="272.8" y="65.2" width="134.4" height="188.8" rx="3"><title>2020년 보고서(12개 요인) · 잠재적 비율 40%</title></rect><text class="viz-val" x="340.0" y="60.2" text-anchor="middle">40</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">2020년 보고서(12개 요인)</text><rect class="s1" x="464.8" y="41.6" width="134.4" height="212.4" rx="3"><title>2024년 보고서(14개 요인) · 잠재적 비율 45%</title></rect><text class="viz-val" x="532.0" y="36.6" text-anchor="middle">45</text><text class="viz-ax" x="532.0" y="272" text-anchor="middle">2024년 보고서(14개 요인)</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">위험 요인을 모두 없앴다고 가정한 이론적 추정치예요. 개인의 치매 확률을 뜻하지 않아요.</p><div class="viz-cap">단위: % · 자료: The Lancet 치매 예방·중재·돌봄 위원회 보고서(2017·2020·2024)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>잠재적 비율</th></tr></thead><tbody><tr><td>2017년 보고서(9개 요인)</td><td>35</td></tr><tr><td>2020년 보고서(12개 요인)</td><td>40</td></tr><tr><td>2024년 보고서(14개 요인)</td><td>45</td></tr></tbody></table></div></details></figure>
<p>이 숫자는 "위험 요인을 모두 없앴다고 가정하면 이론적으로 이 정도 비율의 치매를 막거나 늦출 수 있다"는 인구 집단 수준의 추정치예요. 내 부모님이 운동을 하면 45% 덜 걸린다는 뜻이 아니에요. 그래도 메시지는 분명해요. 두뇌 게임 하나보다 혈압·청력·운동·사람 만나기 같은 생활 전반이 훨씬 큰 몫을 차지한다는 거예요.</p>
<p>핀란드에서 치매 위험이 높은 노인을 대상으로 2년간 식단 관리, 운동, 인지 훈련, 혈관 위험 관리(혈압 등)를 함께 한 연구(FINGER)에서 인지 검사 점수가 대조군보다 좋게 나온 것도 같은 맥락이에요. 인지 훈련은 여러 습관 중 하나로 묶였을 때 의미가 있었던 거죠.</p>
<p>특히 부모님 세대에서 놓치기 쉬운 게 <strong>청력과 시력</strong>이에요. 잘 안 들리면 대화를 피하게 되고, 대화가 줄면 사회적 고립으로 이어져요. 보청기나 안경 점검이 어떤 두뇌 게임보다 먼저일 수 있어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/brain-games-dementia-facts-3.svg" alt="2014년 학자 공동 성명과 ACTIVE 10년 추적, 2015년 FINGER, 2016년 미국 FTC 제재와 Simons 외 리뷰, 2019년 WHO 지침, 2024년 랜싯 위원회 보고서를 연도 순으로 늘어놓은 연표" width="800" height="450" loading="lazy" decoding="async"><figcaption>연구는 훈련 효과를 좁게, 기관 발표는 생활습관 전체를 강조해 왔어요</figcaption></figure>
<h2 id="s4">보건복지부 치매 예방 수칙 3·3·3</h2>
<p>우리나라에서는 보건복지부와 <a href="https://www.nid.or.kr/main/main.aspx" target="_blank" rel="noopener">중앙치매센터</a>가 "치매 예방 수칙 3·3·3"을 알리고 있어요. 즐길 것 세 가지(3권), 참을 것 세 가지(3금), 챙길 것 세 가지(3행)로 기억하기 쉽게 만든 거예요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/brain-games-dementia-facts-2.svg" alt="치매 예방 수칙 3·3·3을 3권(걷기, 생선과 채소, 읽고 쓰기), 3금(절주, 금연, 머리 부상 조심), 3행(혈압·혈당·콜레스테롤 확인, 가족·친구와 소통, 매년 보건소 치매 조기 검진) 세 칸의 체크리스트로 정리한 그림" width="800" height="500" loading="lazy" decoding="async"><figcaption>냉장고에 붙여 두고 체크해 보세요</figcaption></figure>
<ul><li><strong>3권(즐길 것)</strong>: 일주일에 3번 이상 걷기, 생선과 채소 골고루 먹기, 부지런히 읽고 쓰기</li><li><strong>3금(참을 것)</strong>: 술은 적게 마시기, 담배는 끊기, 머리를 다치지 않도록 조심하기</li><li><strong>3행(챙길 것)</strong>: 혈압·혈당·콜레스테롤 정기적으로 확인하기, 가족·친구와 자주 소통하기, 매년 보건소에서 치매 조기 검진 받기</li></ul>
<p>두뇌 게임은 이 중 "부지런히 읽고 쓰기"와 비슷한 자리에 있어요. 머리를 쓰는 여러 활동 가운데 하나일 뿐이고, 나머지 여덟 가지를 대신해 주지 않아요. 반대로 게임을 계기로 매일 전화 통화가 생긴다면 "가족·친구와 자주 소통하기"까지 함께 챙기는 셈이에요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">하루 루틴 안에서 두뇌 게임의 자리</h2>
<p>현실적으로 하루를 어떻게 짜면 좋을지 예시로 그려 보면 이래요. 신체 활동은 WHO가 노인에게 권하는 <strong>일주일 150분 이상의 중강도 활동</strong>을 5일로 나눈 값이고, 나머지는 예시예요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">뇌 건강을 생각한 하루 루틴 예시</figcaption><svg viewBox="0 0 640 152" role="img" aria-label="뇌 건강을 생각한 하루 루틴 예시" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="130" y="29" text-anchor="end">걷기 등 신체 활동</text><rect class="s1" x="140" y="15" width="430.0" height="20" rx="3"><title>걷기 등 신체 활동 · 30분</title></rect><text class="viz-val" x="576.0" y="29">30분</text><text class="viz-ax lg" x="130" y="63" text-anchor="end">가족·이웃과 대화</text><rect class="s1" x="140" y="49" width="430.0" height="20" rx="3"><title>가족·이웃과 대화 · 30분</title></rect><text class="viz-val" x="576.0" y="63">30분</text><text class="viz-ax lg" x="130" y="97" text-anchor="end">읽고 쓰기·취미</text><rect class="s1" x="140" y="83" width="286.7" height="20" rx="3"><title>읽고 쓰기·취미 · 20분</title></rect><text class="viz-val" x="432.7" y="97">20분</text><text class="viz-ax lg" x="130" y="131" text-anchor="end">두뇌 트레이닝 게임</text><rect class="s1" x="140" y="117" width="71.7" height="20" rx="3"><title>두뇌 트레이닝 게임 · 5분</title></rect><text class="viz-val" x="217.7" y="131">5분</text></svg><p class="viz-note">사람마다 건강 상태가 다르니 운동 강도와 시간은 담당 의사와 상의하세요.</p><div class="viz-cap">단위: 분 · 자료: 신체 활동은 WHO 신체활동 지침(2020)의 주 150분을 5일로 나눈 값, 나머지는 예시 구성</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>하루 시간</th></tr></thead><tbody><tr><td>걷기 등 신체 활동</td><td>30</td></tr><tr><td>가족·이웃과 대화</td><td>30</td></tr><tr><td>읽고 쓰기·취미</td><td>20</td></tr><tr><td>두뇌 트레이닝 게임</td><td>5</td></tr></tbody></table></div></details></figure>
<p>보시는 것처럼 두뇌 게임은 <strong>가장 짧은 칸</strong>이에요. 5분이면 충분하고, 그 이상으로 늘리기보다 산책이나 대화를 늘리는 쪽이 좋아요. 게임을 "오늘의 루틴 체크 표시"처럼 쓰면 산책·전화 같은 다른 습관을 붙이는 고리가 될 수 있어요. 예를 들어 "아침 먹고 두뇌 트레이닝 → 끝나면 동네 한 바퀴"처럼요.</p>
<h2 id="s6">부모님과 함께하는 두뇌 트레이닝, 이렇게 시작해 보세요</h2>
<p>스미스 게임 연구소의 <a href="https://game.smithlab.co.kr/games/brain-training/">두뇌 트레이닝</a>은 이런 생각으로 만들었어요. 큰 글씨와 큰 버튼, 소리 없음, 기본은 시간 제한 없음, 틀려도 "아까워요" 정도의 부드러운 안내예요. 하루 한 세트는 다섯 가지 놀이로 약 5분이에요.</p>
<div class="table-wrap"><table><thead><tr><th>놀이</th><th>주로 쓰는 능력</th><th>1단계</th><th>5단계</th></tr></thead><tbody><tr><td>카드 짝 맞추기</td><td>기억력</td><td>12장, 미리 보기 4초</td><td>16장, 비슷한 과일 그림</td></tr><tr><td>색깔 단어</td><td>주의력</td><td>색 3가지, 뜻과 색이 같은 문제 절반</td><td>색 4가지, 대부분 뜻과 색이 다름</td></tr><tr><td>순서 기억</td><td>작업기억</td><td>3칸 순서부터</td><td>6칸 순서부터</td></tr><tr><td>간단 계산</td><td>계산력</td><td>한 자리 덧셈</td><td>두 자리 덧셈·뺄셈</td></tr><tr><td>장보기 기억</td><td>기억력</td><td>물건 3가지</td><td>물건 7가지</td></tr></tbody></table></div>
<p>난이도는 놀이마다 따로 저장되고, 한 번 할 때 80점 이상이면 다음에 한 단계 어렵게, 50점 미만이면 한 단계 쉽게 바뀌어요. 그래서 처음엔 쉬워도 며칠 하다 보면 "조금 어렵지만 해 볼 만한" 수준에 머물게 돼요. 단계별로 외워야 하는 양은 이렇게 늘어나요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">두뇌 트레이닝 난이도별 기억해야 할 개수</figcaption><div class="viz-legend"><span><i class="s1"></i>장보기 목록 물건 수</span><span><i class="s2"></i>순서 기억 시작 길이</span></div><svg viewBox="0 0 640 300" role="img" aria-label="두뇌 트레이닝 난이도별 기억해야 할 개수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">2</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">4</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">6</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">8</text><rect class="s1" x="69.3" y="165.5" width="39.3" height="88.5" rx="3"><title>1단계 · 장보기 목록 물건 수 3개</title></rect><rect class="s2" x="110.6" y="165.5" width="39.3" height="88.5" rx="3"><title>1단계 · 순서 기억 시작 길이 3개</title></rect><text class="viz-ax" x="109.6" y="272" text-anchor="middle">1단계</text><rect class="s1" x="184.5" y="136.0" width="39.3" height="118.0" rx="3"><title>2단계 · 장보기 목록 물건 수 4개</title></rect><rect class="s2" x="225.8" y="165.5" width="39.3" height="88.5" rx="3"><title>2단계 · 순서 기억 시작 길이 3개</title></rect><text class="viz-ax" x="224.8" y="272" text-anchor="middle">2단계</text><rect class="s1" x="299.7" y="106.5" width="39.3" height="147.5" rx="3"><title>3단계 · 장보기 목록 물건 수 5개</title></rect><rect class="s2" x="341.0" y="136.0" width="39.3" height="118.0" rx="3"><title>3단계 · 순서 기억 시작 길이 4개</title></rect><text class="viz-ax" x="340.0" y="272" text-anchor="middle">3단계</text><rect class="s1" x="414.9" y="77.0" width="39.3" height="177.0" rx="3"><title>4단계 · 장보기 목록 물건 수 6개</title></rect><rect class="s2" x="456.2" y="106.5" width="39.3" height="147.5" rx="3"><title>4단계 · 순서 기억 시작 길이 5개</title></rect><text class="viz-ax" x="455.2" y="272" text-anchor="middle">4단계</text><rect class="s1" x="530.1" y="47.5" width="39.3" height="206.5" rx="3"><title>5단계 · 장보기 목록 물건 수 7개</title></rect><rect class="s2" x="571.4" y="77.0" width="39.3" height="177.0" rx="3"><title>5단계 · 순서 기억 시작 길이 6개</title></rect><text class="viz-ax" x="570.4" y="272" text-anchor="middle">5단계</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">순서 기억은 맞히면 한 칸씩 길어지고 틀리면 한 칸 짧아져요.</p><div class="viz-cap">단위: 개 · 자료: 스미스 게임 연구소 두뇌 트레이닝 게임 설정값</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>장보기 목록 물건 수</th><th>순서 기억 시작 길이</th></tr></thead><tbody><tr><td>1단계</td><td>3</td><td>3</td></tr><tr><td>2단계</td><td>4</td><td>3</td></tr><tr><td>3단계</td><td>5</td><td>4</td></tr><tr><td>4단계</td><td>6</td><td>5</td></tr><tr><td>5단계</td><td>7</td><td>6</td></tr></tbody></table></div></details></figure>
<p>부모님께 권할 때 쓸 수 있는 방법을 정리하면 이래요.</p>
<ol><li><strong>처음 사흘은 옆에서 같이</strong>: 화면을 넘기는 법만 익히면 혼자서도 하세요. 멀리 사신다면 영상 통화를 켜고 같이 해도 좋아요.</li><li><strong>같은 시간에 하기</strong>: 아침 식사 뒤, 산책 다녀와서처럼 이미 있는 일과 뒤에 붙이면 습관이 되기 쉬워요. 화면에 연속 참여 일수가 나와서 동기 부여가 돼요.</li><li><strong>점수보다 참여를 칭찬하기</strong>: 점수는 잠, 컨디션, 난이도 변화에 따라 오르내리는 게 정상이에요. 잘해서 난이도가 오르면 점수가 잠깐 떨어지기도 해요. "오늘도 하셨네요"가 "몇 점이에요?"보다 오래가요.</li><li><strong>결과 공유로 대화 만들기</strong>: 결과 공유 버튼으로 가족 단톡방에 점수를 보내고, 손주와 같은 놀이로 대결해 보세요. 게임보다 그 대화가 더 값질 수 있어요.</li><li><strong>어려운 건 건너뛰기</strong>: 색깔 구분이 어려우신 분은 색깔 단어를 건너뛰어도 돼요. 억지로 하면 금방 질려요.</li><li><strong>화면은 크게</strong>: 휴대폰보다 태블릿이나 PC가 편하고, 브라우저 글자 크기를 키우면 게임 글씨도 함께 커져요.</li></ol>
<p>숫자 외우기가 재미있으셨다면 <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억력 테스트</a>도 있어요. 다만 이런 게임 점수는 오락용이라, 비교는 다른 사람이 아니라 <strong>어제의 나</strong>와 하시면 돼요.</p>
<aside class="callout tip"><b class="callout-h">팁</b><p>게임을 고를 때는 "치매 예방" "뇌 나이" 같은 문구보다, 글씨가 큰지, 시간 제한을 끌 수 있는지, 틀려도 기분 상하지 않게 안내하는지를 보세요. 오래 이어 가는 게 점수보다 훨씬 중요해요.</p></aside>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">건망증일까 치매일까, 게임 점수로 판단하지 마세요</h2>
<p>나이가 들면 이름이 바로 안 떠오르거나 물건 둔 곳을 깜빡하는 일이 늘어나요. 힌트를 들으면 "아, 맞다" 하고 떠오르는 경우는 흔한 건망증인 경우가 많아요. 반면 아래와 같은 변화가 <strong>예전보다 눈에 띄게 늘었다면</strong> 상담을 받아 보는 게 좋아요.</p>
<ul><li>방금 한 이야기나 질문을 반복하고, 들은 사실 자체를 기억하지 못함</li><li>익숙한 길에서 헤매거나 날짜·요일을 자주 혼동함</li><li>늘 하던 요리, 공과금 내기, 약 챙겨 먹기 같은 일을 어려워함</li><li>말하려는 단어가 자주 막히거나, 성격·기분이 평소와 달라짐</li></ul>
<div class="table-wrap"><table><thead><tr><th>구분</th><th>흔한 건망증</th><th>상담이 필요한 변화</th></tr></thead><tbody><tr><td>잊는 범위</td><td>일부(이름, 물건 둔 곳)</td><td>사건 전체(방금 한 대화, 다녀온 일)</td></tr><tr><td>힌트를 주면</td><td>"아, 맞다" 하고 떠올림</td><td>힌트를 줘도 기억하지 못함</td></tr><tr><td>일상 일 처리</td><td>늦어도 스스로 해냄</td><td>요리·공과금·약 챙기기가 어려워짐</td></tr><tr><td>본인 인식</td><td>깜빡한 걸 알고 신경 씀</td><td>잊었다는 사실 자체를 모르는 경우가 많음</td></tr><tr><td>변화 속도</td><td>오랫동안 비슷함</td><td>몇 달 사이 눈에 띄게 늘어남</td></tr></tbody></table></div>
<aside class="callout warn"><b class="callout-h">주의</b><p>표는 이해를 돕는 일반적인 구분이에요. 하나라도 걱정되면 스스로 판단하지 말고 치매안심센터나 병원에서 검사를 받으세요.</p></aside>
<p>이런 신호가 보이면 두뇌 게임 점수가 좋든 나쁘든 <strong>가까운 치매안심센터(보건소)</strong>나 병원에서 상담·검사를 받으세요. 치매안심센터는 시·군·구 보건소에 설치돼 있어 지역 보건소에 문의하면 안내받을 수 있고, 치매 관련 정보는 <strong>중앙치매센터</strong>에서도 찾아볼 수 있어요. 치매처럼 보이는 증상 중에는 갑상선 문제, 비타민 결핍, 약물 부작용, 우울증처럼 치료로 좋아지는 원인도 있어서, 일찍 확인할수록 할 수 있는 일이 많아요.</p>
<p>반대로 게임 점수가 낮게 나왔다고 해서 치매를 걱정할 필요도 없어요. 화면 조작이 낯설거나, 눈이 피곤하거나, 그날 잠을 설쳤을 수도 있어요. 게임은 진단 도구가 아니에요.</p>
<h2 id="s8">자주 묻는 질문</h2>
<h3>치매 예방 게임이 정말 효과가 있나요?</h3>
<p>게임을 반복하면 그 게임 실력은 늘지만, 게임만으로 치매를 예방하거나 치료한다는 의학적 근거는 없어요. WHO도 인지 훈련을 근거가 낮은 조건부 권고로만 다루고 있어요. 운동, 혈압·혈당 관리, 청력 관리, 사람들과의 교류와 함께하는 생활 습관의 하나로 보시는 게 정확해요.</p>
<h3>하루에 얼마나 하면 좋나요?</h3>
<p>한 세트 5분 정도면 충분해요. 오래 하는 것보다 매일 같은 시간에 짧게 하는 게 습관 만들기에 좋고, 남는 시간은 걷기나 대화에 쓰는 편이 뇌 건강에는 더 도움이 될 가능성이 커요.</p>
<h3>고스톱이나 화투, 바둑도 도움이 되나요?</h3>
<p>머리를 쓰고 사람들과 어울린다는 점에서는 좋은 여가 활동이에요. 다만 특정 놀이가 치매를 예방한다고 확인된 것은 아니에요. 오래 앉아만 있기보다 중간중간 몸을 움직이고, 돈을 거는 놀이는 다툼이나 과몰입이 생기지 않게 주의하세요.</p>
<h3>부모님 게임 점수가 계속 떨어지면 치매인가요?</h3>
<p>게임 점수만으로는 알 수 없어요. 난이도가 자동으로 올라가서 점수가 내려갈 수도 있고, 잠이나 컨디션 영향도 커요. 다만 일상에서 같은 질문 반복, 길 헤맴, 익숙한 일 처리의 어려움 같은 변화가 함께 보이면 치매안심센터(보건소)나 병원에서 상담·검사를 받아 보세요.</p>
<h3>치매안심센터는 어떻게 이용하나요?</h3>
<p>시·군·구 보건소에 설치돼 있어서, 사시는 지역 보건소에 문의하면 상담과 검사 절차를 안내받을 수 있어요. 운영 방식과 지원 내용은 지역과 시기에 따라 다를 수 있으니 방문 전에 지역 보건소에 확인하는 게 좋아요.</p>
<h2 id="s9">정리</h2>
<p>두뇌 게임은 그 게임 실력을 확실히 올려 주지만, 치매를 예방하거나 치료한다는 근거는 없어요. 랜싯 치매 위원회가 꼽은 14가지 위험 요인과 보건복지부의 3·3·3 수칙이 보여 주듯, 뇌 건강의 큰 그림은 걷기, 혈압·혈당 관리, 청력·시력 챙기기, 금연·절주, 그리고 사람들과 자주 어울리는 생활에 있어요. 두뇌 게임은 그 안에서 매일 5분, 가족과 이야기할 거리를 만들어 주는 작은 습관으로 쓰면 딱 좋아요.</p>
<p>부모님과 오늘부터 <a href="https://game.smithlab.co.kr/games/brain-training/">두뇌 트레이닝</a> 한 세트를 같이 해 보세요. 집중력과 반응을 가볍게 시험해 보고 싶다면 <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응속도 평균과 높이는 법</a>도 읽어 볼 만해요. 기억력 변화가 걱정된다면, 게임보다 먼저 가까운 치매안심센터(보건소) 상담을 권해요.</p>
    ]]></description>
    </item>
    <item>
      <title>한글 타자 속도 올리는 법, 타수 계산법과 정확도까지 정리</title>
      <link>https://game.smithlab.co.kr/posts/games/korean-typing-speed/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/korean-typing-speed/</guid>
      <pubDate>Mon, 05 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>타자 연습 사이트에서 "300타"가 나왔다는데, 그게 1분에 300글자라는 건지 헷갈렸던 적 있으세요? 많은 사람이 글자 수로 오해하지만, 한글 타수는 <strong>글자 수가 아니라 1분 동안 누른 자모 키의 수</strong>예요. 결론부터 말하면 두벌식에서 "안녕하세요"는 다섯 글자지만 ㅇㅏㄴ ㄴㅕㅇ ㅎㅏ ㅅㅔ ㅇㅛ로 <strong>12타</strong>이고, 이걸 몇 초에 쳤는지로 타수가 정해져요.</p>
<p>이 글에서는 타수를 정확히 세는 법(복합모음·겹받침·쌍자음 포함)을 예시로 계산하고, 영어 WPM과 무엇이 다른지, 정확도는 어떻게 매기는지, 그리고 실제로 타수를 끌어올리는 홈포지션과 연습 루틴을 정리할게요. 바로 재 보고 싶다면 <a href="https://game.smithlab.co.kr/games/typing-test/">한글 타자 속도 테스트</a>를 열어 두세요. 이 글과 같은 방식으로 타수(CPM)와 정확도를 계산해요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>타수 = 1분 동안 입력한 자모 키 수예요. 초성 1타, 중성 1~2타, 종성 0~2타, 띄어쓰기와 문장부호는 각 1타로 셉니다.</li><li>복합모음 ㅘ·ㅙ·ㅚ·ㅝ·ㅞ·ㅟ·ㅢ와 겹받침 ㄳ·ㄵ·ㄶ·ㄺ·ㄻ·ㄼ·ㄽ·ㄾ·ㄿ·ㅀ·ㅄ은 두 키라서 2타, 쌍자음과 ㅒ·ㅖ는 Shift와 함께 한 번에 눌러 1타로 세요.</li><li>정확도 = 맞게 친 글자 ÷ 친 글자예요. 정확도가 낮으면 고치는 시간 때문에 실제 속도도 떨어져요.</li><li>왼손 검지는 ㄹ(F), 오른손 검지는 ㅓ(J)에 두는 홈포지션부터 지키는 게 속도를 올리는 첫걸음이에요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">한글 타수 계산법: 글자를 자모 키로 쪼개기</h2>
<p>두벌식 자판에서 한글 한 글자는 초성 + 중성 + (종성)으로 입력돼요. 각 부분을 몇 번 누르는지 세면 그 글자의 타수가 나와요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/korean-typing-speed-1.svg" alt="안녕하세요 다섯 글자를 초성·중성·종성 자모 키로 분해해 3타, 3타, 2타, 2타, 2타로 합계 12타가 되는 과정과 괜·닭·까·얘의 타수 예시" width="800" height="450" loading="lazy" decoding="async"><figcaption>글자 수가 아니라 누른 키 수가 타수예요</figcaption></figure>
<div class="table-wrap"><table><thead><tr><th>부분</th><th>타수</th><th>예시</th></tr></thead><tbody><tr><td>초성</td><td>1</td><td>ㄱ, ㄴ, ㅇ … 쌍자음 ㄲ·ㄸ·ㅃ·ㅆ·ㅉ도 Shift와 함께 한 번에 눌러 1</td></tr><tr><td>중성(단모음 등)</td><td>1</td><td>ㅏ, ㅓ, ㅗ, ㅐ … ㅒ·ㅖ도 Shift와 함께 1</td></tr><tr><td>중성(복합모음)</td><td>2</td><td>ㅘ(ㅗ+ㅏ), ㅙ(ㅗ+ㅐ), ㅚ(ㅗ+ㅣ), ㅝ(ㅜ+ㅓ), ㅞ(ㅜ+ㅔ), ㅟ(ㅜ+ㅣ), ㅢ(ㅡ+ㅣ)</td></tr><tr><td>종성 없음</td><td>0</td><td>가, 나, 하</td></tr><tr><td>종성(홑받침·쌍받침)</td><td>1</td><td>ㄴ, ㅇ, ㄹ … ㄲ·ㅆ도 1</td></tr><tr><td>종성(겹받침)</td><td>2</td><td>ㄳ, ㄵ, ㄶ, ㄺ, ㄻ, ㄼ, ㄽ, ㄾ, ㄿ, ㅀ, ㅄ</td></tr><tr><td>띄어쓰기·문장부호</td><td>1</td><td>스페이스, 마침표, 물음표</td></tr></tbody></table></div>
<p>그래서 한 글자는 최소 2타(가 = ㄱ+ㅏ)에서 최대 5타(복합모음 + 겹받침, 예: 뷁 = ㅂ+ㅜ·ㅔ+ㄹ·ㄱ)까지 나와요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">글자 하나를 치는 데 필요한 타수 예시</figcaption><svg viewBox="0 0 640 220" role="img" aria-label="글자 하나를 치는 데 필요한 타수 예시" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="117" y="29" text-anchor="end">가 (ㄱㅏ)</text><rect class="s1" x="127" y="15" width="177.2" height="20" rx="3"><title>가 (ㄱㅏ) · 2타</title></rect><text class="viz-val" x="310.2" y="29">2타</text><text class="viz-ax lg" x="117" y="63" text-anchor="end">안 (ㅇㅏㄴ)</text><rect class="s1" x="127" y="49" width="265.8" height="20" rx="3"><title>안 (ㅇㅏㄴ) · 3타</title></rect><text class="viz-val" x="398.8" y="63">3타</text><text class="viz-ax lg" x="117" y="97" text-anchor="end">과 (ㄱㅗㅏ)</text><rect class="s1" x="127" y="83" width="265.8" height="20" rx="3"><title>과 (ㄱㅗㅏ) · 3타</title></rect><text class="viz-val" x="398.8" y="97">3타</text><text class="viz-ax lg" x="117" y="131" text-anchor="end">닭 (ㄷㅏㄹㄱ)</text><rect class="s1" x="127" y="117" width="354.4" height="20" rx="3"><title>닭 (ㄷㅏㄹㄱ) · 4타</title></rect><text class="viz-val" x="487.4" y="131">4타</text><text class="viz-ax lg" x="117" y="165" text-anchor="end">괜 (ㄱㅗㅐㄴ)</text><rect class="s1" x="127" y="151" width="354.4" height="20" rx="3"><title>괜 (ㄱㅗㅐㄴ) · 4타</title></rect><text class="viz-val" x="487.4" y="165">4타</text><text class="viz-ax lg" x="117" y="199" text-anchor="end">뷁 (ㅂㅜㅔㄹㄱ)</text><rect class="s1" x="127" y="185" width="443.0" height="20" rx="3"><title>뷁 (ㅂㅜㅔㄹㄱ) · 5타</title></rect><text class="viz-val" x="576.0" y="199">5타</text></svg><div class="viz-cap">단위: 타 · 자료: 두벌식 자모 분해로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>타수</th></tr></thead><tbody><tr><td>가 (ㄱㅏ)</td><td>2</td></tr><tr><td>안 (ㅇㅏㄴ)</td><td>3</td></tr><tr><td>과 (ㄱㅗㅏ)</td><td>3</td></tr><tr><td>닭 (ㄷㅏㄹㄱ)</td><td>4</td></tr><tr><td>괜 (ㄱㅗㅐㄴ)</td><td>4</td></tr><tr><td>뷁 (ㅂㅜㅔㄹㄱ)</td><td>5</td></tr></tbody></table></div></details></figure>
<h3>실제 문장으로 계산해 보기</h3>
<p>몇 가지를 직접 쪼개 볼게요.</p>
<ul><li><strong>안녕하세요</strong> = 안(ㅇㅏㄴ 3) + 녕(ㄴㅕㅇ 3) + 하(ㅎㅏ 2) + 세(ㅅㅔ 2) + 요(ㅇㅛ 2) = <strong>12타</strong></li><li><strong>대한민국</strong> = 대(2) + 한(3) + 민(3) + 국(3) = <strong>11타</strong></li><li><strong>괜찮아요</strong> = 괜(ㄱ ㅗ ㅐ ㄴ 4) + 찮(ㅊ ㅏ ㄴ ㅎ 4) + 아(2) + 요(2) = <strong>12타</strong></li><li><strong>읽었습니다</strong> = 읽(ㅇ ㅣ ㄹ ㄱ 4) + 었(ㅇ ㅓ ㅆ 3) + 습(3) + 니(2) + 다(2) = <strong>14타</strong></li><li><strong>왜 그랬어?</strong> = 왜(ㅇ ㅗ ㅐ 3) + 띄어쓰기(1) + 그(2) + 랬(3) + 어(2) + ?(1) = <strong>12타</strong></li><li><strong>동해물과 백두산이 마르고 닳도록</strong> = 글자 14개 + 띄어쓰기 3개, 합계 <strong>39타</strong></li></ul>
<p>마지막 문장을 10초에 쳤다면 타수는 39 ÷ 10 × 60 = <strong>234타</strong>예요. 공식으로 쓰면</p>
<p><strong>타수(CPM) = 입력한 키 수 ÷ 걸린 시간(초) × 60</strong></p>
<p>이에요. 같은 12타짜리 "안녕하세요"도 3초에 치면 240타, 2초에 치면 360타가 되죠.</p>
<h3>같은 글자 수라도 타수가 다른 이유</h3>
<p>"안녕하세요"와 "괜찮아요"는 둘 다 12타지만 글자 수는 5개와 4개예요. 받침이 많거나 복합모음·겹받침이 많은 문장일수록 글자당 타수가 높아져요. 그래서 같은 사람이 같은 속도로 쳐도 연습 문장에 따라 "1분에 친 글자 수"는 달라지고, 키 수를 기준으로 한 타수가 더 공정한 비교 기준이 돼요. 위 애국가 문장은 띄어쓰기를 빼면 14글자에 36타라 글자당 약 2.6타예요.</p>
<h2 id="s2">타수 속도별 체감: 300타 문단은 몇 초 걸릴까</h2>
<p>타수가 실제로 어느 정도의 속도인지 감을 잡기 위해, 키 입력 300번짜리 문단(대략 짧은 메시지 두세 줄)을 치는 데 걸리는 시간을 계산해 봤어요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">300타 분량 문단을 치는 데 걸리는 시간</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="300타 분량 문단을 치는 데 걸리는 시간" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="214.7" y2="214.7"/><text class="viz-ax" x="46" y="218.7" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="175.3" y2="175.3"/><text class="viz-ax" x="46" y="179.3" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">60</text><line class="viz-grid" x1="52" x2="628" y1="96.7" y2="96.7"/><text class="viz-ax" x="46" y="100.7" text-anchor="end">80</text><line class="viz-grid" x1="52" x2="628" y1="57.3" y2="57.3"/><text class="viz-ax" x="46" y="61.3" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">120</text><rect class="s1" x="66.4" y="18.0" width="67.2" height="236.0" rx="3"><title>150타 · 걸리는 시간 120초</title></rect><text class="viz-val" x="100.0" y="13.0" text-anchor="middle">120</text><text class="viz-ax" x="100.0" y="272" text-anchor="middle">150타</text><rect class="s1" x="162.4" y="77.0" width="67.2" height="177.0" rx="3"><title>200타 · 걸리는 시간 90초</title></rect><text class="viz-val" x="196.0" y="72.0" text-anchor="middle">90</text><text class="viz-ax" x="196.0" y="272" text-anchor="middle">200타</text><rect class="s1" x="258.4" y="136.0" width="67.2" height="118.0" rx="3"><title>300타 · 걸리는 시간 60초</title></rect><text class="viz-val" x="292.0" y="131.0" text-anchor="middle">60</text><text class="viz-ax" x="292.0" y="272" text-anchor="middle">300타</text><rect class="s1" x="354.4" y="165.5" width="67.2" height="88.5" rx="3"><title>400타 · 걸리는 시간 45초</title></rect><text class="viz-val" x="388.0" y="160.5" text-anchor="middle">45</text><text class="viz-ax" x="388.0" y="272" text-anchor="middle">400타</text><rect class="s1" x="450.4" y="183.2" width="67.2" height="70.8" rx="3"><title>500타 · 걸리는 시간 36초</title></rect><text class="viz-val" x="484.0" y="178.2" text-anchor="middle">36</text><text class="viz-ax" x="484.0" y="272" text-anchor="middle">500타</text><rect class="s1" x="546.4" y="195.0" width="67.2" height="59.0" rx="3"><title>600타 · 걸리는 시간 30초</title></rect><text class="viz-val" x="580.0" y="190.0" text-anchor="middle">30</text><text class="viz-ax" x="580.0" y="272" text-anchor="middle">600타</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">150타에서 300타로 올리면 시간이 절반, 300타에서 600타로 올려도 30초만 줄어요</p><div class="viz-cap">단위: 초 · 자료: 300 ÷ 타수 × 60으로 직접 계산 (오타 수정 시간 제외)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>걸리는 시간</th></tr></thead><tbody><tr><td>150타</td><td>120</td></tr><tr><td>200타</td><td>90</td></tr><tr><td>300타</td><td>60</td></tr><tr><td>400타</td><td>45</td></tr><tr><td>500타</td><td>36</td></tr><tr><td>600타</td><td>30</td></tr></tbody></table></div></details></figure>
<p>속도 구간은 공식 통계가 아니라 흔히 이야기되는 대략적인 참고 기준이에요. 타자를 처음 배우는 단계에서는 100~200타 정도에서 시작하는 경우가 많고, 업무에서 문서 작성이 답답하지 않으려면 200~300타 이상이 편하다고들 해요. 400타를 넘으면 빠른 편으로 이야기되는 경우가 많고요. 다만 문장 난이도, 측정 시간, 오타 처리 방식에 따라 숫자가 크게 달라지니, 다른 사이트 기록보다 <strong>같은 테스트에서의 내 기록 변화</strong>를 보는 게 더 의미 있어요.</p>
<h2 id="s3">타수와 WPM은 뭐가 다를까</h2>
<p>영어 타자 속도는 보통 WPM(words per minute)으로 말해요. 여기서 "단어"는 실제 단어가 아니라 <strong>띄어쓰기를 포함한 5글자</strong>를 한 단어로 치는 표준 단어예요. 그래서 영어에서는 1분에 300글자를 쳤다면 60 WPM이에요. 대략 WPM ≈ 분당 글자 수 ÷ 5인 셈이죠.</p>
<p>한글 타수는 글자가 아니라 키 입력 수라서 이 공식을 그대로 쓸 수 없어요. 한 글자가 2~5타로 들쭉날쭉하니까요. 그래서 한글 300타와 영어 60 WPM을 단순히 같은 수준이라고 보면 안 되고, 두 언어 속도를 비교하고 싶다면 각각의 테스트에서 따로 재 보는 게 맞아요. 영문 자판 기준 CPM(characters per minute)과 한글 타수도 이름은 비슷하지만 세는 대상이 다르다는 점만 기억해 두세요.</p>
<h2 id="s4">정확도 계산법: 빠르게만 치면 손해인 이유</h2>
<p>정확도는 이렇게 계산해요.</p>
<p><strong>정확도(%) = 맞게 친 글자 수 ÷ 친 글자 수 × 100</strong></p>
<p>예를 들어 50글자를 쳤는데 그중 47글자가 원문과 같다면 47 ÷ 50 = <strong>94%</strong>예요. 테스트에 따라 오타가 난 글자의 키 입력을 타수에서 빼고 세는 곳도 있어서, 같은 속도로 쳐도 오타가 많으면 점수가 낮게 나와요.</p>
<p>정확도가 중요한 이유는 실제 글쓰기에서는 오타를 고쳐야 하기 때문이에요. 오타 하나를 고치려면 백스페이스로 지우고(한글은 조합 중인 글자의 경우 자모 단위로 지워지기도 해요) 다시 쳐야 해서, 실제 걸리는 시간은 오타 한 개당 몇 타씩 늘어나요. 그래서 연습할 때는 <strong>정확도 95% 이상을 유지하면서 속도를 올리는 것</strong>을 목표로 잡는 게 좋아요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">두벌식 홈포지션: 속도의 기본</h2>
<p>두벌식 자판은 왼손이 자음, 오른손이 모음을 맡도록 배치돼 있어요. 손가락을 매번 같은 자리에 두는 게 홈포지션이에요.</p>
<div class="table-wrap"><table><thead><tr><th>손</th><th>기준 키</th><th>가운데 줄 배치</th></tr></thead><tbody><tr><td>왼손</td><td>검지를 F(ㄹ)에</td><td>A ㅁ · S ㄴ · D ㅇ · F ㄹ · G ㅎ</td></tr><tr><td>오른손</td><td>검지를 J(ㅓ)에</td><td>H ㅗ · J ㅓ · K ㅏ · L ㅣ</td></tr></tbody></table></div>
<p>F와 J 키에는 손으로 만져서 알 수 있는 작은 돌기가 있어요. 화면을 보다가도 손가락만으로 제자리를 찾을 수 있게 만든 거예요. 쌍자음 ㄲ·ㄸ·ㅃ·ㅆ·ㅉ은 윗줄의 ㄱ·ㄷ·ㅂ·ㅅ·ㅈ을, ㅒ·ㅖ는 ㅐ·ㅔ를 Shift와 함께 눌러요. 이때 Shift는 <strong>치는 키 반대쪽 손</strong>의 새끼손가락으로 누르면 손 모양이 덜 흐트러져요.</p>
<h2 id="s6">타자 속도 올리는 연습 루틴</h2>
<p>타자 교육에서 흔히 쓰는 단계 순서대로 정리할게요.</p>
<ol><li><strong>자판 안 보기부터</strong>: 처음엔 느려져도 키보드를 보지 않는 게 가장 중요해요. 보면서 치는 습관이 남아 있으면 일정 속도 이상 올라가지 않아요.</li><li><strong>자리 연습 → 낱말 → 짧은 글 → 긴 글</strong>: 자리가 익숙하지 않으면 긴 글 연습은 오타 연습이 돼요. 단계별로 넘어가세요.</li><li><strong>정확도 95%를 넘긴 다음 속도</strong>: 정확도가 떨어지면 속도를 조금 낮춰서 다시 리듬을 잡아요.</li><li><strong>복합모음·겹받침 따로 연습</strong>: "괜찮아요", "읽었습니다", "의외로 쉬워요"처럼 2타 자모가 많은 문장에서 손이 꼬이기 쉬워요. 의외로 쉬워요(의 3 · 외 3 · 로 2 · 띄어쓰기 1 · 쉬 3 · 워 3 · 요 2)는 7글자에 17타예요.</li><li><strong>짧게 자주</strong>: 하루 10~15분씩 꾸준히 하는 게 몰아서 한 시간 하는 것보다 손에 잘 붙어요.</li><li><strong>같은 테스트로 기록 비교</strong>: <a href="https://game.smithlab.co.kr/games/typing-test/">한글 타자 속도 테스트</a>는 최고 타수가 저장돼서 변화를 확인하기 좋아요.</li></ol>
<p>자세도 중요해요. 손목을 키보드 높이보다 너무 꺾지 말고, 손가락을 살짝 구부려 키 위에 가볍게 올려 두세요. 오래 치다 손목이 아프면 쉬는 게 먼저예요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">타자 연습할 때 흔한 실수</h2>
<ul><li><strong>기록 욕심에 정확도 무시하기</strong>: 오타를 무시하고 밀어붙이면 순간 타수는 높아 보여도, 실제 글쓰기 속도는 오히려 느려져요.</li><li><strong>검지로만 치기</strong>: 독수리 타법은 일정 속도에서 멈춰요. 새끼손가락이 맡는 ㅁ·ㅂ·ㅣ·ㅔ 쪽이 특히 약해지기 쉬우니 일부러 써 주세요.</li><li><strong>Shift를 같은 손으로 누르기</strong>: ㅆ을 칠 때 왼손으로 Shift와 T를 동시에 누르면 손이 크게 비틀려요. 오른손 새끼손가락으로 오른쪽 Shift를 누르는 습관이 좋아요.</li><li><strong>매번 다른 사이트에서 재기</strong>: 문장 난이도와 계산 방식이 달라서 기록이 들쭉날쭉해 보여요. 한 곳을 정해 꾸준히 비교하세요.</li><li><strong>조합 중인 글자 지우기 실수</strong>: 한글은 조합 중에 백스페이스를 누르면 자모 단위로 지워지기도 해서, 한 번에 글자 전체가 지워질 거라 생각하면 오타가 겹치기 쉬워요.</li></ul>
<p>손가락 반응을 더 키우고 싶다면 <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응속도 평균과 높이는 법</a>을, 머리를 식히고 싶다면 <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 공략</a>이나 <a href="https://game.smithlab.co.kr/posts/games/minesweeper-patterns/">지뢰찾기 패턴 공략</a>도 읽어 보세요.</p>
<h2 id="s8">자주 묻는 질문</h2>
<h3>타수는 1분에 친 글자 수인가요?</h3>
<p>아니에요. 한글 타수는 1분 동안 누른 자모 키의 수예요. "안녕하세요"는 5글자지만 ㅇㅏㄴ ㄴㅕㅇ ㅎㅏ ㅅㅔ ㅇㅛ로 12번 눌러야 해서 12타로 세요.</p>
<h3>복합모음과 겹받침은 몇 타로 세나요?</h3>
<p>두벌식에서 ㅘ·ㅙ·ㅚ·ㅝ·ㅞ·ㅟ·ㅢ는 모음 키를 두 번 눌러 만들므로 2타, 겹받침 ㄳ·ㄵ·ㄶ·ㄺ·ㄻ·ㄼ·ㄽ·ㄾ·ㄿ·ㅀ·ㅄ도 2타예요. 쌍자음과 ㅒ·ㅖ는 Shift와 함께 한 번에 누르므로 1타로 셉니다.</p>
<h3>300타면 빠른 편인가요?</h3>
<p>공식 통계가 있는 건 아니지만, 흔히 200~300타 이상이면 일상 문서 작업이 답답하지 않은 수준, 400타를 넘으면 빠른 편으로 이야기돼요. 다만 문장과 측정 방식에 따라 크게 달라지니 같은 테스트에서의 내 기록 변화로 보는 게 좋아요.</p>
<h3>타수와 WPM은 어떻게 다른가요?</h3>
<p>영어 WPM은 띄어쓰기 포함 5글자를 한 단어로 쳐서 분당 단어 수를 세는 방식이고, 한글 타수는 분당 자모 키 입력 수예요. 세는 단위가 달라서 숫자를 그대로 비교할 수는 없어요.</p>
<h3>정확도는 어떻게 계산하나요?</h3>
<p>맞게 친 글자 수를 친 글자 수로 나눠 백분율로 나타내요. 50글자 중 47글자가 맞았다면 94%예요. 오타는 고치는 시간까지 생각하면 실제 속도를 크게 깎으니 95% 이상 유지를 목표로 하세요.</p>
<h2 id="s9">정리</h2>
<p>한글 타수는 <strong>글자 수가 아니라 자모 키 입력 수</strong>예요. 초성 1타, 중성 1~2타, 종성 0~2타, 띄어쓰기·문장부호 1타로 세고, 타수 = 키 수 ÷ 초 × 60으로 계산해요. "안녕하세요"는 12타, "동해물과 백두산이 마르고 닳도록"은 39타예요. 속도를 올리려면 홈포지션(ㄹ·ㅓ)을 지키고, 자판을 보지 않고, 정확도 95% 이상을 유지하면서 조금씩 빨라지는 게 가장 확실해요.</p>
<p>지금 <a href="https://game.smithlab.co.kr/games/typing-test/">한글 타자 속도 테스트</a>에서 내 타수와 정확도를 재 보세요. 기억력이 궁금하다면 <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억력 테스트</a>도 있어요.</p>
    ]]></description>
    </item>
    <item>
      <title>지뢰찾기 공략 — 1-1·1-2·1-2-1 패턴과 양손 클릭으로 빨리…</title>
      <link>https://game.smithlab.co.kr/posts/games/minesweeper-patterns/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/minesweeper-patterns/</guid>
      <pubDate>Mon, 05 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>지뢰찾기는 "찍기 게임" 같아 보여도, 실제로는 대부분의 칸을 논리로 확정할 수 있어요. 막혔다고 느끼는 자리를 하나씩 뜯어보면, 대부분은 몇 가지 반복되는 모양으로 정리돼요. 결론부터 말하면 기본 규칙 두 개와 1-1, 1-2, 1-2-1, 1-2-2-1 네 가지 패턴만 익혀도 찍어야 하는 순간이 크게 줄고, 숫자 칸 양손 클릭(코딩)을 쓰면 시간이 확 단축돼요.</p>
<p>이 글에서는 패턴을 그림으로 보여 주고 왜 그렇게 되는지 원리를 설명한 뒤, 난이도별 지뢰 밀도와 찍기 확률을 계산해 볼게요. 옆에 <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a>를 띄워 두고 같이 보시면 이해가 빨라요. 초급·중급·고급을 고를 수 있고, 첫 클릭은 항상 안전하며, 난이도별 최고 기록이 저장돼요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>숫자 = 주변 안 연 칸 수이면 전부 지뢰, 숫자 = 주변 깃발 수이면 나머지는 전부 안전이에요. 이 두 규칙이 모든 패턴의 출발점이에요.</li><li>일자 경계에서 1-2-1은 양 끝 1 위가 지뢰, 1-2-2-1은 두 2 위가 지뢰예요. 1-2에서는 2 너머 칸이 지뢰예요.</li><li>깃발을 다 꽂은 숫자 칸을 양손(또는 가운데) 클릭하면 나머지 이웃이 한 번에 열려서 기록이 빨라져요.</li><li>지뢰 밀도는 초급 12.3%, 중급 15.6%, 고급 20.6%라 고급일수록 논리로 풀어야 하는 비중이 커요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">지뢰찾기 난이도별 판 크기와 지뢰 밀도</h2>
<p>윈도우 지뢰찾기로 익숙한 표준 난이도는 이렇게 구성돼요. 우리 <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a>도 같은 규격이에요.</p>
<div class="table-wrap"><table><thead><tr><th>난이도</th><th>판 크기</th><th>칸 수</th><th>지뢰</th><th>안전한 칸</th><th>지뢰 밀도</th></tr></thead><tbody><tr><td>초급</td><td>9×9</td><td>81</td><td>10</td><td>71</td><td>12.3%</td></tr><tr><td>중급</td><td>16×16</td><td>256</td><td>40</td><td>216</td><td>15.6%</td></tr><tr><td>고급</td><td>16×30</td><td>480</td><td>99</td><td>381</td><td>20.6%</td></tr></tbody></table></div>
<p>밀도는 지뢰 수 ÷ 전체 칸 수예요. 초급은 10 ÷ 81 ≈ 12.35%, 중급은 40 ÷ 256 = 15.625%, 고급은 99 ÷ 480 = 20.625%예요. 고급은 다섯 칸 중 한 칸 꼴로 지뢰라서, 무작정 찍으면 금방 터져요.</p>
<figure class="viz viz-bar"><figcaption class="viz-title">난이도별 지뢰 밀도</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="난이도별 지뢰 밀도" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">5</text><line class="viz-grid" x1="52" x2="628" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="628" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">15</text><line class="viz-grid" x1="52" x2="628" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">25</text><rect class="s1" x="80.8" y="137.9" width="134.4" height="116.1" rx="3"><title>초급 9x9 · 지뢰 밀도 12.3%</title></rect><text class="viz-val" x="148.0" y="132.9" text-anchor="middle">12.3</text><text class="viz-ax" x="148.0" y="272" text-anchor="middle">초급 9x9</text><rect class="s1" x="272.8" y="106.7" width="134.4" height="147.3" rx="3"><title>중급 16x16 · 지뢰 밀도 15.6%</title></rect><text class="viz-val" x="340.0" y="101.7" text-anchor="middle">15.6</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">중급 16x16</text><rect class="s1" x="464.8" y="59.5" width="134.4" height="194.5" rx="3"><title>고급 16x30 · 지뢰 밀도 20.6%</title></rect><text class="viz-val" x="532.0" y="54.5" text-anchor="middle">20.6</text><text class="viz-ax" x="532.0" y="272" text-anchor="middle">고급 16x30</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">밀도가 높을수록 숫자가 커지고 패턴이 겹쳐서 나와요</p><div class="viz-cap">단위: % · 자료: 지뢰 수 ÷ 전체 칸 수로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>지뢰 밀도</th></tr></thead><tbody><tr><td>초급 9x9</td><td>12.3</td></tr><tr><td>중급 16x16</td><td>15.6</td></tr><tr><td>고급 16x30</td><td>20.6</td></tr></tbody></table></div></details></figure>
<p>밀도가 높아지면 단순히 위험해지는 것만이 아니라 숫자 칸에 3, 4 같은 큰 수가 자주 나오고, 패턴이 겹쳐서 읽기 어려워져요. 그래서 고급은 패턴을 "보는 순간 아는" 수준까지 익혀 두는 게 중요해요.</p>
<h2 id="s2">모든 패턴의 출발점: 기본 규칙 두 가지</h2>
<p>숫자는 주변 8칸(가장자리는 그보다 적음)에 있는 지뢰 수예요. 여기서 바로 나오는 규칙이 두 개 있어요.</p>
<ol><li><strong>숫자 = 주변의 안 연 칸 수</strong> → 그 칸들은 전부 지뢰예요. 예를 들어 코너에 붙은 1이 닿는 안 연 칸이 하나뿐이면 그 칸은 확정 지뢰예요. 판 구석에 3이 있고 안 연 이웃이 3칸뿐이면 셋 다 지뢰고요.</li><li><strong>숫자 = 주변의 깃발 수</strong> → 나머지 안 연 이웃은 전부 안전해요.</li></ol>
<p>패턴이라고 부르는 것들은 이 두 규칙을 이웃한 숫자 두세 개에 동시에 적용한 결과예요. 그래서 패턴을 외우되, 원리를 같이 알아 두면 변형된 모양에서도 응용할 수 있어요.</p>
<h2 id="s3">1-1 패턴과 1-2 패턴</h2>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/minesweeper-patterns-1.svg" alt="일자 경계에서의 1-1, 1-2-1, 1-2-2-1 패턴 격자. 1-1은 첫 두 칸 중 지뢰 하나와 세 번째 칸 안전, 1-2-1은 양 끝 1 위 지뢰와 가운데 안전, 1-2-2-1은 두 2 위 지뢰와 양 끝 안전" width="800" height="560" loading="lazy" decoding="async"><figcaption>윗줄은 안 연 칸, 아랫줄은 이미 열린 칸인 일자 경계 기준</figcaption></figure>
<h3>1-1: 가장자리에서 시작하는 1 두 개</h3>
<p>판 가장자리(또는 이미 열린 벽)에 붙어서 1, 1이 나란히 있고, 그 위가 안 연 칸이라고 해 볼게요. 안 연 칸을 왼쪽부터 A, B, C라고 하면</p>
<ul><li>가장자리 쪽 1은 A, B 두 칸에만 닿아요 → A, B 중 지뢰가 정확히 1개.</li><li>옆의 1은 A, B, C 세 칸에 닿아요 → A + B + C = 1.</li><li>A + B가 이미 1이니 <strong>C는 안전</strong>해요.</li></ul>
<p>핵심은 "작은 집합이 큰 집합 안에 들어 있으면, 차이 나는 칸의 지뢰 수 = 두 숫자의 차"라는 거예요. 1-1에서는 차이가 0이라 C가 안전해요.</p>
<h3>1-2: 2 너머 칸은 지뢰</h3>
<p>같은 원리로 1, 2가 나란히 있을 때를 볼게요. 안 연 칸을 A, B, C, D라 하고, 1은 A·B·C에, 2는 B·C·D에 닿는다고 하면</p>
<ul><li>1 → A + B + C = 1, 그러니 B + C는 최대 1.</li><li>2 → B + C + D = 2. B + C가 최대 1이니 <strong>D는 지뢰</strong>예요.</li><li>그러면 B + C = 1이 되고, 1의 식에서 <strong>A는 안전</strong>이에요.</li></ul>
<p>1-2를 보면 "2 쪽 바깥 칸은 지뢰, 1 쪽 바깥 칸은 안전"이라고 기억해 두면 편해요. 이 패턴은 다른 패턴 안에 숨어서 자주 나와요.</p>
<h2 id="s4">1-2-1 패턴과 1-2-2-1 패턴</h2>
<h3>1-2-1: 양 끝 1 위가 지뢰</h3>
<p>일자 경계에 1, 2, 1이 나란히 있으면 양쪽 1 바로 위가 지뢰, 가운데 2 바로 위는 안전이에요. 이유는 간단해요. 1-2를 왼쪽에서 한 번, 오른쪽에서 한 번 적용하면 2 너머 칸이 양쪽 다 지뢰로 확정되는데, 그 두 칸이 각각 1 위의 칸이에요. 2는 이미 지뢰 둘을 채웠으니 가운데는 안전하죠.</p>
<h3>1-2-2-1: 두 2 위가 지뢰</h3>
<p>1, 2, 2, 1이 나란히 있으면 가운데 두 2 바로 위가 지뢰, 양 끝 1 위는 안전이에요. 마찬가지로 왼쪽 1-2에서 두 번째 2 위가, 오른쪽 2-1에서 첫 번째 2 위가 지뢰로 확정돼요. 1-2-1과 지뢰 위치가 정반대라서 처음엔 헷갈리는데, "숫자가 하나 늘면 지뢰가 안쪽으로 들어온다"고 기억하면 덜 헷갈려요.</p>
<h3>패턴을 쓸 때 주의할 점</h3>
<p>위 패턴은 숫자 줄 아래가 이미 열려 있고 위로만 안 연 칸이 있는 <strong>일자 경계</strong>에서 성립해요. 숫자 주변에 이미 깃발이 있다면 그 깃발 수를 숫자에서 먼저 빼고 생각하세요. 예를 들어 2 옆에 깃발이 하나 있으면 그 2는 사실상 1로 읽어야 해요. 이렇게 "남은 숫자"로 바꿔 읽는 습관이 붙으면, 깃발이 섞인 복잡한 경계에서도 같은 패턴이 보이기 시작해요.</p>
<h3>깃발이 섞인 경계는 "남은 숫자"로</h3>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/minesweeper-patterns-2.svg" alt="실제 판의 2-3-3-2 숫자 줄 아래에 깃발이 숫자마다 하나씩 닿아 있어, 깃발 수를 빼면 1-2-2-1이 되고 두 2 위가 지뢰, 양 끝 1 위가 안전으로 풀리는 과정을 보여 주는 격자 그림" width="800" height="450" loading="lazy" decoding="async"><figcaption>숫자에서 이웃 깃발 수를 빼면 익숙한 패턴이 다시 보여요</figcaption></figure>
<p>위 그림처럼 숫자 줄이 2, 3, 3, 2로 커 보여도, 아랫줄에 이미 확정한 깃발이 숫자마다 하나씩 닿아 있으면 실제로는 1-2-2-1 경계예요. 고급에서 막히는 장면의 상당수가 이렇게 깃발 때문에 패턴이 가려진 경우예요.</p>
<h3>패턴 한눈에 보기</h3>
<div class="table-wrap"><table><thead><tr><th>경계 모양</th><th>지뢰 확정</th><th>안전 확정</th><th>원리</th></tr></thead><tbody><tr><td>벽에 붙은 1-1</td><td>없음(앞 두 칸 중 1개)</td><td>세 번째 칸</td><td>작은 집합 ⊂ 큰 집합, 차이 0</td></tr><tr><td>1-2</td><td>2 너머 칸</td><td>1 너머 칸</td><td>차이 1 → 바깥 칸이 지뢰</td></tr><tr><td>1-2-1</td><td>양 끝 1 위</td><td>가운데 2 위</td><td>1-2를 양쪽에서 적용</td></tr><tr><td>1-2-2-1</td><td>두 2 위</td><td>양 끝 1 위</td><td>1-2와 2-1을 각각 적용</td></tr><tr><td>구석의 3 (이웃 3칸)</td><td>이웃 3칸 모두</td><td>없음</td><td>숫자 = 안 연 칸 수</td></tr><tr><td>숫자 = 깃발 수</td><td>없음</td><td>나머지 이웃 모두</td><td>양손 클릭으로 한 번에 열기</td></tr></tbody></table></div>
<aside class="callout tip"><b class="callout-h">팁</b><p>패턴 이름을 외우기보다 "두 숫자가 닿는 칸의 차이"를 보는 연습을 하세요. 작은 숫자의 영역이 큰 숫자의 영역에 통째로 들어 있으면, 바깥에 남은 칸의 지뢰 수는 정확히 두 숫자의 차예요.</p></aside>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s5">양손 클릭(코딩)으로 시간 줄이기</h2>
<p>지뢰찾기 기록을 줄이는 가장 큰 기술은 <strong>숫자 칸 동시 클릭</strong>이에요. 영어로는 chording이라고 해요. 윈도우 지뢰찾기 기준으로 숫자 칸 위에서 왼쪽과 오른쪽 버튼을 동시에 누르면(또는 가운데 버튼), 그 숫자만큼 깃발이 꽂혀 있을 때 나머지 이웃 칸이 한 번에 열려요.</p>
<ul><li>깃발 수가 숫자와 같을 때만 열려요. 모자라면 아무 일도 일어나지 않아요.</li><li>깃발을 잘못 꽂은 상태에서 쓰면 지뢰가 열려서 터져요. 확신할 때만 쓰세요.</li><li>모바일에서는 길게 눌러 깃발을 꽂고, 숫자 칸을 탭해 같은 효과를 내는 방식이 흔해요. 우리 <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a>도 길게 누르기(또는 오른쪽 클릭)로 깃발을 꽂아요.</li></ul>
<p>빠른 플레이어들은 모든 지뢰에 깃발을 꽂지 않고, 열어야 할 칸만 바로 여는 방식(노플래그)을 쓰기도 해요. 처음에는 깃발 + 코딩으로 정확도를 먼저 잡고, 익숙해지면 클릭 수를 줄이는 쪽으로 가는 걸 추천해요.</p>
<h2 id="s6">첫 클릭과 찍기 확률 계산</h2>
<h3>첫 클릭은 왜 안전할까</h3>
<p>첫 클릭이 지뢰면 게임을 시작도 못 하고 끝나니까, 많은 지뢰찾기 구현이 첫 클릭 칸에는 지뢰를 두지 않도록 만들어요. 우리 <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a>도 첫 클릭은 항상 안전해요. 만약 이런 보호가 없다면 첫 클릭에서 터질 확률은 밀도와 같아서 초급 약 12.3%, 고급 약 20.6%예요.</p>
<p>첫 클릭 위치는 "구석이 좋다"는 말과 "가운데가 좋다"는 말이 같이 돌아요. 둘 다 맞는데, 첫 클릭을 어떻게 보호하느냐에 따라 답이 갈려요. 그래서 두 방식 모두 직접 계산했어요.</p>
<p>첫째는 윈도우 고전판처럼 누른 칸 하나만 안전한 방식이에요. 이때 첫 칸이 0(빈칸)이 되려면 이웃 칸이 전부 지뢰가 아니어야 해서, 이웃이 적은 구석이 유리해요. 확률은 조합으로 정확히 계산돼요. 이웃이 k칸이면 C(전체−1−k, 지뢰) ÷ C(전체−1, 지뢰)예요.</p>
<div class="table-wrap"><table><thead><tr><th>난이도</th><th>구석 (이웃 3칸)</th><th>가장자리 (이웃 5칸)</th><th>안쪽 (이웃 8칸)</th></tr></thead><tbody><tr><td>초급 9×9 · 10개</td><td>66.6%</td><td>50.3%</td><td>32.6%</td></tr><tr><td>중급 16×16 · 40개</td><td>59.8%</td><td>42.3%</td><td>25.0%</td></tr><tr><td>고급 16×30 · 99개</td><td>49.8%</td><td>31.3%</td><td>15.4%</td></tr></tbody></table></div>
<p>둘째는 우리 <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a>처럼 누른 칸과 주변 8칸까지 비워 주는 방식이에요. 이러면 첫 칸은 항상 0이라 "0이 나올 확률"은 의미가 없고, 대신 한 번에 몇 칸이 열리느냐가 중요해져요. 이건 위 규칙대로 지뢰를 깔고 첫 클릭을 4,000번씩 시뮬레이션해서 평균을 냈어요.</p>
<div class="table-wrap"><table><thead><tr><th>난이도</th><th>구석을 눌렀을 때 평균 열리는 칸</th><th>정가운데를 눌렀을 때</th></tr></thead><tbody><tr><td>초급</td><td>27.7칸</td><td>46.0칸</td></tr><tr><td>중급</td><td>26.8칸</td><td>64.6칸</td></tr><tr><td>고급</td><td>16.1칸</td><td>39.6칸</td></tr></tbody></table></div>
<figure class="viz viz-bar"><figcaption class="viz-title">첫 칸과 주변이 안전한 방식에서 첫 클릭에 열리는 평균 칸 수</figcaption><div class="viz-legend"><span><i class="s1"></i>구석</span><span><i class="s2"></i>정가운데</span></div><svg viewBox="0 0 640 300" role="img" aria-label="첫 칸과 주변이 안전한 방식에서 첫 클릭에 열리는 평균 칸 수" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">60</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">80</text><rect class="s1" x="80.8" y="172.3" width="66.2" height="81.7" rx="3"><title>초급 · 구석 27.7칸</title></rect><rect class="s2" x="149.0" y="118.3" width="66.2" height="135.7" rx="3"><title>초급 · 정가운데 46칸</title></rect><text class="viz-ax" x="148.0" y="272" text-anchor="middle">초급</text><rect class="s1" x="272.8" y="174.9" width="66.2" height="79.1" rx="3"><title>중급 · 구석 26.8칸</title></rect><rect class="s2" x="341.0" y="63.4" width="66.2" height="190.6" rx="3"><title>중급 · 정가운데 64.6칸</title></rect><text class="viz-ax" x="340.0" y="272" text-anchor="middle">중급</text><rect class="s1" x="464.8" y="206.5" width="66.2" height="47.5" rx="3"><title>고급 · 구석 16.1칸</title></rect><rect class="s2" x="533.0" y="137.2" width="66.2" height="116.8" rx="3"><title>고급 · 정가운데 39.6칸</title></rect><text class="viz-ax" x="532.0" y="272" text-anchor="middle">고급</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">주변까지 보호해 주는 판에서는 가운데가 2~2.5배 넓게 열려요</p><div class="viz-cap">단위: 칸 · 자료: 첫 클릭 칸과 주변 8칸을 비우고 지뢰를 무작위 배치해 4,000판씩 직접 시뮬레이션 (2026-10-18)</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>구석</th><th>정가운데</th></tr></thead><tbody><tr><td>초급</td><td>27.7</td><td>46</td></tr><tr><td>중급</td><td>26.8</td><td>64.6</td></tr><tr><td>고급</td><td>16.1</td><td>39.6</td></tr></tbody></table></div></details></figure>
<p>정리하면, 고전 규칙 판에서는 구석을 눌러 0이 나올 확률을 높이고, 주변까지 보호하는 판(이 사이트 포함)에서는 가운데를 눌러 넓게 여는 게 유리해요. 가운데는 보호받는 9칸이 모두 판 안에 들어가지만 구석은 4칸만 들어가서 차이가 생겨요.</p>
<h3>어쩔 수 없이 찍어야 할 때</h3>
<p>논리로 더 이상 확정할 수 없는 상황이 실제로 생겨요. 대표적인 게 두 칸 중 하나가 지뢰인데 어느 쪽인지 알 수 있는 정보가 전혀 없는 50:50 상황이에요. 이때는 다음 순서로 판단해요.</p>
<ol><li><strong>정말 정보가 없는지 다시 확인</strong>: 다른 경계를 먼저 풀면 정보가 생기는 경우가 많아요. 찍기는 항상 마지막에.</li><li><strong>남은 지뢰 수 활용</strong>: 판 막바지에는 "남은 지뢰 수"가 결정적 힌트가 돼요. 예를 들어 남은 지뢰가 1개인데 후보 위치가 한 경계에만 있다면 다른 곳은 모두 안전해요.</li><li><strong>확률이 낮은 칸 고르기</strong>: 경계와 무관한 안쪽 칸의 대략적인 확률은 남은 지뢰 ÷ 남은 안 연 칸이에요. 예를 들어 고급에서 남은 지뢰 30개, 안 연 칸 150개라면 대략 20%예요. 50:50 칸보다 이런 칸을 여는 게 유리할 때가 많아요(경계 칸들이 지뢰를 얼마나 가져가는지에 따라 실제 값은 조금 달라요).</li><li><strong>찍기는 일찍</strong>: 어차피 찍어야 할 50:50이라면 판 후반보다 초반에 하는 게 낫다는 조언이 많아요. 터지더라도 잃는 시간이 적으니까요.</li></ol>
<aside class="callout warn"><b class="callout-h">주의</b><p>50:50처럼 보여도 판 전체를 보면 정보가 숨어 있는 경우가 많아요. 반대로 진짜 50:50은 아무리 오래 봐도 풀리지 않으니, 시간만 쓰지 말고 다른 경계를 먼저 정리한 뒤 일찍 결정하세요.</p></aside>
<p>지뢰찾기가 "가끔은 논리로 안 풀린다"는 건 수학적으로도 확인된 성질이에요. 수학자 Richard Kaye는 주어진 지뢰찾기 판이 모순 없이 채워질 수 있는지 판정하는 문제가 NP-완전이라는 것을 증명했어요(<a href="https://doi.org/10.1007/BF03025367" target="_blank" rel="noopener">Kaye, Minesweeper is NP-complete, The Mathematical Intelligencer 22권 2호, 2000</a>). 쉽게 말해, 판이 커지면 "확실히 풀 수 있는 칸"을 찾는 일 자체가 아주 어려워질 수 있다는 뜻이에요. 사람이 쓰는 패턴은 이 어려운 문제의 자주 나오는 쉬운 조각들을 미리 외워 둔 것이라고 볼 수 있어요.</p>
<p>50:50을 여러 번 만나면 끝까지 살아남을 확률은 빠르게 떨어져요.</p>
<figure class="viz viz-line"><figcaption class="viz-title">50:50 찍기를 연달아 성공할 확률</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="50:50 찍기를 연달아 성공할 확률" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="570" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="570" y1="206.8" y2="206.8"/><text class="viz-ax" x="46" y="210.8" text-anchor="end">10</text><line class="viz-grid" x1="52" x2="570" y1="159.6" y2="159.6"/><text class="viz-ax" x="46" y="163.6" text-anchor="end">20</text><line class="viz-grid" x1="52" x2="570" y1="112.4" y2="112.4"/><text class="viz-ax" x="46" y="116.4" text-anchor="end">30</text><line class="viz-grid" x1="52" x2="570" y1="65.2" y2="65.2"/><text class="viz-ax" x="46" y="69.2" text-anchor="end">40</text><line class="viz-grid" x1="52" x2="570" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">50</text><text class="viz-ax" x="52.0" y="272" text-anchor="middle">1번</text><text class="viz-ax" x="181.5" y="272" text-anchor="middle">2번</text><text class="viz-ax" x="311.0" y="272" text-anchor="middle">3번</text><text class="viz-ax" x="440.5" y="272" text-anchor="middle">4번</text><text class="viz-ax" x="570.0" y="272" text-anchor="middle">5번</text><polyline class="viz-line s1" points="52.0,18.0 181.5,136.0 311.0,195.0 440.5,224.5 570.0,239.2"/><circle class="viz-dot s1" cx="52.0" cy="18.0" r="4"><title>1번 · 성공 확률 50%</title></circle><circle class="viz-dot s1" cx="181.5" cy="136.0" r="4"><title>2번 · 성공 확률 25%</title></circle><circle class="viz-dot s1" cx="311.0" cy="195.0" r="4"><title>3번 · 성공 확률 12.5%</title></circle><circle class="viz-dot s1" cx="440.5" cy="224.5" r="4"><title>4번 · 성공 확률 6.2%</title></circle><circle class="viz-dot s1" cx="570.0" cy="239.2" r="4"><title>5번 · 성공 확률 3.1%</title></circle><text class="viz-val" x="578.0" y="243.2">3.1</text><line class="viz-base" x1="52" x2="570" y1="254.0" y2="254.0"/></svg><p class="viz-note">찍기를 줄이는 게 기록보다 승률에 더 중요해요</p><div class="viz-cap">단위: % · 자료: 0.5의 거듭제곱으로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>성공 확률</th></tr></thead><tbody><tr><td>1번</td><td>50</td></tr><tr><td>2번</td><td>25</td></tr><tr><td>3번</td><td>12.5</td></tr><tr><td>4번</td><td>6.2</td></tr><tr><td>5번</td><td>3.1</td></tr></tbody></table></div></details></figure>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s7">지뢰찾기 실력 늘리는 연습 순서</h2>
<ol><li><strong>초급에서 패턴 눈에 익히기</strong>: 시간 신경 쓰지 말고 1-1, 1-2가 보일 때마다 이유를 속으로 말해 보세요.</li><li><strong>중급에서 코딩 익히기</strong>: 깃발 + 숫자 칸 동시 클릭을 습관으로 만들어요.</li><li><strong>고급에서 찍기 줄이기</strong>: 막히면 바로 찍지 말고 판 전체 경계를 한 번 훑어보세요. 다른 곳에 확정 칸이 숨어 있는 경우가 많아요.</li><li><strong>기록은 난이도별로 비교</strong>: 우리 게임은 난이도별 최고 기록이 따로 저장돼서, 단계별 성장이 보여요.</li></ol>
<p>논리 퍼즐을 좋아한다면 <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 공략</a>도 비슷한 재미가 있어요. 빠른 손이 중요하다면 <a href="https://game.smithlab.co.kr/posts/games/reaction-time-explained/">반응속도 평균과 높이는 법</a>도 참고해 보세요.</p>
<h2 id="s8">자주 묻는 질문</h2>
<h3>지뢰찾기 1-2-1 패턴은 어떻게 푸나요?</h3>
<p>일자 경계에 1, 2, 1이 나란히 있으면 양쪽 1 바로 위 칸이 지뢰이고, 가운데 2 바로 위 칸은 안전해요. 1-2 패턴을 양쪽에서 한 번씩 적용한 결과라서 원리를 알면 외우지 않아도 돼요.</p>
<h3>지뢰찾기 고급은 지뢰가 몇 개인가요?</h3>
<p>표준 고급은 16×30 판에 지뢰 99개예요. 전체 480칸 중 약 20.6%가 지뢰라서 초급(9×9, 10개, 약 12.3%)보다 훨씬 빽빽해요.</p>
<h3>양손 클릭(코딩)은 어떻게 하나요?</h3>
<p>숫자 칸 주변에 그 숫자만큼 깃발을 꽂은 뒤, 숫자 칸 위에서 왼쪽·오른쪽 버튼을 동시에 누르면 나머지 이웃이 한 번에 열려요. 깃발 수가 숫자와 다르면 열리지 않고, 깃발이 틀렸다면 지뢰가 열리니 확실할 때만 쓰세요.</p>
<h3>첫 클릭에서 지뢰가 나올 수 있나요?</h3>
<p>많은 구현이 첫 클릭 칸에는 지뢰를 두지 않도록 만들어요. 우리 지뢰찾기도 첫 클릭은 항상 안전해요. 이런 보호가 없다면 첫 클릭에서 터질 확률은 지뢰 밀도와 같아요.</p>
<h3>찍어야 할 때는 어디를 찍나요?</h3>
<p>먼저 다른 경계에서 확정할 수 있는 칸이 없는지 확인하고, 그래도 없으면 지뢰일 확률이 낮은 칸을 골라요. 경계와 떨어진 칸의 확률은 대략 남은 지뢰 ÷ 남은 안 연 칸이라 50:50 칸보다 안전할 때가 많아요.</p>
<h2 id="s9">정리</h2>
<p>지뢰찾기는 기본 규칙 두 개(숫자 = 안 연 칸 수면 전부 지뢰, 숫자 = 깃발 수면 나머지 안전) 위에 1-1, 1-2, 1-2-1, 1-2-2-1 패턴을 쌓으면 대부분 논리로 풀려요. 난이도가 오를수록 밀도가 12.3% → 15.6% → 20.6%로 높아져 패턴이 겹쳐 나오니, 깃발을 뺀 "남은 숫자"로 읽는 습관과 양손 클릭을 같이 익히세요. 찍기는 최후의 수단이고, 해야 한다면 확률이 낮은 칸을 일찍 고르는 게 좋아요.</p>
<p>이제 <a href="https://game.smithlab.co.kr/games/minesweeper/">지뢰찾기</a>에서 초급부터 패턴을 확인해 보세요. 다른 퍼즐이 궁금하면 <a href="https://game.smithlab.co.kr/games/2048/">2048 게임</a>이나 <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억력 테스트</a>도 있어요.</p>
    ]]></description>
    </item>
    <item>
      <title>반응속도 평균은 몇 ms일까, 측정값 읽는 법과 높이는 법 정리</title>
      <link>https://game.smithlab.co.kr/posts/games/reaction-time-explained/</link>
      <guid isPermaLink="true">https://game.smithlab.co.kr/posts/games/reaction-time-explained/</guid>
      <pubDate>Mon, 05 Oct 2026 09:00:00 +0900</pubDate>
      <category>스미스 게임 연구소</category>
      <description><![CDATA[
<p>반응속도 테스트를 해 보면 친구는 180ms가 나오는데 나는 260ms가 나와서 괜히 신경 쓰일 때가 있어요. 그런데 이 숫자에는 내 손과 눈의 속도만 들어 있는 게 아니라 화면이 바뀌는 데 걸린 시간, 마우스가 클릭을 전달하는 시간까지 섞여 있어요. 결론부터 말하면 실험실에서 잰 젊은 성인의 단순 시각 반응속도는 평균 190ms 안팎이고, 온라인 테스트에서는 화면·입력 지연이 더해져 <strong>200~250ms대</strong>가 나오는 게 자연스러워요. 기기 차이만으로도 수십 ms가 달라질 수 있으니 같은 환경에서 잰 기록끼리 비교하는 게 맞아요.</p>
<p>이 글에서는 반응속도 측정값이 무엇으로 구성되는지, 왜 한 번이 아니라 여러 번 평균을 내는지, 기록에 영향을 주는 요인과 실제로 기록을 끌어올리는 연습법을 정리할게요. 직접 재 보고 싶다면 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>를 열어 두세요. 5회를 측정해 평균을 보여 주고, 가장 빠른(가장 낮은 ms) 기록은 따로 저장돼요.</p>
<aside class="callout key"><b class="callout-h">핵심 요약</b><ul><li>실험실 기준 대학생 나이대의 평균 단순 반응속도는 빛 약 190ms, 소리 약 160ms로, 소리 쪽이 더 빨라요(Welford 자료, Jain 외 2015 인용).</li><li>측정값에는 화면 표시 지연(60Hz 화면이면 한 프레임에 약 16.7ms), 마우스·터치 입력 지연, 브라우저 처리 시간이 함께 들어 있어요.</li><li>한 번 기록은 컨디션과 우연에 크게 흔들리므로 최소 5회를 재서 평균을 보는 게 좋아요.</li><li>수면, 피로, 집중이 가장 큰 변수이고, 신호를 미리 예측해 누르는 건 반칙이에요.</li></ul></aside>
<!-- kakao-ad --><div class="ad-kakao"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-QiLsqZLE7gbSwimU" data-ad-width="320" data-ad-height="480" data-ad-onfail="smithAdFail"></ins></div><script>function smithAdFail(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}</script><!-- /kakao-ad -->
<h2 id="s1">반응속도 평균, 일반적으로 알려진 범위</h2>
<p>화면에 불이 켜지면 바로 버튼을 누르는 식의 단순 시각 반응(simple visual reaction time) 은 반응속도 연구에서 가장 기본이 되는 측정이에요. 인도 의대 1학년생 120명을 대상으로 한 <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC4456887/" target="_blank" rel="noopener">Jain 외(2015) 연구</a>는 서론에서 대학생 나이대의 평균 단순 반응속도를 <strong>빛 약 190ms, 소리 약 160ms</strong>로 소개하고(Welford의 정리 인용), 자신들의 측정에서도 남녀 모두 <strong>청각 반응이 시각 반응보다 유의하게 빨랐다</strong>고 보고했어요. 소리 신호가 뇌에 닿는 시간(약 8~10ms)이 빛 신호(약 20~40ms)보다 짧은 게 한 이유로 꼽혀요.</p>
<p>더 큰 표본으로는 미국 캘리포니아의 Woods 외(2015) 연구가 있어요. <a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC4374455/" target="_blank" rel="noopener">「단순 반응속도의 지연에 영향을 주는 요인」(Frontiers in Human Neuroscience)</a>은 18~65세 지역 주민 1,469명의 단순 시각 반응을 컴퓨터로 쟀어요. 평균은 231ms였고, 측정 장비의 하드웨어 지연을 보정하면 213ms였어요. 장비 지연만으로 18ms가 붙은 셈이라, 온라인 테스트 기록을 실험실 숫자와 그대로 비교하면 안 되는 이유를 잘 보여 줘요.</p>
<div class="table-wrap"><table><thead><tr><th>연구</th><th>대상</th><th>자극</th><th>보고된 평균</th><th>읽을 점</th></tr></thead><tbody><tr><td>Welford 정리 (Jain 외 2015 서론 인용)</td><td>대학생 나이대</td><td>빛 / 소리</td><td>약 190ms / 약 160ms</td><td>소리가 약 30ms 빠름</td></tr><tr><td>Woods 외 2015, 실험 1</td><td>18~65세 1,469명</td><td>화면 시각 자극</td><td>231ms (장비 지연 보정 시 213ms)</td><td>장비 몫이 약 18ms</td></tr><tr><td>Woods 외 2015, 같은 실험</td><td>같은 표본</td><td>자극 감지 시간 추정</td><td>131ms</td><td>나이와 무관하게 일정</td></tr><tr><td>Woods 외 2015, 나이 효과</td><td>같은 표본</td><td>화면 시각 자극</td><td>1년에 0.55ms씩 느려짐</td><td>20세와 60세 차이 약 22ms</td></tr></tbody></table></div>
<p>Woods 외 연구에서 흥미로운 점은 성별과 학력에 따른 차이가 없었고, 나이가 들며 느려지는 부분은 주로 "보고 알아차리는" 단계가 아니라 손을 움직이는 운동 출력 쪽이었다는 거예요. 감지 시간 추정치(131ms)는 나이와 관계없이 일정했어요.</p>
<p>온라인 테스트에서는 여기에 아래에서 설명할 화면 지연(60Hz 기준 평균 약 8ms)과 마우스·브라우저 지연이 더해지므로, 200~250ms대 기록이 나오는 건 아주 흔한 일이에요.</p>
<p>다만 이 숫자들은 실험 조건에 따라 달라져요. 실험마다 자극 종류, 밝기, 입력 장치, 측정 방식이 달라서 수치가 꽤 다르게 나와요. 그래서 인터넷 테스트에서 나온 내 숫자를 이 범위에 딱 대 보고 "정상이다, 아니다"를 판단하는 건 의미가 크지 않아요. 이 테스트는 재미와 자기 기록 비교용이지, 건강 상태를 판정하는 도구가 아니에요. 평소와 다르게 반응이 눈에 띄게 둔해졌다고 느껴진다면 테스트 숫자보다 전문가 상담이 먼저예요.</p>
<aside class="callout warn"><b class="callout-h">주의</b><p>반응속도 테스트 숫자로 건강 상태나 운전 적성을 판단하지 마세요. 기기 지연이 수십 ms까지 섞이고, 같은 사람도 회차마다 크게 흔들려요. 평소와 다르게 둔해졌다고 느껴지면 의료 전문가와 상담하는 게 맞아요.</p></aside>
<p>참고로 반응해야 할 대상이 여러 개로 늘어나면(예: 빨강이면 왼쪽, 파랑이면 오른쪽) 이를 <strong>선택 반응</strong>이라고 하는데, 판단 단계가 추가되기 때문에 단순 반응보다 확실히 느려져요. 선택지가 늘수록 반응 시간이 길어지는 관계를 힉의 법칙(Hick's law)이라고 불러요. 우리 테스트는 "색이 바뀌면 누른다"는 단순 반응이라 이 영향이 거의 없어요.</p>
<h2 id="s2">측정값에 섞여 있는 것들: 사람 몫과 기기 몫</h2>
<p>화면에 "지금!" 신호가 뜬 순간부터 클릭이 기록되기까지를 쪼개 보면 이렇게 나뉘어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/reaction-time-explained-1.svg" alt="반응속도 측정 구간을 화면 표시, 눈·지각, 판단, 근육 운동, 입력 지연, 이벤트 처리 순서로 나누고 사람 몫과 기기 몫을 색으로 구분한 예시 타임라인" width="800" height="450" loading="lazy" decoding="async"><figcaption>구간 길이는 개념 설명용 예시예요</figcaption></figure>
<ul><li><strong>화면 표시 지연(기기)</strong>: 프로그램이 색을 바꾸라고 명령해도 화면은 다음 프레임에 그려요. 그 뒤 패널이 실제로 색을 바꾸는 시간(응답속도)도 있어요.</li><li><strong>지각(사람)</strong>: 빛이 눈에 들어와 신경 신호로 바뀌고 뇌에 전달되는 시간이에요.</li><li><strong>판단(사람)</strong>: "바뀌었다"를 인식하고 누르기로 결정하는 단계예요.</li><li><strong>운동(사람)</strong>: 손가락 근육에 신호가 가서 실제로 버튼을 누르는 시간이에요.</li><li><strong>입력 지연(기기)</strong>: 마우스나 터치스크린이 눌림을 감지해 컴퓨터에 보내는 시간이에요. 무선이나 블루투스 장치는 여기에 지연이 더해질 수 있어요.</li><li><strong>이벤트 처리(기기)</strong>: 브라우저가 클릭 이벤트를 받아 시간을 기록하는 시간이에요.</li></ul>
<p>이 중 사람이 바꿀 수 있는 건 가운데 세 단계뿐이에요. 나머지는 장비를 바꾸지 않는 한 그대로라서, 다른 사람의 기록과 비교할 때 큰 오차가 돼요.</p>
<h2 id="s3">모니터 주사율과 프레임 지연 계산</h2>
<p>화면은 1초에 정해진 횟수만큼만 새로 그려져요. 이 횟수가 주사율(Hz)이고, 한 프레임의 길이는 1000 ÷ 주사율(ms)이에요.</p>
<figure class="viz viz-hbar"><figcaption class="viz-title">모니터 주사율별 한 프레임 길이</figcaption><svg viewBox="0 0 640 152" role="img" aria-label="모니터 주사율별 한 프레임 길이" preserveAspectRatio="xMidYMid meet"><text class="viz-ax lg" x="65" y="29" text-anchor="end">60Hz</text><rect class="s1" x="75" y="15" width="413.3" height="20" rx="3"><title>60Hz · 16.7ms</title></rect><text class="viz-val" x="494.3" y="29">16.7ms</text><text class="viz-ax lg" x="65" y="63" text-anchor="end">120Hz</text><rect class="s1" x="75" y="49" width="205.4" height="20" rx="3"><title>120Hz · 8.3ms</title></rect><text class="viz-val" x="286.4" y="63">8.3ms</text><text class="viz-ax lg" x="65" y="97" text-anchor="end">144Hz</text><rect class="s1" x="75" y="83" width="170.8" height="20" rx="3"><title>144Hz · 6.9ms</title></rect><text class="viz-val" x="251.8" y="97">6.9ms</text><text class="viz-ax lg" x="65" y="131" text-anchor="end">240Hz</text><rect class="s1" x="75" y="117" width="104.0" height="20" rx="3"><title>240Hz · 4.2ms</title></rect><text class="viz-val" x="184.9" y="131">4.2ms</text></svg><div class="viz-cap">단위: ms · 자료: 1000 ÷ 주사율로 직접 계산</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>프레임 길이</th></tr></thead><tbody><tr><td>60Hz</td><td>16.7</td></tr><tr><td>120Hz</td><td>8.3</td></tr><tr><td>144Hz</td><td>6.9</td></tr><tr><td>240Hz</td><td>4.2</td></tr></tbody></table></div></details></figure>
<p>색을 바꾸라는 명령이 프레임 사이 아무 때나 떨어진다고 보면, 실제로 화면에 반영될 때까지 0에서 한 프레임까지 기다려야 하고, 평균적으로는 대략 반 프레임이에요. 60Hz 화면이면 평균 약 8.3ms, 최악 약 16.7ms가 기기 탓으로 붙는 셈이에요. 240Hz라면 이 값이 평균 약 2.1ms, 최악 약 4.2ms로 줄어요. 여기에 패널 응답속도, 운영체제·브라우저의 화면 합성 과정이 더해지면 기기 쪽 지연은 이보다 커질 수 있어요.</p>
<figure class="post-fig"><img src="https://game.smithlab.co.kr/assets/img/posts/games/reaction-time-explained-2.svg" alt="60Hz와 240Hz 화면에서 같은 시점(21ms)에 색 바꾸기 명령이 와도 다음 프레임 경계까지 각각 12.3ms와 4.0ms를 기다려야 화면에 뜬다는 것을 보여 주는 타임라인" width="800" height="450" loading="lazy" decoding="async"><figcaption>명령이 프레임 사이 어디에 떨어지느냐에 따라 매번 대기 시간이 달라져요</figcaption></figure>
<div class="table-wrap"><table><thead><tr><th>주사율</th><th>한 프레임</th><th>평균 프레임 대기</th><th>최악 프레임 대기</th><th>60Hz 대비 평균 이득</th></tr></thead><tbody><tr><td>60Hz</td><td>16.7ms</td><td>8.3ms</td><td>16.7ms</td><td>기준</td></tr><tr><td>120Hz</td><td>8.3ms</td><td>4.2ms</td><td>8.3ms</td><td>약 4.2ms</td></tr><tr><td>144Hz</td><td>6.9ms</td><td>3.5ms</td><td>6.9ms</td><td>약 4.9ms</td></tr><tr><td>240Hz</td><td>4.2ms</td><td>2.1ms</td><td>4.2ms</td><td>약 6.3ms</td></tr></tbody></table></div>
<p>표의 값은 프레임 대기만 계산한 거예요(1000 ÷ 주사율, 평균은 그 절반). 60Hz에서 240Hz로 바꿔도 평균 이득은 6ms 남짓이라, 사람마다 회차마다 수십 ms씩 흔들리는 반응 자체의 변동보다 작아요. 고주사율 화면은 기록을 조금 낮춰 주지만 실력 차이를 뒤집을 정도는 아니에요.</p>
<p>스마트폰은 터치 감지, 화면 합성 방식이 기종마다 달라서 같은 사람이라도 PC와 폰 기록이 꽤 다르게 나오는 게 자연스러워요. 그래서 "내 기록이 좋아졌는지"는 같은 기기·같은 브라우저에서만 비교하는 게 원칙이에요.</p>
<h2 id="s4">왜 한 번이 아니라 5회 평균일까</h2>
<p>반응속도는 같은 사람이 연달아 재도 매번 수십 ms씩 달라져요. 잠깐 딴생각을 하거나, 눈을 깜빡이는 순간 신호가 뜨면 확 느려지죠. 그래서 한 번의 기록은 실력보다 우연을 더 많이 반영할 수 있어요.</p>
<p>예를 들어 다섯 번을 재서 아래처럼 나왔다고 해 볼게요(설명용 예시 숫자예요).</p>
<figure class="viz viz-bar"><figcaption class="viz-title">5회 측정 예시와 평균·중앙값</figcaption><svg viewBox="0 0 640 300" role="img" aria-label="5회 측정 예시와 평균·중앙값" preserveAspectRatio="xMidYMid meet"><line class="viz-grid" x1="52" x2="628" y1="254.0" y2="254.0"/><text class="viz-ax" x="46" y="258.0" text-anchor="end">0</text><line class="viz-grid" x1="52" x2="628" y1="195.0" y2="195.0"/><text class="viz-ax" x="46" y="199.0" text-anchor="end">100</text><line class="viz-grid" x1="52" x2="628" y1="136.0" y2="136.0"/><text class="viz-ax" x="46" y="140.0" text-anchor="end">200</text><line class="viz-grid" x1="52" x2="628" y1="77.0" y2="77.0"/><text class="viz-ax" x="46" y="81.0" text-anchor="end">300</text><line class="viz-grid" x1="52" x2="628" y1="18.0" y2="18.0"/><text class="viz-ax" x="46" y="22.0" text-anchor="end">400</text><rect class="s1" x="64.3" y="117.7" width="57.6" height="136.3" rx="3"><title>1회 · 반응 시간 231ms</title></rect><text class="viz-val" x="93.1" y="112.7" text-anchor="middle">231</text><text class="viz-ax" x="93.1" y="272" text-anchor="middle">1회</text><rect class="s1" x="146.6" y="107.7" width="57.6" height="146.3" rx="3"><title>2회 · 반응 시간 248ms</title></rect><text class="viz-val" x="175.4" y="102.7" text-anchor="middle">248</text><text class="viz-ax" x="175.4" y="272" text-anchor="middle">2회</text><rect class="s1" x="228.9" y="124.8" width="57.6" height="129.2" rx="3"><title>3회 · 반응 시간 219ms</title></rect><text class="viz-val" x="257.7" y="119.8" text-anchor="middle">219</text><text class="viz-ax" x="257.7" y="272" text-anchor="middle">3회</text><rect class="s1" x="311.2" y="74.0" width="57.6" height="179.9" rx="3"><title>4회 · 반응 시간 305ms</title></rect><text class="viz-val" x="340.0" y="69.0" text-anchor="middle">305</text><text class="viz-ax" x="340.0" y="272" text-anchor="middle">4회</text><rect class="s1" x="393.5" y="112.4" width="57.6" height="141.6" rx="3"><title>5회 · 반응 시간 240ms</title></rect><text class="viz-val" x="422.3" y="107.4" text-anchor="middle">240</text><text class="viz-ax" x="422.3" y="272" text-anchor="middle">5회</text><rect class="s1" x="475.8" y="107.3" width="57.6" height="146.7" rx="3"><title>평균 · 반응 시간 249ms</title></rect><text class="viz-val" x="504.6" y="102.3" text-anchor="middle">249</text><text class="viz-ax" x="504.6" y="272" text-anchor="middle">평균</text><rect class="s1" x="558.1" y="112.4" width="57.6" height="141.6" rx="3"><title>중앙값 · 반응 시간 240ms</title></rect><text class="viz-val" x="586.9" y="107.4" text-anchor="middle">240</text><text class="viz-ax" x="586.9" y="272" text-anchor="middle">중앙값</text><line class="viz-base" x1="52" x2="628" y1="254.0" y2="254.0"/></svg><p class="viz-note">4회차처럼 튀는 값 하나가 평균을 끌어올려요</p><div class="viz-cap">단위: ms · 자료: 설명용 예시 숫자 · 평균 = 1243 ÷ 5</div><details class="viz-table"><summary>표로 보기</summary><div class="table-wrap"><table><thead><tr><th>구분</th><th>반응 시간</th></tr></thead><tbody><tr><td>1회</td><td>231</td></tr><tr><td>2회</td><td>248</td></tr><tr><td>3회</td><td>219</td></tr><tr><td>4회</td><td>305</td></tr><tr><td>5회</td><td>240</td></tr><tr><td>평균</td><td>249</td></tr><tr><td>중앙값</td><td>240</td></tr></tbody></table></div></details></figure>
<p>다섯 번 합이 1,243ms라서 평균은 248.6ms예요. 그런데 4회차 305ms 하나를 빼면 나머지 네 번 평균은 234.5ms로 꽤 달라져요. 그래서 기록을 볼 때는</p>
<ul><li><strong>평균</strong>: 전반적인 수준. 우리 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>가 보여 주는 값이에요.</li><li><strong>최고 기록(가장 낮은 ms)</strong>: 컨디션이 가장 좋을 때의 가능성. 여기서는 219ms예요.</li><li><strong>튀는 값</strong>: 집중이 흐트러진 횟수. 이게 자주 나오면 실력보다 집중 문제예요.</li></ul>
<p>이 세 가지를 같이 보면 좋아요. 연구에서는 아주 빠른 값(흔히 100ms 미만 정도)을 신호를 보고 누른 게 아니라 미리 예측해 누른 것으로 보고 걸러내는 관행도 있어요. 사람이 신호를 보고 그보다 빨리 반응하기는 어렵기 때문이에요.</p>
<h3>기록을 비교하기 전 체크리스트</h3>
<p>친구와 기록을 겨루거나 어제의 나와 비교할 때, 아래 항목이 같은지 먼저 확인해 보세요. 하나라도 다르면 차이의 상당 부분이 실력이 아니라 환경 탓일 수 있어요.</p>
<div class="table-wrap"><table><thead><tr><th>확인 항목</th><th>왜 중요한가</th></tr></thead><tbody><tr><td>같은 기기·같은 화면</td><td>주사율과 패널 응답속도가 기록에 그대로 더해져요</td></tr><tr><td>같은 입력 방식</td><td>유선 마우스, 무선 마우스, 터치는 입력 지연이 서로 달라요</td></tr><tr><td>같은 횟수의 평균</td><td>1회 기록과 5회 평균은 비교 대상이 아니에요</td></tr><tr><td>비슷한 시간대·컨디션</td><td>피곤한 밤과 개운한 아침은 꽤 차이가 나요</td></tr><tr><td>절전·저전력 모드 여부</td><td>일부 기기는 저전력 모드에서 화면 갱신을 줄이기도 해요</td></tr></tbody></table></div>
<h2 id="s5">반칙(너무 일찍 누르기)은 왜 막을까</h2>
<p>반응속도 테스트는 대기 시간을 무작위로 바꿔요. 매번 같은 간격이면 리듬을 외워서 신호보다 먼저 누를 수 있기 때문이에요. 그래도 "이쯤 바뀌겠지" 하고 미리 누르면 그건 반응이 아니라 예측이라 기록으로 인정되지 않아요. 우리 테스트도 화면이 바뀌기 전에 누르면 그 회차는 반칙으로 처리하고 다시 재요.</p>
<p>반칙이 자주 나온다면 긴장해서 손가락에 힘이 들어가 있는 경우가 많아요. 손가락을 버튼 위에 가볍게 올려 두고, "보이면 누른다"에만 집중하는 게 오히려 평균 기록에 유리해요.</p>
<!-- kakao-midpair --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-ZYyczKMzADFPJ1j8" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-2"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-VLKZK0d9HWvhImkp" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail7"></ins></div></div><script>function smithAdFail7(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-pair-2');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-midpair -->
<h2 id="s6">반응속도에 영향을 주는 요인</h2>
<p>연구로 확인된 요인과 일상적인 요인을 정리하면 이래요. 각각이 몇 ms를 바꾸는지는 사람과 상황마다 달라서 숫자로 단정하지 않을게요.</p>
<ul><li><strong>수면과 피로</strong>: 수면 연구에서 쓰는 표준 반응 과제(PVT)로 측정하면, 밤샘이나 며칠간의 수면 부족 뒤에는 반응이 느려지고 500ms 이상 크게 늦는 '실수(lapse)'가 늘어나요(<a href="https://pmc.ncbi.nlm.nih.gov/articles/PMC3079937/" target="_blank" rel="noopener">Basner·Dinges 2011, Sleep</a>). 기록이 갑자기 들쭉날쭉하다면 컨디션부터 의심해 보세요.</li><li><strong>카페인</strong>: 졸릴 때 각성을 도와 기록이 나아지는 사람도 있지만, 효과는 사람마다 차이가 크고 과하면 오히려 손 떨림이나 긴장을 부를 수 있어요. 기록을 위해 일부러 마실 이유는 없어요.</li><li><strong>나이</strong>: 위 Woods 외 연구에서는 1년에 약 0.55ms씩 느려졌어요. 영국 성인 7,130명을 분석한 Der·Deary(2006, Psychology and Aging) 연구에서는 단순 반응속도는 50세 무렵까지 거의 느려지지 않았고, 선택 반응속도는 성인기 전체에 걸쳐 조금씩 느려졌어요.</li><li><strong>집중과 예고 신호</strong>: 곧 신호가 올 걸 알고 준비하고 있을 때 더 빨라요. 주변 소음이나 알림이 있으면 느려지죠.</li><li><strong>연습과 익숙함</strong>: 테스트 방식에 익숙해지면 초반 몇 번보다 기록이 좋아지는 경우가 많아요. 다만 끝없이 빨라지지는 않고 어느 수준에서 안정돼요.</li><li><strong>기기와 자세</strong>: 앞에서 본 화면·입력 지연, 그리고 마우스를 잡는 자세나 손가락 위치도 영향을 줘요.</li></ul>
<h2 id="s7">단순 반응과 선택 반응, 테스트별 차이</h2>
<p>같은 "반응속도"라는 이름이 붙어도 과제 구조에 따라 재는 대상이 달라요. 사이트에 있는 게임들을 과제 종류로 나누면 이래요.</p>
<div class="table-wrap"><table><thead><tr><th>과제 종류</th><th>하는 일</th><th>판단 단계</th><th>이 사이트의 예</th></tr></thead><tbody><tr><td>단순 반응</td><td>신호가 보이면 누름</td><td>거의 없음</td><td><a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a></td></tr><tr><td>선택 반응</td><td>신호 종류에 따라 다른 버튼</td><td>있음, 선택지가 늘수록 느려짐</td><td><a href="https://game.smithlab.co.kr/games/whack-a-mole/">두더지 잡기</a>에서 폭탄은 피하고 두더지만 치기</td></tr><tr><td>시각 탐색 + 반응</td><td>여러 개 중 목표를 찾아 누름</td><td>찾는 시간이 대부분</td><td><a href="https://game.smithlab.co.kr/games/aim-trainer/">에임 트레이너</a>, 1 to 50</td></tr><tr><td>지속 주의</td><td>긴 시간 동안 드문 신호에 반응</td><td>적지만 집중 유지가 핵심</td><td>수면 연구의 PVT(10분 과제)</td></tr></tbody></table></div>
<p>선택지가 늘수록 반응이 느려지는 관계는 1952년 Hick의 실험 이후 "힉의 법칙"으로 불려요. 선택지 수가 두 배가 될 때마다 반응 시간이 일정한 만큼씩 늘어나는 로그 관계예요. 그래서 단순 반응 기록이 빠른 사람이 선택 반응 게임에서도 꼭 빠른 건 아니에요.</p>
<!-- kakao-late --><div class="ad-pair"><div class="ad-kakao ad-kakao-mid"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-xZrUvRQuVp26FKbP" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div><div class="ad-kakao ad-kakao-mid ad-pair-side ad-side-late"><span class="ad-label">광고</span><ins class="kakao_ad_area" style="display:none;" data-ad-unit="DAN-IFtZlmr9M8XrXxzT" data-ad-width="300" data-ad-height="250" data-ad-onfail="smithAdFail6"></ins></div></div><script>function smithAdFail6(el){var w=el&&el.closest&&el.closest('.ad-kakao');if(w)w.remove()}(function(){var b=document.querySelector('.ad-side-late');if(b&&!(window.matchMedia&&matchMedia('(min-width:700px)').matches))b.remove()})()</script><!-- /kakao-late -->
<h2 id="s8">반응속도 높이는 법: 현실적인 연습 루틴</h2>
<p>반응속도에서 사람이 줄일 수 있는 건 판단과 운동 부분이에요. 큰 폭으로 바꾸긴 어렵지만, 기록을 안정적으로 만드는 건 충분히 가능해요.</p>
<ol><li><strong>환경 고정</strong>: 같은 기기, 같은 브라우저, 유선 마우스나 터치 한 손가락 등 입력 방식을 정해 두세요. 비교가 의미 있어져요.</li><li><strong>준비 자세</strong>: 손가락을 버튼 위에 살짝 올려 두고, 눌러야 할 위치를 미리 정해 두세요. 손을 옮기는 시간이 사라져요.</li><li><strong>시선 고정</strong>: 화면 가운데 신호가 뜨는 곳을 바라보고, 주변 알림은 꺼 두세요.</li><li><strong>짧게 여러 세트</strong>: 5회 한 세트를 하루 몇 번, 피곤하지 않을 때 해 보세요. 오래 연달아 하면 집중력이 떨어져 기록이 오히려 나빠져요.</li><li><strong>튀는 값 줄이기에 집중</strong>: 최고 기록을 갱신하는 것보다 305ms 같은 튀는 값을 없애는 게 평균을 낮추는 데 훨씬 효과적이에요.</li><li><strong>잘 자기</strong>: 가장 손쉽고 확실한 방법이에요.</li></ol>
<p>반응속도처럼 짧은 순간의 집중이 필요한 게임으로는 <a href="https://game.smithlab.co.kr/games/snake/">스네이크 게임</a>이, 순간 기억력을 시험해 보고 싶다면 <a href="https://game.smithlab.co.kr/games/number-memory/">숫자 기억력 테스트</a>가 있어요. 손가락 속도를 키우고 싶다면 <a href="https://game.smithlab.co.kr/posts/games/korean-typing-speed/">한글 타자 속도 올리는 법</a>도 참고해 보세요.</p>
<h2 id="s9">자주 묻는 질문</h2>
<h3>반응속도 평균은 몇 ms인가요?</h3>
<p>실험실에서 잰 대학생 나이대의 평균은 빛 자극 약 190ms, 소리 자극 약 160ms로 정리돼 있어요. 온라인 테스트는 화면과 입력 장치 지연이 함께 들어가므로 같은 사람도 기기에 따라 수십 ms 다르게 나올 수 있어요.</p>
<h3>소리에 대한 반응이 더 빠른가요?</h3>
<p>네. 의대생 120명을 잰 Jain 외(2015) 연구에서도 남녀 모두 청각 반응이 시각 반응보다 빨랐어요. 대략적인 평균 차이는 30ms 안팎(약 160ms 대 190ms)이지만, 소리 크기와 장치에 따라 달라져요. 다만 웹 브라우저에서는 소리 출력 지연이 기기마다 크게 달라 화면 테스트보다 오차가 커요.</p>
<h3>PC와 스마트폰 기록이 다른 이유는 뭔가요?</h3>
<p>화면 주사율, 터치 감지 방식, 운영체제의 화면 처리 과정이 다르기 때문이에요. 60Hz 화면만 해도 한 프레임이 약 16.7ms라서, 기기 차이만으로 기록이 달라지는 게 자연스러워요. 기록 비교는 같은 기기끼리 하세요.</p>
<h3>반응속도가 느리면 문제가 있는 건가요?</h3>
<p>온라인 반응속도 테스트는 재미와 자기 기록 비교용이라 건강 상태를 판단할 수 없어요. 일상에서 평소와 다르게 반응이 확연히 둔해졌다고 느껴진다면 테스트 숫자보다 의료 전문가와 상담하는 게 맞아요.</p>
<h3>너무 빨리 누르면 왜 반칙인가요?</h3>
<p>신호가 뜨기 전에 누르면 그건 반응이 아니라 예측이기 때문이에요. 사람이 신호를 보고 아주 짧은 시간(흔히 100ms 미만) 안에 반응하기는 어려워서, 연구에서도 이런 값은 예측 반응으로 보고 걸러내는 경우가 많아요.</p>
<h2 id="s10">정리</h2>
<p>반응속도 기록은 사람 몫(지각·판단·운동)과 기기 몫(화면·입력·처리)의 합이에요. 실험실 기준 단순 시각 반응은 평균 190ms 안팎이고 온라인 테스트는 200~250ms대가 흔하지만, 60Hz 화면 한 프레임만 해도 16.7ms라서 다른 기기의 기록과 비교하는 건 큰 의미가 없어요. 같은 환경에서 5회 평균을 재고, 튀는 값을 줄이고, 잘 자는 것이 기록을 안정시키는 가장 현실적인 방법이에요.</p>
<p>지금 바로 <a href="https://game.smithlab.co.kr/games/reaction-time/">반응속도 테스트</a>로 내 5회 평균을 확인해 보세요. 머리를 쓰는 게임이 당긴다면 <a href="https://game.smithlab.co.kr/posts/games/2048-strategy-guide/">2048 공략</a>과 <a href="https://game.smithlab.co.kr/posts/games/minesweeper-patterns/">지뢰찾기 패턴 공략</a>도 있어요.</p>
    ]]></description>
    </item>
  </channel>
</rss>
