화면의 뼈대(와이어프레임)와 요소별 6층 명세(디스크립션)
읽는 법 - 요소마다 기능 한 줄을 먼저 읽습니다. 기술 용어 없이 이 요소가 무엇인지 말하는 칸입니다. 그 아래 다섯 줄(UI · Logic · Data · API · Deploy)은 만드는 사람이 읽습니다. 합쳐서 6층입니다.
<select> 드롭다운. 옵션 5개(강남/홍대/이태원/종로/신촌). 전체 너비. 5개 이상이라 라디오가 아닌 드롭다운.required) - 안 고르면 제출이 막힌다.formData.region · string · mutable · 기본값 ""<select> 드롭다운. 옵션 5개(한식/일식/중식/양식/분식).required).formData.food · string · mutable · 기본값 ""<select> 드롭다운. 옵션 3개(저가/중가/고가). 3개지만 다른 select와 모양을 맞췄다.required).formData.pricerange · string · mutable · 기본값 ""<input type="number">. 스피너 포함. 전체 너비.min=1 max=20 - 벗어나면 브라우저가 막는다. 필수 입력.formData.people · number · mutable · 기본값 없음<input type="time">. 브라우저 기본 시간 선택기.HH:MM. 필수 입력.formData.time · string · mutable · 기본값 ""<input type="checkbox">. 라벨 "야외석".formData.outdoor · boolean · mutable · 기본값 false<input type="checkbox">. 라벨 "주차".formData.parking · boolean · mutable · 기본값 false<input type="checkbox">. 라벨 "인터넷".formData.internet · boolean · mutable · 기본값 false<button type="submit">. 전체 너비, 강조색.preventDefault()로 새로고침 차단 → FormData로 전체 필드 수집 → 객체로 변환 → 화면 표시 + console.log.formData 전체를 JSON 객체로