230818 개발일지 TIL - Redux란 무엇인가? 그리고 왜 사용하는가?

The Web On Everything·2023년 8월 18일
0

개발일지

목록 보기
99/269

Redux란 무엇인가?

Redux는 JavaScript 애플리케이션의 상태를 효과적으로 관리하기 위한 오픈 소스 JavaScript 라이브러리이다. 주로 React와 같은 사용자 인터페이스 라이브러리나 프레임워크와 함께 사용되며, 애플리케이션의 상태를 예측 가능하게 만들어 준다.

Redux의 세 가지 기본 원칙

  1. 단일 출처 (Single Source of Truth): Redux에서는 애플리케이션의 모든 상태를 하나의 저장소 (store)에 저장합니다. 이 원칙은 상태를 디버깅하거나 검사하기 쉽게 만들며, 서버에서 사전 로드된 상태를 구축하거나 시리얼라이즈하는데도 유용하다.
  2. 상태는 읽기 전용 (State is Read-Only): Redux에서는 직접적으로 상태를 변경할 수 없다. 대신 액션을 발행하여 어떤 변화가 필요한지 설명해야 한다. 이 원칙은 코드가 어떻게 동작하는지 추적하기 쉽게 만들고, 경합 조건(race condition)을 방지해 준다.
  3. 변화는 순수 함수로 작성된다 (Changes are Made with Pure Functions): 액션에 의해 어떻게 상태 트리가 변환되는지 지정하기 위해서 reducer라고 하는 순수 함수를 작성한다.

그런데 왜 우린 Redux를 사용할까?

첫 번째로, 복잡한 사용자 인터페이스와 API 호출과 같은 비동기 동작을 잘 처리할 수 있다. Redux의 패턴과 미들웨어 기능으로 인해 개발자들은 복잡한 시나리오에서도 예상 가능하고 안정적인 코드를 작성할 수 있다.
두 번째로, Redux는 우수한 개발 도구를 제공한다. 시간 여행형 디버깅(time-travel debugging), 현재의 스토어 상태 및 이전 스토어 상태를 보여주며, 발생한 모든 액션에 대해서도 확인할 수 있는 기능 등을 제공한다.

하지만 Redux는 항상 필요한 것은 아니다. 프로젝트의 복잡성과 요구 사항에 따라 적절한 상태 관리 도구를 선택하는 것이 중요하다. 간단한 프로젝트에서는 Redux 없이도 충분히 관리할 수 있으며, 때때로 Redux의 사용은 오버 엔지니어링으로 이어질 수 있다.

결론
Redux는 복잡한 JavaScript 애플리케이션에서 상태 관리를 쉽고 예측 가능하게 만들어주는 강력한 도구이다. 그러나 모든 도구와 마찬가지로 사용 사례와 프로젝트 요구 사항에 따라 적절하게 사용해야 한다.

profile
오늘은 무슨 오류를 만날까?! 널 만나러 가는 길~ LOL

0개의 댓글