React관련 싹 훑기(5) - you might not need redux, normalizr
Redux를 보다가 찾은 내용 간략하게 메모
Dan Abramov의 "you might not need redux"
https://medium.com/@dan_abramov/you-might-not-need-redux-be46360cf367
You Might Not Need Redux
People often choose Redux before they need it. “What if our app doesn’t scale without it?” Later, developers frown at the indirection Redux…
medium.com
위글을 간략하게 요약을 해보았다.
redux는 아래의 세가지를 하도록 강제한다.
- 앱의 상태를 plain object, arrays로 표현한다
- 앱의 변화를 plain object로 표현하게 한다
- 앱의 변화를 처리하는 방법을 pure functions으로 처리하도록 로직을 만들게 한다.
이 세가지는 react앱이든 뭐든 만들때 필수적으로 필요한 요소는 아니다. 사실은 이건 아주 강력한 제약이라, redux를 도입하기 전에 앱에 이게 진짜 필요한지 좀 고민을 해야한다.
여기서 이제 Dan Abramov 님께서 생각했을때 redux를 사용해서 위의 제약사항을 따를만한 이유가 있는 경우를 설명해주셨다.
- 상태를 로컬스토리지에서 관리할때
- 상태를 서버에서 채우고, 클라이언트에 보내서 거기서 시작하도록할때
- 버그리포트를 하기 위해서 유저의 액션을 시리얼라이즈하는 용도, 이렇게해서 버그를 재현할때
.... 등등
이런 경우가 아니고 react를 학습하는 경우라면 redux를 도입하는것보다는 react처럼 생각하는 연습을 하는것이 더욱 중요하다고 조언해주는 글이다.
그리고 추가적으로 강조하는건, local의 state도 정말 괜찮다는 내용이다.
Normalizr
https://jbee.io/react/react-redux-normalize/
Redux에서 Normalize 다루기
웹이 복잡해질수록 프런트엔드(자바스크립트 환경)에서 다뤄야 하는 상태가 많아진다. 그 종류도 점점 다양해지면서 UI의 상태와 도메인 데이터에 대한 값들도 함께 다뤄야 한다. UI도 중요하지
jbee.io
https://simsimjae.tistory.com/471
React에서의 데이터 정규화(normalizr)
서버에서 이런 데이터를 받아왔다고 해보자. 이 데이터를 그냥 써도 괜찮을까? 만약에 위 데이터를 가공하지 않고 그대로 사용하면 어떤 일이 벌어지는지 살펴보자. 만약에 article안에 있는 작성
simsimjae.tistory.com
이건 데이터의 형태를 바꾸어서 re-rendering이 많이 되지않도록하는건데, 필요한 경우에 사용하게 될 것 같다.