[TypeScript] 제네릭으로 추상화를 시도했다가 깨달은 것
·
Frontend/JS·TS
최근 옵션 패널 UI를 구현하면서,컴포넌트를 좀 더 범용적으로 만들고 싶다는 욕심이 생겼다.그래서 TypeScript의 제네릭(Generic)을 이용한 추상화를 시도했다.결론부터 말하자면, 결과는 “굳이 그럴 필요는 없었다”였다.1. 시작은 단순한 옵션 패널이었다처음 작성했던 코드는 아래와 같다.입력창, 슬라이더, 색상 선택 UI를 나란히 배치하는 단순한 구조였다. 각 컴포넌트는 label + 입력 영역으로 구성되어 있었고,비슷한 형태의 레이아웃이 반복되고 있었다.또한 앞으로 다른 옵션(예: 테두리, 정렬 등) 을 추가할 계획도 있었기 때문에,이 구조를 그대로 늘려가면 관리가 점점 어려워질 것 같았다.그래서 “이 패턴을 하나의 컴포넌트로 추상화할 수 있지 않을까?”라는 생각을 하게 되었다.2..