HMR (Hot Module Replacement)
HMR 은 특정 코드 변경 시, 브라우저 새로고침 없이 해당 부분만 리로드하는 것을 의미한다. 개발모드에서만 사용된다.
코드가 변경 후 저장을 누르더라도, state 를 유지시켜주므로, 수정한 결과가 표시되기까지 거쳐야 하는 여러 과정들을 생략할 수가 있다. 이로 인해 개발 시 생산성은 높이고 불필요한 대기시간을 없앨 수 있게 된다.
예를들어, 검색로직에서 필터조건을 하나 추가했다고 가정해보자. 수정된 로직을 검증하려면 일반적으로 다음 과정들을 거쳐야 한다.
코드수정 → 저장 → 새로고침 → 검색어 입력 → 검색버튼 클릭 → API 호출 → 데이터표시
HMR 을 이용하면, 4 단계를 생략하고 바로 필터 적용여부를 확인할 수 있다.
코드수정 → 저장 → 데이터표시
1. 환경설정
.babelrc
webpack.config.js
2. App.jsx 에 HMR 적용
루트 컴포넌트인 App 을 별도의 파일로 분리하고, 불러들인다.
Client.jsx
3. 서버를 재시작한다.
테스트하는 방법은,
특정 state(예: 검색어를 입력)를 변경
텍스트나 일부 로직을 수정한 뒤 저장을 누른다.
브라우저 새로고침 없이 검색어가 결과에 반영되는지 확인
HMR 상태에서 Search.jsx 수정했을 때 console 로그
Last updated