[react] Context와 Redux의 차이점

eunbi·2020년 8월 6일
0

Study프로젝트

목록 보기
2/13

이번 프로젝트에서 상태 관리 시 redux와 context Api 중 어떤 것을 써야 할지 고민을 하다가 둘의 차이점에 대해서 알아보았다.

Context와 Redux는 무슨 차이점이 있을까?

1. 미들웨어를 사용할 수 있다.

비동기 작업을 더욱 체계적으로 관리 가능하다.

2. 유용한 함수와 Hooks를 지원받는다.

context에 관한 여러 가지 설정과 hooks를 직접 만들지 않아도 된다.
connect, useSelector, useDispatch, useStore 등을 제공하여 상태를 쉽게 조회하거나 dispatch를 쉽게 할 수 있다.

3. 기본적인 최적화가 이미 되어있다.

상태를 받아와서 사용할 때 기본적인 최적화가 이미 되어있어서 필요한 상태가 바뀔 때만 리렌더링이 되는 기능이 탑재되어 있다.

4. 하나의 커다란 상태

context api는 기능별로 context를 만들어 사용하지만 redux는 모든 글로벌 상태를 하나의 커다란 객체에 넣어서 사용하는 것이 필수이다. 때문에 매번 context를 만드는 수고를 덜어 줄 수 있다.

5. DevTools

현재 상태를 한눈에 볼 수 있는 기능, 지금까지 어떤 변화가 있었는지 볼 수 있는 기능, 특정 시점으로 상태를 되돌릴 수 있는 기능등의 DevTool을 제공한다.

6. 이미 사용 중인 프로젝트가 많다.

그렇다면 리덕스는 언제 써야 할까?

아래 내용들을 체크해보자.

  • 프로젝트의 규모가 큰가?
    -> No. 우리 프로젝트는 그렇게 규모가 크지 않다. 하지만 지금까지 내가 만들었던 프로젝트 중에서는 가장 큰 프로젝트이긴 하다.

  • 비동기 작업을 자주 하게 되는가?
    -> Yes. 규모 있는 프로젝트를 다뤄 보지는 않았지만 비동기 처리는 자주 하게 될 것 같다.

  • 리덕스가 편하게 느껴지는가?
    -> Yes. 지난 프로젝트에서 context와 redux를 둘 다 경험해 본 바로는 redux가 더 편하게 느껴졌다.

결국 고민하다 redux를 이미 사용 중인 프로젝트가 많고 더 깊게 알아보고 싶은 마음도 있기 때문에 redux를 사용하기로 했다.

참고
https://react.vlpt.us/redux/

profile
프론트엔드 개발자입니다 :)

0개의 댓글