- 소개
- 시작하기
- 철학
- 비교
- 제한 사항
- 디버깅 실행 매뉴얼
- FAQ
- Basics
- Concepts
- Network behavior
- Integrations
- API
- CLI
- Best practices
- Recipes
- Cookies
- Query parameters
- Response patching
- Polling
- Streaming
- Network errors
- File uploads
- Responding with binary
- Custom worker script location
- Global response delay
- GraphQL query batching
- Higher-order resolver
- Keeping mocks in sync
- Merging Service Workers
- Mock GraphQL schema
- Using CDN
- Using custom "homepage" property
- Using local HTTPS
소개
Mock Service Worker 문서에 오신 것을 환영합니다!
Mock Service Worker(MSW)는 브라우저와 Node.js를 위한 API 모킹 라이브러리입니다. MSW를 사용하면 외부로 나가는 요청을 가로채고, 이를 관찰하며, 모의 응답으로 응답할 수 있습니다.
MSW의 차별점은 독립적인 API 모킹 레이어를 적극 권장한다는 점입니다. 이를 통해 네트워크 동작에 대한 단일 진실 공급원을 만들고, 사용 중인 도구와 통합할 수 있습니다. 이는 더 견고한 설정을 가능하게 하며, 다른 라이브러리 기능과 결합하여 진정으로 원활한 API 모킹 경험을 제공합니다.
Features
환경 독립성
MSW는 환경, 프레임워크, 도구에 완전히 독립적으로 설계되었습니다. 추가 설정, 어댑터, 플러그인 없이도 모든 브라우저나 Node.js 프로세스에서 사용할 수 있습니다. 네이티브 window.fetch()
부터 Axios, React Query, Apollo 같은 서드파티 라이브러리까지 모든 요청 클라이언트와 호환됩니다.
Seamless
MSW는 네트워크 레벨에서 실제 프로덕션 요청을 가로채기 위해 Service Worker API를 사용합니다. fetch
를 패치하거나 애플리케이션의 무결성을 훼손하는 대신, MSW는 플랫폼에 기대어 표준 브라우저 API를 활용해 혁신적인 요청 가로채기 로직을 구현합니다.
Node.js 환경에서는 요청을 가로챌 표준 수단이 없지만, MSW는 모듈 패치 대신 _클래스 확장_을 사용해 테스트가 프로덕션 환경과 최대한 가까운 환경에서 실행되도록 보장합니다.
재사용 가능성
MSW는 API 모킹을 독립적인 레이어로 취급하여 전체 스택에 걸쳐 통합할 수 있습니다. 이를 통해 네트워크 동작을 필요에 따라 재사용하고 커스터마이징할 수 있습니다. 개발, 통합 테스트, 엔드투엔드 테스트에서 동일한 API 모크를 사용하고, Storybook이나 라이브 데모에서도 활용하는 것을 상상해 보세요. MSW를 사용하면 이 모든 것이 가능합니다.
시작하기
MSW를 처음 사용해보거나 어디서부터 시작해야 할지 모르겠다면, 시작하기 튜토리얼을 확인하세요:
시작하기
Mock Service Worker를 시작하는 세 가지 단계.
Egghead로 배우기
이 문서는 RESTful, GraphQL, WebSocket API를 모킹하는 데 필요한 모든 정보를 담고 있습니다.
더 인터랙티브하고 따라 하며 배우는 방식을 선호한다면, 아래의 공식 Egghead 강좌를 고려해 보세요. 이 강좌들은 유료 구독이 필요하며, 프로젝트를 유지하는 데 도움을 줍니다.