"매 humans + computers — interface as cognitive contract." Sutherland Sketchpad (1963) → Engelbart "Mother of All Demos" (1968) → Xerox PARC GUI → modern multimodal (touch, voice, gesture, AR/VR, BCI). 매 2026 inflection — 매 LLM as interface (chat, agent, voice), 매 ambient computing, 매 brain-computer interfaces (Neuralink, Synchron).
매 핵심
매 Foundational principles
Affordance (Gibson/Norman): 매 perceived action possibilities.
Feedback: 매 action → immediate response (≤100ms feels instant).
Discoverability: 매 features 의 findable.
Consistency: 매 platform conventions 의 respect.
Error tolerance: 매 undo, 매 confirmation, 매 graceful degradation.
매 Cognitive load (Sweller)
Intrinsic — 매 task 의 inherent complexity.
Extraneous — 매 poor design 의 added burden.
Germane — 매 schema construction.
매 Modalities (2026)
Touch / pointer — 매 still dominant.
Voice — 매 LLM 의 robust (Whisper, Voxtral).
Multimodal LLM — 매 image + text + voice (Claude Opus 4.7, GPT-5).
AR/VR — 매 Vision Pro 2, Meta Quest 4.
BCI — 매 emerging (Neuralink N1, Synchron Stentrode).
매 응용
Adaptive UI — 매 LLM-driven personalization.
Accessibility — 매 WCAG 3.0, 매 screen reader, 매 alt-text auto-generation.
Voice-first products — 매 in-car, 매 smart home, 매 wearable.
💻 패턴
Fitts's Law calculator
// time = a + b * log2(distance / width + 1)
functionfittsTime(distancePx: number,targetWidthPx: number,a=50,b=150):number{returna+b*Math.log2(distancePx/targetWidthPx+1);}// 매 button placement decision: minimize time
Optimistic UI
// React — 매 perceived latency reduction
functionuseOptimisticToggle(initial: boolean,save:(v: boolean)=>Promise<void>){const[value,setValue]=useState(initial);consttoggle=async()=>{constnext=!value;setValue(next);// 매 instant feedback
try{awaitsave(next);}catch{setValue(!next);/* revert */}};return[value,toggle]asconst;}
Debounced search (cognitive flow)
import{useEffect,useState}from'react';functionuseDebouncedValue<T>(value: T,delayMs: number):T{const[debounced,setDebounced]=useState(value);useEffect(()=>{constt=setTimeout(()=>setDebounced(value),delayMs);return()=>clearTimeout(t);},[value,delayMs]);returndebounced;}// 매 300ms — 매 typing pause 의 natural query trigger
Accessible button
// WCAG 2.2 AA
<buttononClick={handleClick}aria-label="Delete item"aria-describedby="delete-help"disabled={isLoading}className="min-h-[44px] min-w-[44px]"// 매 touch target
>{isLoading?<Spinneraria-hidden/>:<TrashIconaria-hidden/>}<spanid="delete-help"className="sr-only">매permanentlydeletethisitem</span></button>