"매 default는 매 simple, 매 advanced는 매 on-demand". Progressive Disclosure는 매 사용자에게 매 즉시 필요한 매 핵심 정보/control만 매 노출하고 매 advanced option은 매 명시적 trigger로 매 펼치는 매 UX/API 설계 원칙. Nielsen (1995) 정의 이후 매 모든 modern UI/CLI/API의 매 cornerstone.
매 핵심
매 두 layer
매 Primary: 매 80% 사용 사례 매 cover.
매 Secondary: 매 power user / edge case 매 expand 시 노출.
매 Tertiary (옵션): 매 expert flag (--debug, verbose=True).
매 Cognitive 근거
Hick's law: 매 choice ↑ → decision time ↑.
Miller 7±2: 매 simultaneous option 매 7개 이하.
Recognition > Recall: 매 expand 가능한 hint가 매 hidden API보다 낫다.
매 응용
Settings UI ("More options" toggle).
CLI subcommand depth (git stash vs git stash push --keep-index).
API: required + optional kwargs.
LLM: default vs advanced sampling params.
💻 패턴
Python kwargs disclosure
defgenerate(prompt:str,*,# 매 Primary layermax_tokens:int=1024,# 매 Secondary layer (advanced)temperature:float=1.0,top_p:float=1.0,# 매 Tertiary (expert)logit_bias:dict[int,float]|None=None,seed:int|None=None,)->str:...generate("hi")# 매 simple pathgenerate("hi",temperature=0.2)# 매 secondarygenerate("hi",logit_bias={50256:-100})# 매 expert
CLI subcommand depth
$ git stash # 매 80%-case
$ git stash push -m "wip"# 매 secondary
$ git stash push --keep-index --include-untracked --pathspec-from-file=- -- '*.py'# 매 expert
## Quickstart
client.chat("hello")
## Common options
client.chat("hello", model="claude-opus-4-7", max_tokens=2048)
## Advanced
<details><summary>Tool use, caching, streaming</summary>
... 매 deep dive ...
</details>
Config schema with smart defaults
@dataclassclassTrainerConfig:model:strdata_path:str# 매 sensible defaults — 매 expert 만 매 overridelr:float=3e-4batch_size:int=32grad_accum:int=1optimizer:str="adamw"scheduler:str="cosine"mixed_precision:str="bf16"
매 결정 기준
상황
Approach
Consumer app
2-layer (primary / advanced toggle)
Developer tool
3-layer (primary / flags / debug)
API library
required + kwarg defaults
Documentation
Quickstart → Guide → Reference
기본값: 2-layer + 매 sensible defaults + 매 escape hatch.