해당 질문에 면접에서 답변할 수 있을 정도의 길이(3~4줄)로 답변을 달아보세요. 특히 면접 답변의 핵심은 두괄식(핵심을 먼저 말하는 것)입니다. 완성 후, 면접 하루 전날 족보처럼 훑어보고 면접을 보러갑시다!
📌Redux가 무엇인가요, 왜 Redux를 사용하시나요?
답변▶️ 리덕스(Redux)란 리액트에서 가장 사용률이 높은 상태관리 라이브러리입니다. 리액트 컴포넌트들의 상태 로직들이나 글로벌 상태 관리를 손쉽게 해줄 수 있으며. 리덕스는 Action, Reducer, Store, View로 구성된 하나의 패턴입니다.
Redux 기본 개념
💡 액션 (Action)
상태를 업데이트하는데 필요한 정보를 담은 객체로 action 객체는 반드시 고유한 type 프로퍼티를 가져야하며, 이 값은 action 의 이름입니다.
💡 액션 생성 함수 (Action Creator)
액션 객체를 반환하는 함수이며 액션 객체는 함수로 관리하고, 화살표 함수로도 표현 가능합니다.
💡 리듀서 (Reducer)
현재 상태와 액션 객체를 인자로 받아 새로운 상태를 반환 (state 업데이트)하는 함수이며
현재 상태를 받는 첫번째 인자에 초기 상태를 기본 인자로 설정합니다.
💡 스토어 (Store)
상태가 들어있으며, 하나의 프로젝트는 하나의 스토어만 가질수 있고 컴포넌트에서 상태 정보가 필요할 때 접근합니다.
💡 디스패치 (Dispatch)
스토어의 내장함수로 상태를 업데이트하기 위해서는 꼭 디스패치 함수를 사용해야 하며 액션 객체를 인자로 받아 리듀서 함수로 전달합니다.
💡 구독 (Subscribe)
스토어의 내장함수이고 리스너 함수를 파라미터로 넣어 호출하면 액션이 디스패치 되어 상태가 업데이트 될 때 마다 리스너 함수가 호출되며 이벤트 리스너의 일종입니다.
Redux를 사용하는 이유
평소 상태관리는 redux를 사용합니다. 그 이유는 컴포넌트 코드와 상태 관리 코드의 분리가 가능하며, 효율적인 렌더링이 가능하며 데이터를 저장하고 불러오는 코드를 쉽게 작성 할 수 있습니다. 또한 상태를 더욱 쉽게 예측 가능하게 하여 유지보수 측면에 긍정적인 효과가 있습니다.