기술면접(Redux가 무엇이고 사용하는 이유)

Redux란?

  • 리덕스(Redux)는 JavaScript 애플리케이션의 전역 상태 관리를 위한 라이브러리입니다. 리액트(React)와 함께 많이 사용되며, 복잡한 상태를 효율적으로 관리하고 예측 가능한 데이터 흐름을 구현하는 데 도움을 줍니다. 주요 개념과 동작 방식은 다음과 같습니다.

Redux 주요개념

  1. Store : 애플리케이션의 전역 상태가 저장되는 곳으로, 앱 내부 어디에서나 접근 가능한 중앙 데이터 저장소입니다.

  2. Action : 상태 변화를 나타내는 객체입니다. 어떤 변화가 필요한지를 나타내며, 타입(type)과 데이터(payload)로 구성됩니다.

  3. 리듀서(Reducer) : 액션의 타입을 기반으로 상태를 어떻게 변화시킬지 정의하는 함수입니다. 이전 상태와 액션을 받아 새로운 상태를 반환합니다.

  4. 디스패치(Dispatch) : 액션을 발생시켜 상태 변화를 일으키는 메소드입니다. 디스패치된 액션은 리듀서에 의해 처리되어 상태가 업데이트됩니다.

  5. 구독(Subscribe) : 스토어의 상태가 변경될 때마다 호출되는 함수를 등록하는 메소드입니다. 상태 변경을 감지하고 반응하는 데 사용됩니다.

Redux를 사용하는 이유

  • 리덕스를 사용하면 컴포넌트의 상태 업데이트 관련 로직을 다른 파일로 분리시켜서 더욱 효율적으로 관리할 수 있습니다. 모든 상태 업데이트를 액션으로 정의하고, 액션 정보에 기반하여 리듀서에서 상태를 업데이트하는 이 간단명료한 발상 덕분에, 상태를 더욱 쉽게 예측 가능하게 하여 유지보수 측면에 긍정적인 효과가 있다.