코드캠프 수강중 첫 주말 , Async/Await 동기와 비동기?

Jeong-Taek·2022년 9월 4일
1

코드캠프 일정중 맞이하는 첫 주말이다
하지만 주말은 주말일뿐 단지 평소보다 늦게 공부를 시작할 뿐이다.

오늘은 Async와/Await를 다뤄보도록 하겠다.

예전부터 강의를 들으면서 Async와 Await는 많이 들어봤지만 실제로 사용해본 적이 없어서 상당히 어려움을 느꼈다. 그래서 오늘은 조금 더 상세하게 알아보고자 한다.

async 키워드에 대해 알아보자

async는 function, (), 앞에 위치한다.

async function test(){
	return true;
}
const test = async () => {
	return true;
}

function앞에 async를 붙이면 그 함수는 항상 promise를 반환한다.
기본적으로 promise로 반환하지 않는 함수라도 resolved promise(이행상태의 promise)로 값을 감싸 promise를 반환하는 것.

await 키워드에 대해 알아보자

await문법은 무조건 async 함수 안에서만 작동한다.
해당 함수에서 await 키워드를 만나면 promise가 처리될 때까지 기다리는 것이다
promise가 처리되기를 기다리는 동안 다른 일을 할 수 있기 때문에 cpu리소스가 낭비되지 않는다.

비동기를 동기적으로 처리하는 방법에는 promise.then을 사용해 promise의 result값을 얻는 방법도 있는데 await문법을 사용하면 promise.then보다 쉽고 세련되게 결과 값을 얻을 수 가 있다.

결론적으로 개인적으로 이해한 부분은
보통 통신을 할 때 비동기 처리를 하게 되는데 통신을 하게 되면 컴퓨터 사양 혹은 네트워크 속도에 따라 통신에 대한 결과값을 받는 시간이 다를 것이다. 이 때 비동기 처리를 하게 되면 통신을 하는 동안 컴퓨터는 다른 일을 처리할 수 있는 것이고 이 과정을 할 수 있도록 만들어주는 것이 바로 async/await문법인 것이다.

추후 이 부분에 대해 공부를 더 하게 된다면 조금 더 심화적으로 다뤄보도록 하겠다 아디오스!

0개의 댓글