
서비스 워커(Service Worker)를 사용하여 네트워크 호출을 가로채는 API 모킹(mocking) lib

- 브라우저에서 fetch, axios등 진행 시 request이 발생하고 이를 서비스 워커가 감지
- 해당 request는 실제 서버가 아닌 msw에 보낸다
- msw는 개발자가 설계한 handler 파일에 res.get/post/put/delete 등을 보고 response를 만든다.
- msw가 생성한 response를 서비스 워커로 보낸다
- 서비스 워커는 브라우저에 resaponse를 보내며 동작을 마무리한다
브라우저에 남아 FE의 요청에 가짜 데이터를 응답.
사용이유
- BE와 동시에 개발 시 BE api구현이 완료 전에 임시로 사용하기 위한 mock api로 쓰인다.
- 테스트 실행 시 실제 BE api에 네트워크 호풀을 하는대신 안정적인 mock api 서버를 구축한다.


$ npm install msw --save-dev
or
$ yarn add msw --dev
(--save-dev : 개발단계에서만 라이브러리를 사용한다는 의미)
(package.json)
$ npx msw init public/ --save
(package.json)
(💢 이슈 사항: MFA 구조에 따라 ROOT,host, 해당 폴더에도 npx 해야한다.
ex) app2 페이지라면 app2 폴더로 이동 후 cli 실행

/remotes
/shared
|- /mock
|- /api
| |- auth.ts … 모의 API 처리
|- handler.ts … API handler 설정 (routing)
|- worker.ts … worker.start() 할 파일
모의 API 처리


handler 설정

worker 설정

