Skip to Content
Nextra 4.0 is released πŸŽ‰

🌐 HTTP Clients

πŸ“– κ°œμš”

http-clients νŒ¨ν‚€μ§€λŠ” HTTP μš”μ²­μ„ μ²˜λ¦¬ν•˜κΈ° μœ„ν•œ μœ ν‹Έλ¦¬ν‹°μ™€ ν΄λΌμ΄μ–ΈνŠΈ μ½”λ“œλ₯Ό μ œκ³΅ν•˜κΈ° μœ„ν•œ λ‚΄λΆ€ νŒ¨ν‚€μ§€μž…λ‹ˆλ‹€.

🎯 μ£Όμš” λͺ©ν‘œ

이 νŒ¨ν‚€μ§€λŠ” λ‹€μŒκ³Ό 같은 μ£Όμš” λͺ©ν‘œλ“€μ„ κ°€μ§€κ³  μž‘μ„±λ˜μ—ˆμ–΄μš”:

  • HTTP ν΄λΌμ΄μ–ΈνŠΈ μΈμŠ€ν„΄μŠ€(self, iamhoonse.dev)λ₯Ό μ œκ³΅ν•˜μ—¬ μΌκ΄€λœ μš”μ²­ 처리
  • μ›Ή λΈŒλΌμš°μ €μ™€ Node.js ν™˜κ²½μ—μ„œ λͺ¨λ‘ μ‚¬μš©ν•  수 μžˆλŠ” HTTP ν΄λΌμ΄μ–ΈνŠΈ 제곡
  • μ½”λ“œ μŠ€ν”Œλ¦¬νŒ… 및 트리 쉐이킹을 μ§€μ›ν•˜κΈ° μœ„ν•œ Vite 기반 λΉŒλ“œ μ„€μ •
  • TypeScript μ„ μ–Έ 파일 μ œκ³΅μ„ μœ„ν•œ μ„€μ •

πŸ“¦ 제곡 κΈ°λŠ₯

  • Instances: self 및 iamhoonse.dev와 같은 HTTP ν΄λΌμ΄μ–ΈνŠΈ μΈμŠ€ν„΄μŠ€λ₯Ό μ œκ³΅ν•΄μš”.
  • Mocks: self 및 iamhoonse.dev와 κ΄€λ ¨λœ μš”μ²­ ν•Έλ“€λŸ¬λ₯Ό MSW(Mock Service Worker)와 ν•¨κ»˜ μ‚¬μš©ν•  수 μžˆλ„λ‘ μ œκ³΅ν•΄μš”.
  • Types: HTTP μš”μ²­ 및 응닡과 κ΄€λ ¨λœ νƒ€μž…μ„ μ •μ˜ν•΄μš”.

πŸ› οΈ λΉŒλ“œ 방식 및 μ£Όμš” μ„€μ •

이 νŒ¨ν‚€μ§€λŠ” Vite와 TypeScriptλ₯Ό 기반으둜 λ©€ν‹° μ—”νŠΈλ¦¬ 라이브러리 ν˜•νƒœλ‘œ λΉŒλ“œλ©λ‹ˆλ‹€.
각 κΈ°λŠ₯λ³„λ‘œ λ³„λ„μ˜ μ—”νŠΈλ¦¬(instances, mocks, types)λ₯Ό μ œκ³΅ν•˜λ©°, λΉŒλ“œ μ‚°μΆœλ¬Όμ€ dist 폴더에 ES λͺ¨λ“ˆ(.es.js)κ³Ό CommonJS(.cjs.js) ν˜•μ‹μœΌλ‘œ μƒμ„±λ©λ‹ˆλ‹€.

package.json

  • exports: 각 κΈ°λŠ₯별 μ—”νŠΈλ¦¬(./instances, ./mocks, ./types)λ₯Ό 뢄리해 νƒ€μž… μ„ μ–Έ(.d.ts), ES λͺ¨λ“ˆ, CJS λͺ¨λ“ˆμ„ λͺ¨λ‘ μ œκ³΅ν•©λ‹ˆλ‹€.
  • private: "private": true둜 npm 곡개 배포λ₯Ό ν•˜μ§€ μ•Šλ„λ‘ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • files: λΉŒλ“œ μ‚°μΆœλ¬Ό(dist)만 νŒ¨ν‚€μ§€μ— ν¬ν•¨λ˜λ„λ‘ μ§€μ •ν•©λ‹ˆλ‹€.
  • scripts: Vite와 TypeScriptλ₯Ό ν™œμš©ν•œ λΉŒλ“œ, νƒ€μž… 체크, ν…ŒμŠ€νŠΈ λ“± λ‹€μ–‘ν•œ 개발 μŠ€ν¬λ¦½νŠΈκ°€ μ •μ˜λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.

vite.config.ts

  • λ©€ν‹° μ—”νŠΈλ¦¬ λΉŒλ“œ: shared/helpers μ—μ„œ μ œκ³΅ν•˜λŠ” runWithGlob μœ ν‹Έμ„ ν™œμš©ν•΄ src 폴더 λ‚΄μ˜ 각 μ—”νŠΈλ¦¬ νŒŒμΌμ„ μžλ™μœΌλ‘œ κ°μ§€ν•˜μ—¬ λΉŒλ“œ μ—”νŠΈλ¦¬λ‘œ λ“±λ‘ν•©λ‹ˆλ‹€.
  • 라이브러리 λͺ¨λ“œ: Vite의 라이브러리 λͺ¨λ“œλ₯Ό μ‚¬μš©ν•΄ ES/CJS 포맷으둜 각각 λΉŒλ“œν•©λ‹ˆλ‹€.
  • νƒ€μž… μ„ μ–Έ: vite-plugin-dts둜 각 μ—”νŠΈλ¦¬λ³„ νƒ€μž… μ„ μ–Έ νŒŒμΌμ„ μžλ™ μƒμ„±ν•©λ‹ˆλ‹€.
  • 경둜 별칭: vite-tsconfig-paths둜 TypeScript 경둜 별칭을 μ§€μ›ν•©λ‹ˆλ‹€.

tsconfig.json

  • λͺ¨λ“ˆ 해석: "moduleResolution": "bundler"둜 λ²ˆλ“€λŸ¬ μΉœν™”μ μΈ λͺ¨λ“ˆ 해석을 μ‚¬μš©ν•©λ‹ˆλ‹€.
  • νƒ€μž… 지원: μ΅œμ‹  ECMAScript, Node.js, DOM κ΄€λ ¨ νƒ€μž…μ„ μ§€μ›ν•˜λ„λ‘ μ„€μ •λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • 엄격 λͺ¨λ“œ: νƒ€μž… 검사 및 린트 κ΄€λ ¨ μ˜΅μ…˜μ΄ μ—„κ²©ν•˜κ²Œ μ μš©λ˜μ–΄ μžˆμŠ΅λ‹ˆλ‹€.
  • 경둜 별칭: tsconfig.jsonμ—μ„œ μ •μ˜λœ 경둜 별칭을 μ‚¬μš©ν•˜μ—¬ μ½”λ“œ 가독성을 λ†’μž…λ‹ˆλ‹€.


Last updated on