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

clock icon

posted 2 months ago

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);
  }
);

 

Top Questions