Translation:
html
Axios를 사용한 React에서 HTTP GET 호출 수행: 종합 가이드
목차
- 소개
- React에서 HTTP 호출 이해
- Axios 소개
- Axios 설치
- React 애플리케이션에서 Axios 설정
- 데이터를 가져오는 클라이언트 메서드 생성
- Promise 및 오류 처리
- SamplePage 컴포넌트와 Axios 통합
- API 호출 테스트
- 결론
소개
현대 웹 개발 분야에서 효율적인 데이터 가져오기는 매우 중요합니다. 동적 싱글 페이지 애플리케이션을 구축하든 복잡한 웹 플랫폼을 개발하든, 신뢰할 수 있는 HTTP 호출을 수행하는 능력은 필수적입니다. 이 가이드는 인기 있는 프로미스 기반 HTTP 클라이언트인 Axios를 사용하여 React에서 HTTP GET 요청을 수행하는 방법을 자세히 다룹니다. 설치 과정, React 애플리케이션에서 Axios 설정, 응답 및 오류 처리, 그리고 Axios를 React 컴포넌트와 통합하여 데이터를 원활하게 가져오고 표시하는 방법을 살펴보겠습니다.
React에서 HTTP 호출 이해
HTTP 호출은 웹 애플리케이션의 기본 요소로, 서버와의 통신, 데이터 검색 및 콘텐츠를 동적으로 업데이트할 수 있게 합니다. React에서 이러한 호출을 효율적으로 관리하면 애플리케이션이 반응성이 높고 사용자 친화적으로 유지됩니다. React는 HTTP 요청을 수행하기 위한 기본 메서드를 제공하지만, Axios와 같은 전문화된 라이브러리를 활용하면 프로세스를 단순화하고 향상된 기능을 제공할 수 있습니다.
Axios 소개
Axios는 브라우저와 Node.js용 프로미스 기반 HTTP 클라이언트입니다. REST 엔드포인트로 비동기 HTTP 요청을 보내고 CRUD 작업을 수행하기 위한 사용하기 쉬운 API를 제공합니다. Axios는 그 단순성, 구형 브라우저 지원, 자동 JSON 데이터 변환 및 강력한 오류 처리 기능 덕분에 돋보입니다. React와 통합될 때, Axios는 데이터 가져오기 과정을 간소화하여 개발 워크플로우를 더 효율적으로 만듭니다.
Axios를 선택하는 이유
특징 | Axios | 기본 Fetch API |
---|---|---|
브라우저 지원 | 넓음, 구형 브라우저 포함 | 제한적, 최신 브라우저만 지원 |
데이터 변환 | 자동 JSON 변환 | 수동 JSON 파싱 |
인터셉터 | 예, 요청/응답용 | 아니요 |
오류 처리 | 포괄적 | 기본적 |
요청 취소 | 지원됨 | 구현 복잡 |
편의 메서드 | 예 (get, post) | 제한된 유틸리티 메서드 |
Axios 설치
React 프로젝트에 Axios를 통합하려면 npm을 통해 설치해야 합니다. 특정 버전을 설치하면 호환성을 유지하고 버전 업데이트로 인한 예기치 않은 문제를 방지할 수 있습니다.
설치 명령
1 |
npm install axios@1.6.2 |
참고: 원하는 버전 번호로 1.6.2를 교체하여 환경 간 일관성을 보장하세요.
React 애플리케이션에서 Axios 설정
Axios가 설치되면, 다음 단계는 React 프로젝트 내에서 Axios를 설정하는 것입니다. 이는 기본 URL을 구성하고 HTTP 요청을 수행하기 위한 유틸리티 메서드를 생성하는 것을 포함합니다.
기본 URL 구성
1 2 3 |
// src/config.js export const BASE_URL = 'http://localhost:3000'; |
데이터를 가져오는 클라이언트 메서드 생성
전용 클라이언트 파일에 HTTP 요청을 중앙 집중화하면 코드의 유지보수성과 재사용성이 향상됩니다. 다음은 Axios를 사용하여 데이터를 가져오는 메서드를 생성하는 방법입니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
// src/client/client.js import axios from 'axios'; import { BASE_URL } from '../config'; const fetchGetData = (url) => { return axios .get(`${BASE_URL}${url}`) .then(response => response.data) .catch(error => { console.error('Error fetching data:', error); throw error; }); }; export { fetchGetData }; |
설명
- Axios 및 설정 가져오기: HTTP 요청을 수행하기 위해 Axios를 가져오고, 설정 파일에서 BASE_URL을 불러옵니다.
- fetchGetData 메서드 생성: 이 메서드는 URL을 받아 GET 요청을 수행하고 데이터를 반환합니다.
- 오류 처리: 요청 중 발생한 오류는 잡히고, 콘솔에 기록되며, 추가 처리를 위해 다시 throw됩니다.
Promise 및 오류 처리
Axios 작업은 프로미스를 반환하여 비동기 호출을 효과적으로 처리할 수 있게 합니다. 적절한 오류 처리는 네트워크 장애나 잘못된 URL과 같은 문제를 우아하게 관리할 수 있도록 애플리케이션을 보장합니다.
컴포넌트에서 클라이언트 메서드 사용하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
// src/pages/SamplePage.js import React, { useEffect } from 'react'; import { fetchGetData } from '../client/client'; const SamplePage = () => { useEffect(() => { const apiUrl = '/api/data'; // Replace with your API endpoint fetchGetData(apiUrl) .then(data => { console.log('API Response:', data); }) .catch(error => { console.error('Error handling response:', error); }); }, []); return ( <div> <h1>Sample Page</h1> {/* Your UI components go here */} </div> ); }; export default SamplePage; |
설명
- fetchGetData 가져오기: 데이터를 가져오기 위해 클라이언트 메서드를 가져옵니다.
- useEffect 후크 사용하기: 이는 컴포넌트가 마운트될 때 API 호출이 이루어지도록 보장합니다.
- Promise 처리하기: .then 블록은 성공적인 응답을 처리하고, .catch 블록은 오류를 관리합니다.
SamplePage 컴포넌트와 Axios 통합
기능을 시연하기 위해, React 컴포넌트 내에서 Axios 호출을 통합하여 홈페이지를 렌더링하는 컴포넌트를 만들어 보겠습니다.
컴포넌트 설정하기
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
// src/pages/SamplePage.js import React, { useEffect, useState } from 'react'; import { fetchGetData } from '../client/client'; const SamplePage = () => { const [apiData, setApiData] = useState(null); useEffect(() => { const apiUrl = '/api/data'; // Replace with your API endpoint fetchGetData(apiUrl) .then(data => { setApiData(data); console.log('API Response:', data); }) .catch(error => { console.error('Error handling response:', error); }); }, []); return ( <div> <h1>Sample Page</h1> {apiData ? ( <pre>{JSON.stringify(apiData, null, 2)} |
) : (
데이터를 로드 중입니다...
)}