해당 글은 redux sprint review 에 참여하여 배운 것들, 스스로에게 던지는 질문 등등을 정리하려고 따로 만든 문서이다. redux 의 공식문서를 읽고 공부하는 과정이 상당히 길어져서 부득이하게 새로 만들게 되었다.
아마 redux(4) 또한 작성할 할 예정이다. 그 포스팅은 redux 스프린트를 스스로 구현해 보고 그 과정들을 기록하는 문서가 될 예정이다.
추가로 오늘의 TIL 분량이 적은데, 그 이유는 오늘의 시간마저도 redux(2) 에다가 대부분 할애했기 때문이다. 그리고 오늘도 Redux 사이트의 튜토리얼을 이해하지 못 해 내일도 마저 진행해야 할 듯 하다.
React 의 class component 와 props drilling 만을 가지고 state 를 관리한다면 부모컴포넌트를 통한 nested structure 가 필수불가결하다. Redux 는 그런 props drilling 을 거치지 않고도 별도의 store 를 만듦으로서 nested structure 를 탈피할 수 있게 해준다.
또한 App 의 전반적인 component 에서 사용하는 값의 경우, React 만을 사용한다면 props drilling 을 여러 곳으로 뚫어줘야 하는데, 이런 경우도 마찬가지이다.
dark mode 구현 등이 대표적인 redux 가 있으면 좋은 예시일텐데, isDarkMode
와도 같은 state 를 대부분의 component 들이 주고받아야 한다. redux 를 통해서는 하나의 store 를 전역적으로 두고 사용함으로써 props drilling 을 피할 수 있다.
props drilling - Google Search
일단은 action 생산자가 이벤트를 감지하고, 그 이벤트에 맞는 action 을 만든다. 그리고 그 action 은 reducer 함수로 넘어가고, reducer 함수는 기존 state 와 action 을 합쳐서 새로운 state 를 return 해준다. "새로운" state, 즉 immutability 를 보장하는 것이다.
Obejct.assign(target, arg1, arg2...)
method 은 무엇인가? : 첫 번째 인자인 Target 인자에, 그 나머지의 인자로 들어오는 객체들의 속성들을 복사해넣는 메서드이다. Redux 에서는 store 의 불변성을 보장하기 위해 사용한다.
target
이 return 된다아키텍쳐 공부는 주니어 개발자의 다음 상태로 넘어가는 관문
combineReducer()
등을 활용하여 넘겨주는 구조를 따르고 있다. reducer composition
이 대표적인 패턴, 즉 "괜찮은 아키텍처" 중에 하나 이다.비동기 Redux 관련해서는, 해당 슬라이드를 참고하고 공부하자.