await는 async 함수 안에서만 쓸 수 있기 때문에, await를 쓰려면 반드시 async를 추가해야 합니다.
그런데 이걸 이렇게만 들으면 "음... 그렇구나" 하고 넘기기 쉬워요.
하지만 이 원리를 제대로 이해하면, 코드가 훨씬 깔끔해지고, 비동기 처리에 대한 감각도 빠르게 늘어요.
오늘 글에서는 왜 async가 필요한지, await는 뭘 하는 건지, 그리고 실제 예시를 통해 자연스럽게 이해하는 방법까지 차근차근 설명해드릴게요.
끝까지 읽으면, 누가 물어봐도 자신 있게 설명할 수 있게 될 거예요!
왜 async를 추가해야 하는 걸까?
자, 먼저 await가 뭔지부터 짚어야겠죠.
await는 비동기 작업이 끝날 때까지 기다려주는 키워드입니다.
그러니까 "야, 이 작업 다 끝날 때까지 다른 거 하지 말고 기다려!" 이런 명령을 내리는 거예요.
그런데 문제는, 자바스크립트나 파이썬 같은 언어에서는,
기본적으로 '기다리는' 걸 싫어해요.
한 번이라도 '기다려'를 걸어버리면 프로그램 전체가 멈춰버릴 수도 있으니까요.
그래서 "내가 일부러 기다릴게" 라는 의사를 명확히 해야 합니다.
이걸 선언하는 게 바로 async입니다.
요약:
- await를 쓰려면 "나는 비동기 작업을 의도적으로 기다릴 준비가 됐다"고 말해야 한다.
- 이 준비 신호가 바로 async이다.
쉽게 이해하는 예시 하나
어릴 때, 엄마 심부름을 갔다고 생각해볼게요.
엄마: "가게 가서 우유 사와!"
나: "네!" (바로 출발)
이건 동기 작업입니다. 바로 갔다 오죠.
그런데 가게가 문을 닫았어요. 10분 뒤에 연대요.
이때 나는:
- 그냥 멍하니 10분 기다릴 수도 있고
- 다른 심부름을 먼저 하러 갔다 올 수도 있어요.
자바스크립트나 파이썬은 기본적으로 다른 심부름 먼저 하자는 쪽입니다.
가게가 열릴 때까지 멈춰있지 않고 다른 코드들을 쭉쭉 실행하려고 해요.
그런데 내가 꼭 가게 앞에서 10분을 기다려야 하는 상황이라면?
나: "엄마, 나 이건 꼭 기다려야 해. 다른 거 안 하고 여기 있을게."
이 말을 하는 게 async입니다.
그리고 기다리는 행동이 await인 거죠.
코드로 보면 더 명확해진다
1. async 없이 await를 쓰려고 하면?
function getData() {
let result = await fetch('https://example.com/data');
console.log(result);
}
이렇게 쓰면 오류가 납니다.
"await is only valid in async functions" (await는 async 함수 안에서만 쓸 수 있다)라는 에러가 뜨죠.
2. async를 추가하면?
async function getData() {
let result = await fetch('https://example.com/data');
console.log(result);
}
이제 정상적으로 동작합니다!
fetch 작업이 끝날 때까지 기다린 다음, 그 결과를 console.log로 찍습니다.
왜 이걸 꼭 알아야 할까?
- 비동기 처리가 필요한 코드는 무조건 async를 선언해줘야 합니다.
- await를 쓸 때 실수로 빠뜨리면 코드가 멈추거나 에러가 터질 수 있어요.
- 깔끔한 비동기 처리는 async와 await를 제대로 사용하는 데서 시작합니다.
요즘은 웹 개발이든, 서버 사이드 개발이든, 비동기 처리를 잘 다루는 사람이 훨씬 유리합니다.
작은 차이지만, 이걸 이해한 사람과 그냥 암기만 한 사람은 코드를 짜는 속도와 품질에서 큰 차이가 나요.
마무리
await를 쓰기 위해서는 반드시 async를 추가해야 합니다.
이는 개발자에게 비동기 작업을 안전하게 다루겠다는 약속과 같아요.
조금 귀찮아 보여도, async/await를 잘 다루는 건 개발 실력을 한 단계 업그레이드하는 지름길입니다.
다음에 비슷한 코드가 나오면, "아 맞아! 기다릴 준비를 해야 하니까 async를 넣는 거였지"라고 자연스럽게 떠올릴 수 있을 거예요.
여기까지 읽으셨다면, 이제 async/await를 그냥 '써야 하니까 쓰는 것'이 아니라, '왜' 써야 하는지 진짜로 이해한 겁니다.
멋진 개발자가 되는 길, 함께 차근차근 걸어가봅시다. 🚀
'WEB&APP' 카테고리의 다른 글
서버 없이 시작하는 법, Firebase 모르면 프로젝트 늦어진다 (0) | 2025.04.29 |
---|