Interface 설계

interface: 서로 다른 무언가를 연결하는 구멍

익숙한 인터페이스로 설계하기

// useState와 비슷한 인터페이스로 이해하기 쉬움
const [view, setView] = useView();

인터페이스 먼저 설계하기

// 이와 같은 인터페이스는 단번에 동작을 파악하기 어려움
// floors를 왜 넘기고 있지?에 대한 의문을 갖게 함
<FilterPanel
 values={values}
 floors={floors}
 validationError={validationError}
 onChange={handleFilterChange}
/>

// 따라서 직관적이고, 이해하기 쉬운 인터페이스가 필요하다
<FilterPanel
 value={value}
 onChange={onChange}
/>
<section>
	<label>
		<span>이메일</span>
		<Input/>
	</label>
	<label>
		<span>비밀번호</span>
		<Input/>
	</label>
</section>

인터페이스의 네이밍

	// setDate의 중복
	<Date setDate={setDate} />
	// 이상적인 Props
	<Date onChange={setDate} />
<FilterPanel
 value={value}
 onChange={handleChange}
/>

Props 너무 많아지고 있을 때

<FilterPanel
 values={values}
 floors={floors}
 validationError={validationError}
 setMessage={setMessage}
 equipment={equipment}
 onClick={handleFilterClick}
 onChange={handleFilterChange}
/>

props가 너무 많다는 것은 좋지 않은 신호

출처
토스 Frontend Fundamental 모의고사 2차