점진적 공개

Progressive Disclosure

처음엔 꼭 필요한 것만 보여주고, 요청이 있을 때만 고급 옵션을 펼치는 설계 전략.

다른 이름: Progressive disclosure pattern
···
html
<div class="card">
  <label>Name<input readonly></label>
  <label>Email<input readonly></label>
  <button class="more" id="more">Advanced ▾</button>
  <div class="extra" id="extra">
    <label>Phone<input readonly></label>
    <label>Company<input readonly></label>
  </div>
</div>
css
.card{width:78%;max-width:320px;padding:18px;border-radius:14px;border:1px solid var(--line);background:var(--surface);display:grid;gap:10px}
label{font:600 11px/1.4 sans-serif;color:var(--muted);display:grid;gap:4px}
input{height:22px;border-radius:6px;border:1px solid var(--line);background:var(--bg)}
.more{justify-self:start;border:0;background:none;color:var(--accent);font-weight:700;font-size:12px;cursor:default;padding:0}
.extra{display:grid;gap:10px;max-height:0;overflow:hidden;opacity:0;transition:max-height .5s ease,opacity .4s ease}
.extra.open{max-height:120px;opacity:1}
js
const extra = document.getElementById('extra');
const more = document.getElementById('more');
setInterval(() => {
  const open = extra.classList.toggle('open');
  more.textContent = open ? 'Advanced ▴' : 'Advanced ▾';
}, 2200);

1980년대 인지과학·HCI 연구에서 나온 개념으로, 제이콥 닐슨이 정리해 널리 알렸습니다. 모든 옵션을 한 화면에 늘어놓으면 힉의 법칙(→ hicks-law)에 걸려 선택이 느려지고 화면도 복잡해집니다.

해법은 **1차 화면엔 초보자·다수가 쓰는 기능만, "고급 설정"·"더 보기" 뒤에 나머지를 숨기는 것**입니다. 카메라 앱의 기본 모드 vs Pro 모드, 폼의 "선택 정보 더 보기"가 예시입니다.

데모는 기본 필드(이름·이메일)만 보이다가, "더 보기"를 누른 것처럼 고급 필드(전화·회사)가 펼쳐지는 걸 반복합니다.

언제 쓰나

옵션이 5개를 넘는 폼·설정 화면에서. 감춘 옵션이 전문가에게도 자주 필요하다면 오히려 역효과이니 사용 빈도를 먼저 재보세요.