저는 오늘 서버와 통신하는 방법들 중 몇가지를 소개하겠습니다 제가 오늘 소개하는 방법들은 모두 비동기 통신 방법입니다 일단 알아두면 좋은 지식이니 먼저 비동기와 그 반대인 동기가 무엇인지 먼저 살펴보겠습니다!

그림을 보면 동기 처리의 예시는 주문을 하고 음료를 받는 것까지 한명이 모두 끝날 때까지 기다려야 하지만 동기는 진동벨을 받고 여러 사람을 동시에 처리할 수 있습니다 요약하자면 동기는 순차적으로 작업을 수행하고 해당 작업이 수행중이라다음 작업은 대기하여야 합니다 반면에 비동기식은 요청이 들어오면 해당 작업이 끝나지 않았더라도 계속 요청을 받습니다
여기서 잠깐 일단 Promise란 무엇인지 간단하게 설명드리겠습니다
비동기 연산이 종료된 이후에 결과 값과 실패 사유를 처리하기 위한 처리기로 다음 중 하나의 상태를 가집니다
Promise 연결
then 메서드는 Promise 객체가 해결되면(즉, 성공적으로 결과를 반환하면) 해당 콜백을 실행합니다 then은 새로운 Promise를 반환하므로 체이닝을 통해 여러 비동기 작업을 순차적으로 처리할 수 있습니다try 블록 안에 작성합니다catch 블록으로 제어가 이동합니다try 블록에서 발생한 예외를 처리하기 위해 사용됩니다try 블록에서 예외가 발생하면 해당 예외를 처리하기 위한 catch 블록이 실행됩니다 여러 개의 catch 블록을 사용할 수도 있으며 각 catch 블록은 특정 예외 타입을 처리할 수 있습니다finally 블록은 try와 catch 블록의 실행 결과에 관계없이 항상 실행됩니다 주로 자원 정리나 파일 닫기, 데이터베이스 연결 종료 등과 같은 작업에 사용됩니다일단 Fetch는 두개의 인자를 필요시 합니다
코드 예시
fetch (URL,
method: 'POST', // HTTP 메서드 (GET, POST, PUT, DELETE 등)
header: {
'Content-Type': 'application/json', // 요청 헤더
},
body: JSON.stringify(), // 요청 본문 (POST, PUT 등에 사용)
credentials: 'include' // 자격 증명 포함 여부
})
.then(response => {
if (!response.ok) {
throw new Error('오류!!');
}
return response.json();
})
.then(data => {
console.log(data); // 서버로부터 받은 데이터를 처리합니다.
})
.catch(error => {
console.error(error);
});

/* axios 라이브러리 설치 */
// npm 사용
npm i axios
// yarn 사용
yarn add axios
대표 메서드들
코드 예시
axios.post(URL)
.then(response => {
console.log(response.data);
})
.catch(error => {
console.error('Error:', error);
});
간단한 HTTP 요청 처리, Vanilla JS로 통신, react-native에서는 Fetch가 좋다고 합니다 왜냐하면 빠른 업데이트 때문입니다 그리고 좀 더 많은 기능과 장점, 사용자 편의가 필요할 때 또는 react 환경에서는 axios가 훨씬 편리하다고 합니다 이 방법들을 확실히 숙지하여 적절히 잘 사용하셨으면 좋겠습니다
| [코딩 테스트] (제일 작은 수 제거하기) 나의 첫 코딩 테스트 트러블 슈팅!! ⚽(+ shift, sort, pop, splice, Math.min) (3) | 2024.09.28 |
|---|---|
| [JavaScript] Cropper.js가 뭘까? ✂️ (8) | 2024.09.11 |
| [Formatter] ESLint가 뭘까?? (2) | 2024.09.06 |
| Websocket💬이란?? (+Polling) (2) | 2024.08.23 |
| [Web Storage] 💾LocalStorage, SesstionStorage 그리고 🍪Cookie까지 (3) | 2024.08.17 |