본문 바로가기
카테고리 없음

[프론트엔드 기술면접] Redux 상태관리의 주요 개념들과 연결 관계(다른 상태관리 도구와 비교)

by 지 요니 2023. 8. 1.

Redux 상태관리의 주요 개념들과 연결 관계를 설명해주세요. 다른 상태관리 도구와 비교 설명 해주세요

Redux는 React를 비롯한 JavaScript 애플리케이션에서 상태(state) 관리를 위한 도구입니다. 

Redux의 주요 개념으로는 Action, Dispatch, Reducer, Store가 있습니다.

먼저, Store는 Redux의 전역 저장소로, 애플리케이션의 state는 모두 store에서 관리됩니다.

Action상태를 변경하기 위한 객체입니다. 해당 액션의 종류를 나타내는 type 속성과 액션에 필요한 데이터를 포함하는 payload 속성을 가지고 있습니다.
Dispatch는 Action을 스토어에 전달하는 함수입니다.

Reducer로 Action을 전달해주는 함수입니다. Dispatch의 전달인자로 Action 객체가 전달되며. Action 객체를 전달받은 Dispatch 함수는 Reducer를 호출합니다.
Reducer는 Dispatch에게서 전달받은 Action 객체의 type 값에 따라서 상태를 변경시키는 함수로, Reducer가 리턴하는 값이 새로운 상태가 됩니다. 이 때, Reducer는 순수함수여야 합니다. 외부 요인으로 인해 기대한 값이 아닌 엉뚱한 값으로 상태가 변경되는 일이 없어야하기 때문입니다.

 

다른 상태관리 도구와 비교하면, MobX나 Vuex 등의 상태관리 도구도 비슷한 개념을 가지고 있습니다. 그러나 Redux는 단방향 데이터 흐름을 따르는 것이 특징입니다. Action → Dispatch → Reducer → Store 순서로 데이터가 단방향으로 흐르게 됩니다. 이를 통해, 상태를 예측 가능하고 일관성있게 관리할 수 있습니다. 또한, 리덕스는 미들웨어를 통해 확장가능합니다. 즉, 애플리케이션의 로깅, 비동기 작업 처리 등 추가적인 기능을 쉽게 구현할 수 있습니다.

 

🎀상태관리 라이브러리의 필요성

상태관리 라이브러리는 전역 상태 저장소를 제공해줍니다. 기존의 React에서는 자식 컴포넌트에 props를 내려줘서 상태를 전달해줬습니다. 이 경우에는 해당 상태를 사용하지 않는 컴포넌트들도 오로지 상태를 전달해주기 위해서props를 받아야했고, props drilling이 일어나기도 했습니다. 전역 상태 저장소는 props를 내려줄 필요없이 전역 상태 저장소를 제공해줌으로써 이 props drilling 문제를 해결해줍니다.

댓글