Dev
56 posts
All
Dev
Experience
React만들어보기
당근마켓시리즈
인턴회고
회고
headless 디자인 시스템을 위한, Polymorphic Component
어떤 프로덕트를 만들든, 어떤 디자인 시스템을 만들든, 공통 컴포넌트를 개발하는 일은 정말 흔하다. 공통 컴포넌트를 만들 때 제일 고민이 되는 부분은, 단연코 다형성과 추상화라고 할 수 있을 것 같다. 컴포넌트 또한 객체지향의 관점에서 보자면 하나의 독립적인 객체이며, 컴포넌트 합성은 객체들 간의 협업이라고 볼 수 있으니 말이다. 객체지향 이야기는 여기에서 그만! 공통 버튼 컴포넌트를 만드는 상황을 떠올려보자. 위 컴포넌트는 (좀 더 고도화는 되어야겠지만) 꽤나 확장성있게 사용될 수 있을 것 같다. 그러나 만일 버튼에 링크를 추가하고 싶다면 어떻게 해야 할까? App에서 버튼을 사용할 때 태그로 감싸야할까? 태그로 감싸진 별도의 LinkButton을 구현할까? isLink 같은 옵션을 받아 분기 처리를 할까? 하지만 그럴 경우, 태그가 확장되지 않는다는 문제점과 컴포넌트의 의존 관계가 새롭게 추가된다는 문제점이 있다. 컴포넌트의 내부 로직도 쓸데없이 복잡…
2025.02.17