Axios vs Ky
어떤 HTTP 클라이언트를 쓸까?
기본
| Axios | Ky | |
|---|---|---|
| 주간 다운로드 | 11981만 | 736만 |
| 최근 릴리스 | 15일 전 | 112일 전 |
| 유지보수 | 활발 | 둔화 |
| 열린 이슈 | 67 | 0 |
유지보수 상태는 최근 릴리스 간격만으로 판정합니다 (90일 이내 활발 · 270일 이내 둔화 · 그 이상 정체).
쓰다 보면 만나는 것
Axios
- 거슬림
axios를 ESM으로 임포트해도 트리셰이킹으로 번들 크기가 거의 줄지 않아, 사용하지 않는 기능까지 포함된 채 최종 번들에 남는다.
axios는 함께 포함되는 의존성(예: mime-db 같은 데이터 테이블)과 내부 구조 탓에 번들러가 미사용 코드를 충분히 제거하지 못한다. 프런트엔드에서는 실제 사용량과 무관하게 gzip 기준 약 12~14KB(구버전 기준 약 22KB)의 고정 비용이 남고, 서버 측에서는 mime-db 의존성 때문에 트리셰이킹 후에도 산출물이 크게 늘어난 사례가 보고됐다(원본 이슈). 단순 요청만 필요한 프런트엔드나 콜드스타트가 민감한 서버리스에서는 네이티브 fetch로 대체해 이 비용을 줄일 수 있다.
2025-10 · 미해결
- 거슬림
axios 1.19.0이 request 반환 타입 R의 기본값을 export하지 않은 unique symbol 브랜드 타입으로 두면서, 이를 재노출하는 패키지의 TypeScript 선언 파일 생성이 TS2527로 실패한다.
1.19.0의 index.d.ts에서 노출되지 않은 unique symbol이 request 시그니처의 기본 타입에 쓰여, axios 타입을 다시 내보내는 라이브러리(예: openapi-generator의 typescript-axios 클라이언트)의 declaration emit이 TS2527로 중단된다. 생성 코드에 명시적 Promise<R> 주석과 캐스팅을 넣거나 axios를 1.19.0 이전 버전으로 고정하는 것이 현재 우회법이다. 원본 이슈와 Cambridge GitLab의 CI 템플릿 패치 MR이 동일한 1.19.0 타입 회귀를 가리킨다.
2026-08 · 미해결 · 1.19.0
Ky
아직 정리된 항목이 없습니다. 출처가 확보되는 대로 추가됩니다.
이럴 땐 이걸
- 브라우저 중심·가벼운 fetch 래퍼 → Ky
- 레거시 호환·팀의 기존 관성 → Axios