Async/Await (TIL 45일차)

EenSung Kim·2021년 5월 20일
0

"Syntactic Sugar"


Intro (feat. syntactic sugar)

Promise 에 대해 아직 써야할 것이 많이 남았지만 일단 흐름에 따라 Async/Await 까지 먼저 정리해보려고 합니다. Async/Await 도 결국은 프로미스를 사용하는 방법 중 하나이기 때문입니다.

어떻게 그럴 수 있는지를 이해하려면 일단 Syntactic Sugar 라는 말을 이해할 필요가 있습니다. 한국어로 번역하면 통사론 설탕 내지는 문법적 설탕이라는 다소 괴이한 언어가 되는 탓에 사실상 원어로 바로 사용되는 것 같은데요. 쉽게 말해서 어떤 것을 조금 더 쉽게 사용할 수 있도록 제공되는 문법적인 도구라고 할 수 있을 것 같습니다.

자바스크립트에서 배열의 요소는 대괄호 [ ] 와 숫자를 사용해 접근할 수 있죠. arr 이라는 배열의 첫 번째 요소는 arr[0] 이 되는 것처럼요. 위키백과에서는 이런 것도 프로그래밍 언어가 제공하는 일종의 syntactic sugar 라고 말하고 있습니다.

너무 깊이 들어갈 필요는 없으니 이렇게 편의를 제공해주는 것을 syntactic sugar 라고 한다는 점, 그리고 Async/Await 은 프로미스를 조금 더 간결하게 사용할 수 있게 해주는 syntactic sugar 라는 점 정도로 정리하고 넘어가도록 하겠습니다.


Async/Await

Async/Await 은 Promise 를 보다 간결하게 사용할 수 있도록 도와줍니다. 애초에 프로미스 자체가 콜백 지옥을 벗어나기 위해 고안된 것이지만, 프로미스도 계속해서 then 으로 이어 프로미스 체이닝을 만들다 보면 또 다른 지옥을 만들게 되거든요.

사용 방법은 간단합니다. function 앞에 async 를 붙여주고, async 가 붙은 함수 안에서 await 으로 프로미스를 사용하는 것입니다. 아직 뭔가를 새롭게 만들어 정리할 정도의 경험치가 되지 않아, 실제 사용과 코드에 관한 것은 드림코딩 엘리님의 영상 링크로 대신하겠습니다.

(작년 말쯤 도입된 신규 문법을 통해 async 없이도 await 을 사용할 수 있다는 정보를 들었는데 확인해보지는 못했습니다. 실전에서 많이 활용되는 단계는 아니라고 합니다.)


비동기와 콜백, 프로미스, 그리고 Async/Await 까지, 충분히 소화하고 이해하려면 아직 많은 시간이 남았다는 생각이 듭니다. TIL 을 정리하다 보면 가끔 이 부분은 내가 잘 이해하고 있구나 할 때가 있는데, 지난 월요일부터 배우기 시작한 비동기 파트는 정반대네요. 그래도 꾸준히 성장하고 있다는 데 만족하기로 하면서, 욕심내지 않고 일단 배운 것을 조금씩 풀어놓는데 중점을 둬야겠습니다.

네..아직 소화하지 못했다는 핑계 같은 거구요. 계속해서 더 이해되는 대로 앞으로도 열심히 글을 남겨보겠습니다!!

profile
iOS 개발자로 전직하기 위해 공부 중입니다.

0개의 댓글