실제 컴포넌트 설계 경험에서 균형 잡는 방식 서술
팀 프로젝트에서 폼 입력 컴포넌트를 공통 라이브러리로 만들었는데, 처음 설계에서 너무 많은 것을 담으려다가 쓰는 곳마다 props가 복잡해지는 문제가 생겼습니다. 재사용성을 높이려고 옵션을 많이 뒀더니, 어느 팀원도 쉽게 못 쓰는 컴포넌트가 됐습니다. 그 이후 방향을 바꿔 "현재 사용 사례 3개를 커버하는 최소 인터페이스"를 먼저 정의했습니다. 확장성은 처음부터 구현하는 것보다 나중에 추가하기 쉬운 구조를 만드는 방향으로 접근했습니다. 슬롯 패턴을 활용해 기본 동작은 컴포넌트가 처리하되, 커스텀이 필요하면 외부에서 주입할 수 있게 했습니다. 균형을 맞추는 기준은 "이 인터페이스를 처음 보는 팀원이 15분 안에 쓸 수 있는가"였습니다. 복잡성이 이 기준을 초과하면 쪼개거나 단순화했습니다. 이 과정에서 재사용성과 확장성은 처음부터 모두 잡으려 하면 둘 다 잃는다는 걸 배웠습니다.