React async
비동기 처리는 기다림을 이벤트 루프와 Promise 상태로 분리한다
API 호출, 타이머, 파일 처리처럼 오래 걸리는 작업은 결과가 돌아올 때 다시 이어 붙이고, 그 사이 UI 응답성을 유지한다.
읽는 순서
동기 대기와 비동기 위임을 먼저 나누고, 콜백의 중첩 문제를 Promise와
async/await가 어떻게 정리하는지 본다.
| 방식 | 기다림 처리 | 대표 사용 | 확인 지점 |
|---|---|---|---|
| 동기 실행 | 앞 줄 완료까지 다음 줄이 멈춘다. | 짧은 계산, 즉시 끝나는 로직 | 긴 작업이 UI를 막지 않는지 본다. |
| Callback | 완료 후 실행할 함수를 넘긴다. | 이벤트, 타이머, 초깃값 처리 | 중첩과 오류 전파가 흐려지지 않는지 본다. |
| Promise | pending, fulfilled, rejected 상태로 결과를 가진다. | fetch, 체이닝, 후속 정리 | catch와 finally가 빠지지 않았는지 본다. |
| async/await | Promise 흐름을 동기식 문장처럼 읽게 한다. | 폼 제출, 데이터 로딩, try/catch | 병렬이 필요하면 Promise.all로 묶는다. |
Call Stack
현재 실행 중인 동기 코드가 쌓이고 빠진다.
Web API
타이머, 네트워크 요청처럼 브라우저가 맡는 작업이다.
Queue
완료된 콜백과 마이크로태스크가 다시 실행 순서를 기다린다.
Render
무거운 동기 코드가 길어지면 화면 갱신이 늦어진다.