
📅 2025-11-10
➡️ axios에 대해 새롭게 알게 된 것 또는 헷갈리는 부분 정리
node.js와 브라우저를 위한 Promise기반 HTTP 클라이언트yarn add axios

get은 서버에 저장된 데이터를 불러올 때 사용axios.get(url[, config])url에는 서버의 url이 들어가고, config에는 기타 여러가지 설정을 추가할 수 있음
const { data } = await axios.get("http://localhost:4000/todos");
setTodos(data);
post는 입력한 데이터를 서버에 전송할 때 사용axios.post(url[, data[, config]])const body = { title: "new todo" };
const { data: created } = await axios.post(`${BASE_URL}/todos`, body);
setTodos((prev) => [...prev, created]);delete는 서버에 저장된 데이터를 삭제할 때 사용axios.delete(url[, config])const onDelete = async (id) => {
await axios.delete(`${BASE_URL}/todos/${id}`);
setTodos((prev) => prev.filter((t) => t.id !== id));
};PUT은 전체 수정, PATCH는 부분 수정)axios.patch(url[, data[, config]])await axios.patch(`${BASE_URL}/todos/${id}`, { title: "updated title" });// fetch
const res = await fetch('/todos');
const data = await res.json();
// axios
const { data } = await axios.get('/todos');
axios는 fetch와 달리 response.json()을 호출하지 않아도 됨axios가 내부적으로 응답을 JSON으로 자동 변환해주기 때문| 항목 | fetch | axios |
|---|---|---|
| 응답 데이터 파싱 | 수동 (response.json()) | 자동 (response.data) |
| 반환 값 | Response 객체 | 실제 JSON 데이터 |
| 에러 처리 | 수동으로 상태코드 확인 필요 | 200~299 외 상태는 자동 reject |
| 브라우저 호환성 | 일부 구형 브라우저 미지원 | 호환성 우수 |