동기(Synchronous) vs 비동기(Asynchronous)
- 동기(Synchronous): 동기 방식은 작업을 순서대로 하나씩 처리합니다. 한 작업이 끝나야 다음 작업이 시작될 수 있습니다. 이 방식은 코드의 실행 순서가 예측하기 쉽고 이해하기 간단하지만, 어떤 작업이 오래 걸리면 다음 코드의 실행이 그 작업이 완료될 때까지 멈춰 있게 되는 단점이 있습니다. (순차적으로 진행할때 사용)
- 비동기(Asynchronous): 비동기 방식은 작업이 완료될 때까지 기다리지 않고 다음 코드를 실행합니다. 대표적으로 네트워크 요청, 파일 시스템 작업 등이 이 방식으로 처리됩니다. 비동기 작업을 관리하기 위해 자바스크립트는 콜백 함수, 프로미스(Promises), async/await 등의 기법을 사용합니다. (여러일을 한번에 할때 사용)
axios와 같은 api불러오는 기능들은 대부분 비동기가 디폴트이다 따라서 await키워드를 사용하여 비동기 작업이 완료될 때까지 기다린다.
async function fetchData() {
try {
const response = await axios.get('https://api.example.com/data');
console.log(response.data); // 데이터 처리
} catch (error) {
console.error('데이터를 불러오는 데 실패했습니다', error);
}
}
다음과 같이 데이터를 api로 불러올때까지 기다렸다가 reponse에 저장해야하기 때문에 await함수를 써주게된다.
await를 사용해줄땐 함수에 async를 써줘야한다.
중복선언을 방지하기위해 변수는 var대신 let, const를 사용한다.
중복선언을 방지하기위해 함수는 function(){} 대신 아래와같이 화살표함수를 사용하게된다.
const processData = async () => {
const data = await fetchData();
console.log(data);
};
'nest.js' 카테고리의 다른 글
스크랩핑, 크롤링, 브라우저api(2024.05.12) (0) | 2024.05.14 |
---|---|
데이터베이스(SQL,NoSQL,ORM,ODM)2024.05.12 (0) | 2024.05.14 |
GraphQL, apollo 서버 (2024.5.11) (1) | 2024.05.12 |
cors(2022.05.11) (0) | 2024.05.11 |
swagger(2024.5.11) (0) | 2024.05.11 |