3. MSW
Keyword
Service worker
MSW(Mock Service Worker)
polyfill(ν΄λ¦¬ν)
1. Service worker
μΉ μ ν리μΌμ΄μ μμ λ°±κ·ΈλΌμ΄λ λκΈ°ν, νΈμ μλ¦Ό λ±μ΄ κ°λ₯νλλ‘ μ§μν΄μ£Όλ λꡬ. μλΉμ€ μ컀λ λΈλΌμ°μ μ λ°±κ·ΈλΌμ΄λμμ μ€νλλ μ€ν¬λ¦½νΈμΈλ°, μΉ μ ν리μΌμ΄μ κ³Ό λΈλΌμ°μ μ¬μ΄μμ μ€κ° κ³μΈ΅(νλ‘μ μλ²)μ μν μ νλ€.
μλΉμ€ μ컀μ μ μ½
λΈλΌμ°μ μ λ°±κ·ΈλΌμ΄λμμ μ€νλλ―λ‘, μμ²μ΄ μλν μλνμ§ μλλ€(idle μν). κ°μ λ‘ μ’ λ£νλ
.terminate()
λ©μλλ μ‘΄μ¬νμ§ μλλ€.μΉμ life cycleμ λ°λ₯΄μ§ μλλ€. μΉνμ΄μ§κ° λ«νλλΌλ μλμΌλ‘ λΉνμ±ν λμ§ μλλ€.
μΉ νμ΄μ§μ λ³λλ‘ μ‘΄μ¬νλ―λ‘ DOM, Window μμμ μ κ·Όν μ μλ€.
Proxy?
νλ‘μλ μμ²μ μΈν°μ νΈν΄μ νΉμ λμμ μνν λ°ννλ μν μ νλ€.
2. MSW(Mock Service Worker)
MSWλ κ°λ° λ° ν μ€νΈ νκ²½μμ API μμ²μ κ°λ‘μ±μ κ°μ§ μλ΅μ μ 곡νμ¬ μ€μ μλ²μ μμ‘΄νμ§ μκ³ λ ν μ€νΈλ₯Ό μννκ±°λ κ°λ°ν μ μκ² ν΄μ€λ€. λͺ¨μ μλ²μ κ°μ μν μ νλ€.
MSW νΉμ§
μ€μ μλ²κ° μ€λΉλμ§ μμ μ΄κΈ° κ°λ° λ¨κ³μμ μμ μ μ§νν μ μμ.
κ°μ§ μλ΅μ μ 곡νλ λͺ¨μ μλ²λ₯Ό μμ±ν΄, μλ²μ μμ‘΄νμ§ μκ³ ν μ€νΈν μ μμ.
jest.config.js
src/setupTests.ts
src/mocks/server.ts
src/mocks/handlers.ts
App.test.ts
Fetch API polyfill: whatwg-fetch
Fetch APIλ λΈλΌμ°μ μμ μ§μνλ APIλ‘ Nodeμμ μ¬μ©νκΈ° μν΄μ polyfillμ ꡬμ±νλ€. μ΅μ λ²μ μ Node.jsμμλ Fetch μ¬μ© κ°λ₯νλ€κ³ ν¨.
3. polyfill(ν΄λ¦¬ν)
λ¨μ΄μ λ»μ²λΌ λΉ μ§ μμ μΆ©μ ν΄μ£Όλ μν μ νλ€. JSμ μ΅μ λ¬Έλ²μ μ§μνμ§ μλ λ°νμ(λΈλΌμ°μ , Node.js)μ μ½λ μ‘°κ°, νλ¬κ·ΈμΈμ μΆκ°νλ μν
Babelμ΄ μλλ° μ Polyfill..?
λ°λ²¨μ ES6+λ¬Έλ²μ ES5λ‘ νΈλμ€νμΌλ§ νμ§λ§, ES5κ° μ§μνμ§ μλ ES6μ Map, Promise, Set, Object.assigin()μ νΈλμ€νμΌλ§μ΄ λΆκ°λ₯νλ€. λλ¬Έμ Pollyfillμ ν΅ν΄ μ½λ μ‘°κ°μ μΆκ°ν΄μΌλ§ νλ€.μ°λ¦¬κ° μμνμ§ μμλ CRA(create-react-app)μ κ°μ CLIλ‘ νλ‘μ νΈ νκ²½μ ꡬμ±νλ©΄ λ΄λΆμ μΌλ‘ polyfill κ΄λ ¨ core-js, regenerator-runtime λͺ¨λμ μΈν νλ―λ‘ μλμΌλ‘ ν΄λ¦¬νμ ꡬμ±νκ³ μμλ κ².
Last updated