장점
- React에 최적화된 상태관리 라이브러리
- 난이도가 쉬움
- TypeScript를 기본적으로 지원 (의존 모듈 설치x)
- Re-Render 최소화에 도움을 줌
Context API
: 전역 데이터의 상태를 관리하려면 공통 조상 컴포넌트로 상태를 끌어올려야 하는데,
이 과정에서 너무 큰 트리가 리렌더링 될 수 있다.
(구독하고 있는 컴포넌트들이 불필요한 값 변경시에도 렌더링 되는 이슈)

Recoil
: React state와는 “수직적인 방향”으로 상태를 관리한다.

React 상태 트리가 바닥면이라면, Recoil의 상태는 위에서 아래로 내려오는 형태이다.
따라서 React의 상태의 영향을 받지 않고 필요한 부분에만 상태를 전달한다는 것을 의미한다.
그렇기에 구독중인 컴포넌트만 업데이트를 하는 것이 쉬워진다.
Recoil이 관리하는 상태는 atom이라고 하는데,
다음과 같이 간단하게 정의하고 사용할 수 있다.
// 정의 export const nameState = atom({ key: 'nameState', default: 'Jane Doe' });
// 사용 const [name, setName] = useRecoilState(nameState);