Repolode
mswjs

mswjs/msw

브라우저와 Node.js에서 네트워크 요청을 가로채는 JavaScript API 모킹 라이브러리로, 테스트와 개발 중에도 앱 코드를 수정하지 않고 모의 응답을 사용할 수 있습니다.

스타
18,307
포크
642
열린 이슈
16
마지막 커밋
8일 전

어떤 프로젝트인가요?

Mock Service Worker (MSW)는 네트워크 계층에서 API 요청을 모킹합니다. 브라우저에서는 Service Worker API를 사용해 모의 정의에 따라 요청에 응답하고, Node.js에서는 저수준 인터셉션 계층을 사용합니다. fetch, axios, 데이터 페칭 라이브러리 등 애플리케이션 코드를 수정하지 않으므로 앱은 프로덕션 환경과 동일하게 동작합니다.

요청 핸들러는 매개변수, 와일드카드, 정규식을 지원하는 Express와 유사한 라우팅 문법으로 작성합니다. 응답에는 상태 코드, 헤더, 쿠키, 지연 시간을 설정할 수 있으며, 완전히 사용자 정의한 resolver로 응답을 생성할 수도 있습니다. 동일한 핸들러를 단위 테스트, 통합 테스트, E2E 테스트와 로컬 개발에서 재사용할 수 있고, 응답은 브라우저의 DevTools Network 탭에서 확인할 수 있습니다.

브라우저용 setupWorker와 Node.js용 setupServer를 제공하며, 문서 사이트와 일반적인 설정을 위한 예제 저장소도 마련되어 있습니다.

핵심 기능

  • 01네트워크 계층에서 요청을 가로채 애플리케이션 코드를 수정하지 않고 실행합니다.
  • 02Service Worker를 통해 브라우저에서 동작하며, Node.js에서는 테스트와 서버에 사용할 수 있습니다.
  • 03매개변수, 와일드카드, 정규식을 지원하는 Express 유사 라우트 매칭을 제공합니다.
  • 04응답에 사용자 정의 상태 코드, 헤더, 쿠키, 지연 시간을 지정하거나 resolver 함수를 사용할 수 있습니다.
  • 05모킹된 응답을 브라우저의 DevTools Network 탭에서 확인할 수 있습니다.

활용 사례

  • 백엔드 API가 준비되기 전에 프런트엔드 기능을 개발합니다.
  • HTTP 및 GraphQL 호출을 모킹하는 단위·통합·E2E 테스트를 작성합니다.
  • 느리거나 실패하는 엔드포인트를 시뮬레이션해 로딩 및 오류 상태를 테스트합니다.
  • 스텁 처리한 서드파티 API를 대상으로 로컬 Express 서버를 실행합니다.

빠른 시작

  1. 1

    패키지를 개발 의존성으로 설치합니다

    npm i msw --save-dev
  2. 2

    공식 빠른 시작 가이드를 읽고 요청 핸들러를 설정합니다

사용 전 알아둘 점

  • 브라우저 모킹을 사용하려면 앱과 함께 배포할 Service Worker 파일을 생성해야 합니다.

포함된 컬렉션

토픽

자주 묻는 질문

msw은(는) 무엇인가요?
브라우저와 Node.js에서 네트워크 요청을 가로채는 JavaScript API 모킹 라이브러리로, 테스트와 개발 중에도 앱 코드를 수정하지 않고 모의 응답을 사용할 수 있습니다. Mock Service Worker (MSW)는 네트워크 계층에서 API 요청을 모킹합니다. 브라우저에서는 Service Worker API를 사용해 모의 정의에 따라 요청에 응답하고, Node.js에서는 저수준 인터셉션 계층을 사용합니다. fetch, axios, 데이터 페칭 라이브러리 등 애플리케이션 코드를 수정하지 않으므로 앱은 프로덕션 환경과 동일하게 동작합니다.
msw은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
msw은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
msw은(는) 아직 유지보수되고 있나요?
활발히 유지보수 중. msw의 마지막 커밋은 2026년 10월 17일입니다.
msw은(는) 어디에 사용할 수 있나요?
백엔드 API가 준비되기 전에 프런트엔드 기능을 개발합니다. HTTP 및 GraphQL 호출을 모킹하는 단위·통합·E2E 테스트를 작성합니다. 느리거나 실패하는 엔드포인트를 시뮬레이션해 로딩 및 오류 상태를 테스트합니다. 스텁 처리한 서드파티 API를 대상으로 로컬 Express 서버를 실행합니다.
msw는 어떻게 설치하나요?
패키지를 개발 의존성으로 설치합니다: npm i msw --save-dev 공식 빠른 시작 가이드를 읽고 요청 핸들러를 설정합니다
msw은(는) 어디서 받을 수 있나요?
소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/mswjs/msw

요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.

관련 프로젝트