컴포넌트 (Component)
: 전체 시스템을 구성하는 하나의 부품 혹은 모듈, UI를 구성하는 UI 요소
과거의 웹페이지에서는 요청이 들어올 때마다 HTML 파일을 불러와 웹 복잡도 증가, 사용자 경험 저하, 재사용의 어려움이 있었다.
AJAX 방식의 등장으로 자바스크립트를 통해 데이터 수정 요청이 들어오면 서버에서 JSON 데이터를 통해 클라이언트에서 부분만 수정할 수 있었다. 부분만 리로드 되는 컴포넌트 단위로 구분할 수 있게 되었다.
컴포넌트를 잘 만들면 유지보수에 용이하다.
하나의 컴포넌트에 두가지 관심사가 존재하는 문제를 Headless 컴포넌트를 통해 해결할 수 있다.
Headless 컴포넌트
1. Compound Component 패턴
2. Function as Children Component 패턴