일반인에게 컴포넌트란 간단하게 자동차의 어느 부분이 고장이 났다고 가정해보자.
엔진이 고장나면 엔진만 새것으로 바꾸던가 고치면 되는데 이것이 일반인이 생각하는 컴포넌트(Component)
이다.
웹 개발자 시선에서의 컴포넌트란 각자 어느 한 부분을 책임지는 html 요소
라고 생각하면 된다.
Web component와 React component는 둘 다 웹 애플리케이션에서 재사용 가능한 UI 요소를 만들기 위해 사용된다.
하지만 이 두 가지 접근 방식에는 중요한 차이점이 있다!
Headless component는 기능은 존재하지만 스타일이 없는 컴포넌트를 의미한다. Headless component 라이브러리로는 https://headlessui.com/, https://www.radix-ui.com/ 가 있다.
외부 UI 라이브러리인 MUI
나 Ant Design
을 사용 할 경우 기획자나 디자이너의 의도대로 기능을 새로 추가하거나 디자인을 변경하고 싶어도 수정하기가 매우 어려운 단점이 존재하는데, 그래서 나온 컴포넌트 개념이다.
예를 들어 캐러셀을 사용해야 하는 상황에서 디자이너한테 다짜고짜 Ant Design의 캐러셀을 사용한다고 말해보면, 욕을 하거나 그 디자이너는 회사를 떠날 것이다.. 디자이너가 분명히 하고 싶어하는 디자인이 있을 것이고, 캐러셀을 직접 구현하기는 어렵다면, Headless component를 사용하여 디자이너 요구사항에 맞게 스타일을 하면 된다.
2016년
도만 해도 Bootstrap + jQuery만 사용하면 프론트엔드 개발자였고...
2017년
도에는 React사용자가 늘어났지만 여전히 많은 사람들은 Redux 조차 다루지 못했었고...
2018년
도에는 여전히 TypeScript에 대한 거부감이 심했고...
2019년
도는 함수형 프로그래밍의 시작인 Hooks의 등장과 CSS in JS의 사용이 증가했고...
2020년
도엔 React & Hooks API & TypeScript +@Axios 생태계가 구축됨과 동시에 뒤늦게 SEO 대응의 심각함을 깨우치면서 러닝커브에 Next.js, Nuxt,js에 대한 고민이 시작되었고...
2021년
은 AngularJS의 몰락과 Next.js, Nuxt,js에 사용 기업이 점점 늘어가고, React Query vs SWR (Server State)에서 React Query가 점점 우위를 점하고...
2022년
엔 Next.js & TansStack Query 거의 필수 스택으로 독주를 하고 있고, Redux 사용자는 Zustand, Recoil 사용자는 Jotai로 상태관리의 새로운 선택지가 등장하고...
2023년
엔 RSC인 리액트 서버 컴포넌트가 등장하고, 기존 TypeScript 보다 빡빡한 타입의 tRPC, Zod 열풍이 시작한다...
요즘 Redux만 보더라도 레거시라고 부르는데 정말로 년도로 따졌을 때, 얼마 안된 친구인걸 보면 이 바닥은 최근들어 정말 많이 빠르게 변하는 것 같다. 물론 이러한 변화의 흐름을 선도하는 것도 좋지만, 앵귤러의 사례를 보면 무작정 좋은 것도 아닌거 같다. 이러한 변화로 스트레스를 받기보다는 그저 묵묵히 자기 할일을 하면서 꾸준히 개인시간에 공부를 소홀히 하지 마는것이 지금 내가 할 수 있는 일 같다..