fetch('https://example.com/data')
.then(response => response.json())
.then(data => console.log(data));
import axios from 'axios';
axios.get('https://example.com/data')
.then(response => console.log(response.data));
useEffect(() => {
fetch('https://example.com/data')
.then(response => response.json())
.then(data => setData(data));
}, []);
const handleClick = () => {
axios.get('https://example.com/data')
.then(response => setData(response.data));
};
장점:
- 실시간 데이터 처리: 서버에서 최신 데이터를 실시간으로 가져올 수 있다.
- 분리된 관심사: 프론트엔드와 백엔드 로직이 분리되어, 각각 독립적으로 개발 및 유지보수할 수 있다.
단점:
- 네트워크 지연: 네트워크 지연으로 인한 성능 문제가 발생할 수 있다.
- 보안 문제: CORS(Cross-Origin Resource Sharing) 문제가 발생할 수 있으며, API 키와 같은 중요 정보 노출에 주의해야 한다.
데이터 CRUD(Create, Read, Update, Delete): 서버의 데이터를 생성, 조회, 수정, 삭제한다.
인증 및 권한 관리: 사용자 인증 및 권한에 따른 데이터 접근을 관리한다.
외부 서비스 통합: 날씨 정보, 지도 서비스, 결제 시스템 등 외부 API와의 통합을 통해 다양한 기능을
제공한다.
리얼타임 통신: 웹소켓 등을 사용하여 실시간으로 데이터를 교환하고 상호작용한다.
1.API 서버 준비: 먼저 백엔드에서 API 서버를 구성한다. 이 서버는 JSON 형식의 데이터를 반환한다고 가정한다.
2.리액트에서 API 호출: 리액트 컴포넌트에서 API를 호출하여 데이터를 가져온 후, 상태에 저장한다.
const [data, setData] = useState([]);
useEffect(() => {
fetch('https://example.com/data')
.then(response => response.json())
.then(data => setData(data));
}, []);
3.데이터 표시: 가져온 데이터를 컴포넌트에서 표시한다.
return (
<div>
{data.map(item => (
<div key={item.id}>{item.name}</div>
))}
</div>
);