개발하는 루루언니

리덕스 툴킷 (Redux-Toolkit ) 이란? 본문

컴퓨터 정보

리덕스 툴킷 (Redux-Toolkit ) 이란?

혜닝혜루 2023. 3. 14. 18:23
728x90
반응형

✨서비스 규모가 커질수록 관리해야할 state가 많아지고 이를  체계적으로 관리하기 위해 

" 상태 관리 라이브러리 " 를 사용 해야 합니다.

 

 

📙 상태관리 라이브러리 란? 

말그대로 state를 관리를 목적으로 하는 라이브러리 입니다.

상태 관리 라이브러리의 대표적인 예시는 리덕스 라는 라이브러리가 있습니다.

 

리덕스는 모든 state를 store라는 중앙 상태 저장소를 사용하여 앱의 모든 상태를 저장 합니다.

이 store는 Reducer 함수를 통해 수정될 수 있습니다.

또한 Reducer함수는 이전 상태와 액션 객체를 dispatch로 입력으로 받아 새로운 상태를 반환 합니다.

 

 

✔ props driling 방지 

컴포넌트가 특정값을 사용하기 위해 여러 상위 컴포넌트에서 props를 정의하고 전달받는 과정을 말합니다.

여러 컴포넌트에서 사용하지도 않는 props를 정의해야 하고 필요없는 코드를 증가시킬 수 있습니다.

때문에 필요없는 코드는 줄이고 해당 데이터를 사용하는 컴포넌트만 끌어와서  쓸 수 있도록 할 수 있는

역할이 상태 관리 라이브러리 입니다.

 

상태 관리 라이브러리 에서는 store라는 state 저장소에서 사용하고 싶은 state만 끌어와 사용할 수 있기 때문에 

props drilling을 피할 수 있습니다.

 


리덕스  toolkit 이란?

redux를 아무 라이브러리 없이 사용할  때 1개의 액션을 생성 합니다.

( action type 정의 , 액션 함수 정의 , 리듀서 정의 )

이렇게 필요하지만 너무  많은 코드가 생성이 되어 redux-actions 라는 것이 사용이 되었고,

불변성을 지켜야 하는 원칙 때문에 immer를 사용하게 되었고,

store값을 효율적으로 핸들링하여 불필요 리렌더링을 막기위해 reslect를 쓰게 되었고

비동기를 수월하게 하기 위해 thunk나 saga를 설치하여 redux를 효율적으로 사용하게 됩니다.

총 4~5개의 라이브러리를 설치해야  위처럼 사용할 수 있습니다.

 

그런데 redux-toolkit은 redux가 공식적으로 만든 라이브러리로 saga를 제외한 위 기능 모두 지원 합니다.

 

728x90