리덕스

리덕스(Redux)는 애플리케이션 상태를 관리하고 중앙 집중화하기 위한 오픈 소스 자바스크립트 라이브러리이다. 사용자 인터페이스를 구축하기 위해 리액트나 앵귤러와 같은 라이브러리와 함께 가장 흔히 사용된다. 페이스북의 플럭스(Flux) 아키텍처와 유사하며(그로부터 영감을 받음), Elm 아키텍처 또한 영감을 준 것으로 언급된다. 댄 아브라모프와 앤드루 클라크에 의해 만들어졌으며, 2016년 중반부터는 마크 에릭슨과 팀 도어가 주요 유지보수자를 맡고 있다.

 설명 
리덕스는 애플리케이션 상태를 위한 예측 가능한 컨테이너로 설계된, 단순하고 제한된 API를 가진 작은 라이브러리이다. 함수형 프로그래밍 개념인 리듀싱 함수(reducing function)와 유사한 방식으로 작동한다.

 역사 
리덕스는 2015년 댄 아브라모프와 앤드루 클라크에 의해 만들어졌다. 아브라모프는 핫 리로딩(hot reloading)에 관한 React Europe 컨퍼런스 발표를 준비하던 중 리덕스의 첫 구현체를 작성하기 시작했다. 아브라모프는 "로직을 변경할 수 있는 플럭스의 개념 증명(proof of concept)을 만들려 노력 중이었다. 그리고 그것은 시간 여행을 가능하게 하고, 코드 변경 시 미래의 액션들을 다시 적용할 수 있게 해주었다."라고 언급했다.

아브라모프는 플럭스 패턴과 리듀싱 함수의 유사성에 주목했다. "나는 플럭스를 시간에 따른 리듀스 연산으로 생각하고 있었다... 스토어들은 이러한 액션들에 반응하여 상태를 축적한다. 나는 여기서 더 나아가기로 했다. 만약 당신의 플럭스 스토어가 스토어가 아니라 리듀서 함수라면 어떨까?"

아브라모프는 플럭스 구현체인 Flummox의 저자 앤드루 클라크에게 협업을 요청했다. 그는 클라크가 리덕스 도구 생태계를 가능하게 하고, 일관된 API를 고안하는 데 도움을 주었으며, 미들웨어 및 스토어 인핸서(store enhancer)와 같은 확장 지점을 구현한 공로를 인정했다.

2016년 중반까지 아브라모프는 리액트 팀에 합류했으며, 주요 유지보수 권한을 마크 에릭슨과 팀 도어에게 넘겼다.Idiomatic Redux: The History and Implementation of React-Redux

2019년 2월, 16.8 버전 릴리스에서 useReducer가 리액트 훅으로 도입되었다. 이는 리덕스와 일관된 API를 제공하여, 개발자들이 컴포넌트 상태에 국한된 리덕스 스타일의 스토어를 만들 수 있게 해주었다.React v16.8: The One with Hooks

2019년 10월, 표준 리덕스 API를 감싸고 확장하는 일련의 유틸리티(configureStore 및 createSlice 등)를 제공함으로써 리덕스 로직 작성을 단순화하기 위해 Redux Toolkit이 도입되었다.

 같이 보기 
 단방향 데이터 흐름
 단일 진실 공급원

 각주 

 외부 링크 



분류:자바스크립트 라이브러리
분류:2015년 소프트웨어
분류:웹 애플리케이션
분류:MIT 라이선스 소프트웨어