redux-devtools의 time-travel-debugging 톺아보기
· 약 42분
목적
redux를 이용해서 웹 어플리케이션 개발을 진행해 본 사람이라면 redux-devtools를 이용해서 time-travel 디버깅을 사용해본 경험이 있을 것이다.
redux-devtools
가 어떤 것인지 헷갈리시는 분이 있다면 아래 영상을 참고하기 바란다.
만약 redux-devtools
를 사용해 본 경험이 없다면 이번 article을 이해하기 어려울 수 있다.
redux-devtools
는 redux를 사용한 web application의 redux정보(action, reducer, state)를 기록하고, 특정 시점의 reducer로 rollback하고, 특정 action을 없었던 일로 할 수 있다.
하지만, redux-devtools
를 사용하지 않고 web application 내부에 비슷한 동작을 구현을 하려 한다면 간단한 일이 아니다.
예를들어, A버튼을 눌렀을 때 이제껏 발생시켰던 action을 없었던 일로 한다거나, Submit버튼을 누르기 전 이탈 한다면 해당 페이지에서 발생시켰던 모든 action을 rollback한다거나 하는 로직말이다.
redux-devtools
는 버튼으로 손쉽게 제공하는 동작을 직접 로직을 구현한다고 하면 방법을 모르겠다. redux-devtools
는 어떻게 이러한 일들을 가능하게 할까?
이 article에서는
redux-devtools
에서 호출되는 action과 reducer를 logging하는 방법.redux-devtools
에서 특정 action이 dispatch 된 시점으로 jump하는 방법.redux-devtools
에서 특정 action이 동작하지 않은 것 처럼 skip시키는 방법.
에 대해서 확인해 볼 것 이다.
사전지식
- redux-devtools 사용 경험
- redux enhancer에 대한 지식
Caution
- 이 문서는
browser extension
에 대한 내용은 다루지 않습니다. redux-devtools
의 core에 대해서 다루고 있으며browser extension
에 대한 지식이 없어도 이해가 가능합니다.redux-devtools-extensions
와 관련하여browser extension
에 대한 내용을 원하는 분들은 이 글에서 다루는 내용과 맞지 않을 수 있습니다.