axios란axios.post 예제npm axiosreact axiosreact axios 사용법

Axios: 강력하고 유연한 HTTP 클라이언트

KUKJIN LEE
KUKJIN LEE
2024년 2월 12일
149

Axios는 웹 브라우저와 Node.js 환경에서 사용할 수 있는 Promise 기반의 HTTP 클라이언트입니다. 개발자가 REST API를 효율적으로 호출할 수 있도록 설계되었으며, 비동기 작업을 쉽고 깔끔하게 처리할 수 있는 현대적인 JavaScript 개발의 필수 도구로 자리 잡았습니다.

주요 기능

  • Promise 기반 구조: Axios는 비동기 HTTP 요청 처리를 위해 Promise를 사용합니다. 이를 통해 .then(), .catch() 메서드 또는 async/await 구문을 사용하여 코드의 가독성과 유지 관리성을 높일 수 있습니다.

  • 에러 처리: Axios는 요청 실패 시 상세한 정보를 제공하는 강력한 에러 처리 기능을 갖추고 있습니다. 이를 통해 개발자는 네트워크 오류나 HTTP 상태 코드를 기반으로 정교한 예외 처리 로직을 구현할 수 있습니다.

  • JSON 데이터 자동 변환: 서버로부터의 응답을 자동으로 JSON 형식으로 변환하는 기능은 API 응답 처리를 간단하게 만들어 줍니다. 이로 인해 개발자는 데이터 구문 분석에 드는 시간과 노력을 줄이고, 애플리케이션 개발에 더 집중할 수 있습니다.

Axios의 이러한 기능들은 현대 웹 및 서버 애플리케이션 개발에서 필수적인 요소입니다. 간결하고 직관적인 API를 제공하여, 비동기 HTTP 요청을 손쉽게 구성하고 실행할 수 있게 해줍니다.

 

Axios를 설치하기 위해서는 Node.js 환경에서 npm(npm install) 또는 yarn(yarn add) 명령을 이용하여 'axios' 패키지를 설치하면 됩니다.

 

npm install axios

 

Axios 사용법 및 주의 사항 가이드

Axios는 브라우저와 Node.js 환경에서 모두 사용할 수 있는 promise 기반의 HTTP 클라이언트입니다. 이 툴을 통해 개발자는 HTTP 요청을 간단하고 효율적으로 처리할 수 있습니다.

사용법

Axios는 다양한 HTTP 요청 메소드를 제공합니다:

  • axios.get(): 데이터를 검색하기 위한 GET 요청을 보냅니다.
  • axios.post(): 새로운 데이터를 생성하기 위한 POST 요청을 보냅니다.
  • axios.put(): 기존 데이터를 업데이트하기 위한 PUT 요청을 보냅니다.
  • axios.delete(): 데이터를 삭제하기 위한 DELETE 요청을 보냅니다.

이 메소드들은 애플리케이션에서 서버와의 상호작용을 구현할 때 필수적입니다.

주의 사항

  1. 오류 처리:

    • Axios는 HTTP 오류 상태 코드(400 이상)를 반환하더라도 기본적으로 Promise를 reject하지 않습니다. 개발자는 validateStatus 설정 옵션을 사용하거나 응답 상태 코드를 직접 확인하여 오류를 처리해야 합니다.
  2. 요청 취소:

    • Axios는 이미 발송된 HTTP 요청을 취소할 수 있는 기능을 제공합니다. 이 기능은 불필요한 네트워크 트래픽을 줄이거나 중복 요청을 방지하는 데 유용합니다.
  3. 보안:

    • API 키나 인증 토큰과 같은 민감한 정보를 요청에 포함할 경우, 이 정보가 외부에 노출되지 않도록 주의해야 합니다. 안전한 저장과 접근을 위해 환경 변수나 보안 모듈을 사용하는 것이 권장됩니다.

이 가이드는 Axios를 사용하여 HTTP 요청을 보내고 관리하는 과정에서 발생할 수 있는 주요 사항과 주의해야 할 점들을 요약한 것입니다. 올바른 사용법과 주의 사항을 숙지하면, Axios를 통해 보다 효과적이고 안전한 HTTP 통신을 구현할 수 있습니다.

 

import axios from 'axios';

// GET 요청
axios.get('https://api.example.com/data')
  .then(response => {
    console.log(response.data);
  })
  .catch(error => {
    console.error('Error', error);
});

// POST 요청
axios.post('https://api.example.com/data', {
  title: 'Hello',
  description: 'World'
})
.then(response => {
  console.log(response.data);
})
.catch(error => {
  console.error('Error', error);
});

 

Axios 사용자화 가이드

Axios는 매우 강력하고 사용자화 가능한 HTTP 클라이언트입니다. 다음은 Axios의 핵심 사용자화 옵션들입니다:

  • 전역 Axios 기본 설정: 모든 요청에 적용되는 기본값을 설정할 수 있습니다. 예를 들어, baseURL을 설정하여 모든 요청에 동일한 기본 URL을 사용하도록 할 수 있습니다.

  • Custom Headers: 특정 요청이나 모든 요청에 대해 사용자 정의 헤더를 설정할 수 있습니다. 예를 들어, 특정 API 키를 모든 요청에 추가하려면 다음과 같이 할 수 있습니다.

  • Error Handling: 요청이나 응답에 대한 오류를 처리하는 방법을 사용자화할 수 있습니다. 예를 들어, 특정 HTTP 오류 코드에 대해 공통적인 처리를 추가하려면 다음과 같이 할 수 있습니다.

 

// Global Axios Defaults
axios.defaults.baseURL = 'https://api.example.com';

// Custom Headers
axios.defaults.headers.common['Authorization'] = `Bearer ${API_KEY}`;

// Error Handling
axios.interceptors.response.use(
  response => response,
  error => {
    if (error.response.status === 401) {
      console.log('unauthorized, logging out ...');
    }
    return Promise.reject(error);
  }
);

 

관련 글

axios 사용자라면 반드시 읽어야 할 긴급 경고

이번에 정말 충격적인 사건이 터졌습니다. 전 세계에서 가장 많이 쓰이는 HTTP 클라이언트 라이브러리 axios가 npm 공급망 공격을 당했습니다. 이번 공격은 단순한 버그가 아니라, maintainer 계정을 해킹해 악성 버전을 직접 배포한 전형적인 Supply ...

2026년 4월 2일12

Next.js 언어 번역 라이브러리 선택 가이드

웹 서비스 글로벌 진출이 보편화되면서, 국제화(i18n) 관련 라이브러리가 많이 출시됐습니다. 많이 사용되고, 커뮤니티에서 평가가 좋은 언어 번역 라이브러리를 정리했습니다. 인기 번역 라이브러리 1. react-i18next 설명 : React 프로젝트에서 가장 널리 ...

2025년 7월 1일270

가볍고 유연한 React 아이콘 라이브러리 lucide-react

lucide-react 는 React 애플리케이션에서 SVG 아이콘을 손쉽게 사용할 수 있도록 지원하는 라이브러리 입니다. 인기 있는 Feather 아이콘을 기반으로 제작되었으며, 1000개 이상의 일관성 있는 디자인의 아이콘을 제공합니다. 또한 실제 프로젝트에서 사용...

2025년 6월 16일226

Java 이미지 최적화 라이브러리 Thumbnailator

Thumbnailator 소개 Thumbnailator는 Java 기반의 간편하고 강력한 이미지 처리 라이브러리로, 특히 이미지 리사이징 및 썸네일 제작에 최적화되어 있습니다. 직관적인 API로 빠른 개발이 가능하며, 다양한 이미지 형식을 지원합니다. 주요 특징 간결하...

2025년 6월 11일221