티스토리 뷰

반응형

요즘 실무에서 Recoil 입문자 코스를 밟고있다. 아무것도 모르던 때에는 Recoil이 다른 State Management Library들과 기본 구조가 같고 제공하는 기능 자체는 동일하다고 생각했었는데, 제대로 알아보기 위해 정리해본다.

ContextAPI와 Recoil의 차이
ContextAPI와 Recoil의 차이

 

Context API 특징

  1. 전역 상태 관리: 컴포넌트 트리 전체에서 데이터를 전달하는 데 사용된다. 중첩된 컴포넌트 간에 데이터를 쉽게 공유할 수 있습니다.
  2. Provider-Consumer 모델: Provider와 Consumer 컴포넌트를 제공하여 데이터를 제공하고 소비하는 패턴을 쉽게 구현할 수 있다.

Context API의 장/단점

  1. 간편한 데이터 공유: 중첩된 컴포넌트 간에 데이터를 전달할 때 prop을 계속해서 넘겨주지 않아도 된다.(주요 기능)
  2. 렌더링 성능 저하: 컨텍스트의 값이 변경될 때 해당 컨텍스트를 사용하는 모든 하위 컴포넌트가 리렌더링될 수 있다.
  3. Context의 복잡성: 어플리케이션 규모가 커질수록 컨텍스트의 관리가 복잡해질 수 있다.

Context API와 Recoil의 차이

  1. 상태의 관리 방식: Context API는 주로 컴포넌트 트리에서 데이터를 상향식으로 전달하는 데에 중점이고 반면 Recoil은 전역 상태를 원자성(atom) 단위로 선언하고 관리하는 방식으로, 컴포넌트 간에 데이터를 자유롭게 공유할 수 있다.
  2. 리렌더링 최적화: Recoil은 상태의 의존성을 추적하고, 의존하는 부분만 리렌더링하는 등의 최적화를 수행한다.
  3. 비동기 상태 관리:Recoil은 비동기적인 상태를 다루기에 효과적이며, selector를 사용하여 파생된 상태를 간단하게 정의할 수 있다.
  4. DevTools 지원:Recoil은 개발 도구를 통해 전역 상태를 시각화하고 디버깅할 수 있는 DevTools를 제공한다.
  5. 관리의 용이성: Recoil은 중앙 집중화된 관리와 상태의 원자성을 통해 복잡한 상태를 관리할 때 효과적이다.

넓은 범위에서 Recoil이 제공하는 기능이 좀 더 유용하지만 Context API는 간단히 Child에서 Parent로 State를 전달하는 기능에 중점을 두고 있어 작은 서비스에서 사용할 때 더 간단하고 가볍게 구현할 수 있을 것 같다.

반응형
Total
Today
Yesterday
반응형