[기술면접] Redux

한재창·2023년 4월 6일
0
post-thumbnail

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

Redux의 주요 개념으로는 Store, Action, Dispatch, Reducer가 있으며,
Store는 Redux의 전역 저장소로 상태가 관리되는 오직 하나의 공간입니다.
Action은 말 그대로 어떤 액션을 취할 것인지 정의해 놓은 객체입니다.
Dispatch는 Reducer로 Action을 전달해주는 함수,
Reducer는 Dispatch에게서 전달받은 Action 객체의 type 값에 따라서 상태를 변경시키는 함수입니다.
Action(액션) 객체가 dispatch() 메소드에 전달되면,
dispatch(액션)를 통해 Reducer를 호출하고,
Reducer는 새로운 Store 를 생성합니다.

  • Redux는 JavaScript 애플리케이션에서 상태 관리를 위한 도구로서, 다음과 같은 주요 개념을 갖습니다.
  1. Store: Redux에서 상태를 저장하는 객체입니다. 모든 상태는 단일 객체(tree) 안에 저장됩니다.
  2. Action: 상태 변경을 발생시키는 객체입니다. 상태 변경을 나타내는 type 프로퍼티를 필수적으로 가지며, payload 프로퍼티를 통해 추가 데이터를 전달할 수 있습니다.
  3. Reducer: 이전 상태와 액션을 받아서 새로운 상태를 반환하는 순수 함수입니다.
  4. Dispatch: 액션을 발생시키는 메소드로서, 스토어에서 디스패치를 통해 액션을 전달하면 미들웨어와 리듀서가 처리하여 새로운 상태를 만듭니다.

이러한 Redux의 개념들은 서로 긴밀하게 연결되어 있습니다. 디스패치된 액션은 미들웨어를 거쳐 리듀서에 전달되어 새로운 상태가 생성됩니다. 생성된 상태는 스토어에 저장되어 전체 애플리케이션에서 사용됩니다.

  • 다른 상태관리 도구와 비교 설명

다른 상태 관리 도구인 MobX나 Vuex와 비교하면, Redux는 상태가 변경될 때마다 모든 컴포넌트를 다시 렌더링하는 방식을 취합니다.

반면 MobX나 Vuex는 데이터의 변경이 있을 때 해당 데이터를 사용하는 컴포넌트만 다시 렌더링합니다. 또한 Redux는 코드량이 많아져서 초기 개발 시간이 길어질 수 있지만, 유지보수나 큰 규모의 애플리케이션에서 유리한 장점을 갖습니다.

반면 MobX나 Vuex는 초기 구성이 쉽지만, 큰 규모의 애플리케이션에서는 불편함이 있을 수 있습니다.

profile
취준 개발자

0개의 댓글