Next.js에서 axios 대신 fetch API를 커스텀하여 사용하는 이유와 장점
🤖 AI 추천
Next.js 프로젝트를 진행하며 API 통신 라이브러리 선택에 고민이 있는 개발자, 특히 Next.js의 서버 컴포넌트와 캐싱 메커니즘을 효과적으로 활용하고자 하는 프론트엔드 및 풀스택 개발자에게 유용합니다.
🔖 주요 키워드

핵심 기술
Next.js 환경에서 외부 라이브러리(axios) 대신 내장된 fetch
API를 직접 감싸서 customFetch
로 사용하는 방식을 제안하며, 이를 통해 Next.js의 강력한 캐싱 및 최적화 기능을 최대한 활용하는 것이 핵심입니다.
기술적 세부사항
- Next.js와 fetch의 긴밀한 통합: Next.js는
node-fetch
를 내장하고 있어 서버 사이드 렌더링(SSR) 및 API 요청에fetch
를 활용하기 용이합니다. - 서버 컴포넌트에서의 자동 캐싱: Next.js 13 이상(App Router)에서는 서버 컴포넌트 내
fetch
호출 시 결과가 자동으로 캐싱됩니다. - 세부 캐싱 옵션 지원:
fetch
는cache: 'no-store'
와 같은 옵션을 통해 캐싱 동작을 제어할 수 있습니다. - 기존 라이브러리 기능 대체:
axios
의 인터셉터, 자동 JSON 직렬화, 타임아웃, 취소 토큰 등의 기능은fetch
와 유틸리티 함수 조합으로 구현 가능합니다. - 번들 크기 및 설정 간소화: 외부 라이브러리 의존성을 줄여 번들 크기를 최적화하고, 설정 복잡성을 낮춥니다.
개발 임팩트
- Next.js의 내장 기능을 활용하여 API 통신 로직을 최적화하고 성능을 개선할 수 있습니다.
- 서버 컴포넌트의 캐싱 메커니즘을 효과적으로 사용하여 데이터 로딩 속도를 향상시킬 수 있습니다.
- 프로젝트의 의존성을 줄여 유지보수성을 높이고 잠재적인 충돌 가능성을 낮춥니다.
커뮤니티 반응
(해당 내용 없음)
톤앤매너
개발자에게 실질적인 기술 선택의 이유와 그에 따른 이점을 명확하게 전달하는 전문적이고 실용적인 톤을 유지합니다.
📚 관련 자료
next.js
Next.js 공식 리포지토리로, fetch API 통합 및 서버 컴포넌트 캐싱 메커니즘에 대한 정보를 얻을 수 있습니다.
관련도: 95%
react-query
데이터 페칭 및 캐싱 라이브러리의 대표적인 예로, fetch API를 직접 감싸서 커스텀 훅을 만드는 아이디어를 확장하여 로직 구현에 참고할 수 있습니다.
관련도: 70%
axios
글에서 비교 대상으로 언급된 API 통신 라이브러리로, fetch API를 통해 대체하고자 하는 기능들을 파악하는 데 유용합니다.
관련도: 60%