밀러의 법칙

Miller's Law

단기 기억은 한 번에 약 7±2개(관점에 따라 4개)만 담을 수 있다는 법칙. 정보는 묶어서(청킹) 줄입니다.

다른 이름: Magic number seven7±2
···
html
<div class="stack">
  <div class="row"><span class="tag">A</span><div class="digits" id="d1">8195556423</div></div>
  <div class="row"><span class="tag">B</span><div class="digits chunked"><b>819</b><i>-</i><b>555</b><i>-</i><b>6423</b></div></div>
</div>
css
.stack{width:90%;display:grid;gap:26px}
.row{position:relative;display:flex;align-items:center;gap:14px}
.tag{font:700 11px/1 monospace;color:var(--muted);width:14px}
.digits{position:relative;font:700 clamp(16px,4.4vmin,26px)/1 monospace;letter-spacing:.12em;color:var(--muted);display:flex}
.digits span.hl{color:var(--fg)}
.chunked b{color:var(--fg);padding:2px 4px;border-radius:4px;animation:pulse 2.4s ease-in-out infinite}
.chunked b:nth-child(1){animation-delay:0s}
.chunked b:nth-child(3){animation-delay:.5s}
.chunked b:nth-child(5){animation-delay:1s}
.chunked i{color:var(--line);font-style:normal;padding:0 2px}
@keyframes pulse{0%,60%,100%{background:transparent}20%,40%{background:var(--accent);color:var(--surface);border-radius:4px}}
js
const d1 = document.getElementById('d1');
d1.innerHTML = d1.textContent.split('').map(c => '<span>' + c + '</span>').join('');
const spans = [...d1.children];
let i = 0;
setInterval(() => { spans.forEach(s => s.classList.remove('hl')); spans[i % spans.length].classList.add('hl'); i++; }, 240);

심리학자 조지 밀러(George A. Miller)가 1956년 논문 "The Magical Number Seven, Plus or Minus Two"에서 제시했습니다. 핵심은 "7개"라는 숫자 자체가 아니라 **청킹(chunking)** — 항목을 의미 단위로 묶으면 기억·처리 부담이 줄어든다는 점입니다.

전화번호를 "8195556423"이 아니라 "819-555-6423"으로 쓰는 이유, 신용카드 번호를 4자리씩 끊는 이유가 이것입니다. UI에서는 폼을 섹션으로 나누고, 긴 목록을 카테고리로 묶는 식으로 응용합니다.

데모에서 A는 끊김 없는 숫자열을 하나씩 훑어야 하고, B는 3개 덩어리로 한 번에 인식됩니다.

언제 쓰나

긴 숫자·폼·목록을 설계할 때. "7개 규칙"을 문자 그대로 지키기보다 의미 단위로 묶는 데 집중하세요.