리덕스
| 원저자 | 댄 아브라모프, 앤드루 클라크 |
|---|---|
| 발표일 | 2015년 6월 2일[1] |
| 안정화 버전 | 5.0.1
/ 2023년 12월 23일[2] |
| 저장소 | |
| 프로그래밍 언어 | 타입스크립트 |
| 플랫폼 | 크로스 플랫폼 소프트웨어 |
| 종류 | 자바스크립트 라이브러리 |
| 라이선스 | MIT 허가서 |
| 웹사이트 | redux |
리덕스(Redux)는 애플리케이션 상태를 관리하고 중앙 집중화하기 위한 오픈 소스 자바스크립트 라이브러리이다. 사용자 인터페이스를 구축하기 위해 리액트나 앵귤러와 같은 라이브러리와 함께 가장 흔히 사용된다. 페이스북의 플럭스(Flux) 아키텍처와 유사하며(그로부터 영감을 받음), Elm 아키텍처 또한 영감을 준 것으로 언급된다.[3] 댄 아브라모프와 앤드루 클라크에 의해 만들어졌으며, 2016년 중반부터는 마크 에릭슨과 팀 도어가 주요 유지보수자를 맡고 있다.
설명
[편집]리덕스는 애플리케이션 상태를 위한 예측 가능한 컨테이너로 설계된, 단순하고 제한된 API를 가진 작은 라이브러리이다. 함수형 프로그래밍 개념인 리듀싱 함수(reducing function)와 유사한 방식으로 작동한다.
역사
[편집]리덕스는 2015년 댄 아브라모프와 앤드루 클라크에 의해 만들어졌다.[4] 아브라모프는 핫 리로딩(hot reloading)에 관한 React Europe[5] 컨퍼런스 발표를 준비하던 중 리덕스의 첫 구현체를 작성하기 시작했다.[6] 아브라모프는 "로직을 변경할 수 있는 플럭스의 개념 증명(proof of concept)을 만들려 노력 중이었다. 그리고 그것은 시간 여행을 가능하게 하고, 코드 변경 시 미래의 액션들을 다시 적용할 수 있게 해주었다."라고 언급했다.[7]
아브라모프는 플럭스 패턴과 리듀싱 함수의 유사성에 주목했다. "나는 플럭스를 시간에 따른 리듀스 연산으로 생각하고 있었다... 스토어들은 이러한 액션들에 반응하여 상태를 축적한다. 나는 여기서 더 나아가기로 했다. 만약 당신의 플럭스 스토어가 스토어가 아니라 리듀서 함수라면 어떨까?"[4]
아브라모프는 플럭스 구현체인 Flummox의 저자 앤드루 클라크에게 협업을 요청했다. 그는 클라크가 리덕스 도구 생태계를 가능하게 하고, 일관된 API를 고안하는 데 도움을 주었으며, 미들웨어 및 스토어 인핸서(store enhancer)와 같은 확장 지점을 구현한 공로를 인정했다.[4]
2016년 중반까지 아브라모프는 리액트 팀에 합류했으며, 주요 유지보수 권한을 마크 에릭슨과 팀 도어에게 넘겼다.[8]
2019년 2월, 16.8 버전 릴리스에서 useReducer가 리액트 훅으로 도입되었다. 이는 리덕스와 일관된 API를 제공하여, 개발자들이 컴포넌트 상태에 국한된 리덕스 스타일의 스토어를 만들 수 있게 해주었다.[9]
2019년 10월, 표준 리덕스 API를 감싸고 확장하는 일련의 유틸리티(configureStore 및 createSlice 등)를 제공함으로써 리덕스 로직 작성을 단순화하기 위해 Redux Toolkit이 도입되었다.[10]
같이 보기
[편집]각주
[편집]- ↑ Initial release tag
- ↑ “Releases – ReactJS/Redux”. 《GitHub》.
- ↑ “Prior Art - Redux”. 《redux.js.org》. 2024년 4월 28일.
- ↑ 가 나 다 Abramov, Dan. “The History of React and Flux with Dan Abramov”. 《Three Devs and a Maybe》. 2018년 4월 7일에 확인함.
- ↑ “ReactEurope 2015 - Live React: Hot Reloading with Time Travel”. 《ReactEurope》.
- ↑ “Dan Abramov - Live React: Hot Reloading with Time Travel at react-europe 2015”. 《Youtube》.
- ↑ Abramov, Dan. “Progression, Curiosity, and Burnout with Dan Abramov”. 《TylerMcGinnis.com》. 2018년 4월 7일에 확인함.
- ↑ Idiomatic Redux: The History and Implementation of React-Redux
- ↑ React v16.8: The One with Hooks
- ↑ Erikson, Mark (2019년 10월 23일). “Idiomatic Redux: Redux Toolkit 1.0”. 《Mark's Dev Blog》. 2025년 8월 9일에 확인함.