Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- Node
- jsEvent Loop
- Passed by Value
- react portal
- CloudFront 무효화
- input error
- NextJs
- 프로젝트
- 회고록
- Redux
- next/link
- Client-Side Navigation
- JS
- 알고리즘
- 원티드인턴십
- 향해99
- NVM
- Til
- 원티드프리온보딩
- toast err
- react
- JavaScript
- 유령 의존성
- git
- 원티트 프리온보딩인턴십 1주차
- Mac OS NVM
- 광고지구
- 인풋태그 엔터
- CPU와 GPU의 차이점
- 식별자란
Archives
- Today
- Total
SUIN
[TIL] 22.03.11 React Mock Service Worker(리액트 목 서비스워커로 모의데이터 사용해보기 ) 본문
TIL
[TIL] 22.03.11 React Mock Service Worker(리액트 목 서비스워커로 모의데이터 사용해보기 )
choi suin 2022. 3. 11. 16:27728x90
통상적으로 data fetch를 해야 하는 경우 통신을 통해 응답을 내려주는 서버가 있어야 한다.
서버가 없는 경우, api 요청으로 내려올 데이터를 프론트에서 모킹하거나 서버의 역할을 해주는 무언가 필요하므로 MSW를 사용하여 모의 데이터를 만들어보는 공부를 했다.
MSW
- 데이터 목킹을 하는 라이브러리
- 리액트는 REST API & GraphQL support 한다.
- 실제 서버와 동일한 주소여도 서로 올라가지 않고 Interceptor 해서 msw를 통해 데이터 처리가 가능하다
- 브라우저 내에 서비스워커를 띄운후 핸들러에 특정 api 설정을 하게되면 요청에 맞는 데이터를 받을 수 있다
- Browser
응답 요청 -> 서비스 봉사자가 상태 -> res clone -> msw 전송 -> 모킹 데이터 응답
install
$ npm install msw --save-dev
# or
$ yarn add msw --dev
Setup
핸들러를 만들었다고 동작되는것이 아니라 빌드해서 퍼블릭 안에 서비스 워커 파일을 만들어주어야한다.
PUBLIC_DIR은 어떤 프레임워크 혹은 라이브러리를 사용하고 있느냐에 따라 다른데, 우리는 리액트를 사용하고 있으므로 public/을 입력
$ npx msw init <PUBLIC_DIR> --save
|
$ npx msw init public/ --save
index.js mock setting
import React from "react";
...
// Start the mocking conditionally.
if (process.env.NODE_ENV === "development") {
const { worker } = require("./mocks/browser");
worker.start();
}
ReactDOM.render(
<React.StrictMode>
<App />
</React.StrictMode>,
document.getElementById("root")
);
reportWebVitals();
여러 가지 커스텀 가능 실제 요청을 패칭 하고 데이터를 더해서 응답을 내려줄 수 있고 에러를 커스텀해서 내려줄 수 도 있다.
처음에는 msw를 이용해서 서버까지 가지 않고 모의 데이터로 화면을 그리면서 실제 서버 api 구현이 다되면 데이터를 요청할 때는 msw를 다 지워야 하는가?라고 생각했다
하지만 msw의 Response patching을 통해서 실제 응답을 받아와 직접 데이터도 처리할 수 있었고 여러 가지 커스텀할 수 있는 걸 보며 놀라웠다.
생각보다 msw를 통해서 간편하게 모의데이터를 만들 수 있다는 사실이 좀 신기했다
공부내용은 깃허브에!!!
https://github.com/whl5105/React_Study/tree/master/msw
오늘 배운 내용
Mocking REST API (Query parameters / Response patching / Mocking error responses / context status )
재미있다! 재미있어!!!
'TIL' 카테고리의 다른 글
[TIL] themoviedb API (0) | 2022.06.14 |
---|---|
[TIL] emotion first-child console error (0) | 2022.06.09 |
[TIL] 22.03.10 Recoil 공부 (0) | 2022.03.10 |
[TIL] 22.02.16 react-router v5 > v6 (0) | 2022.02.17 |
[TIL]22.02.09 항해 수료식,궁금했던 콘솔 아스키아트 (0) | 2022.02.09 |