| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 |
Tags
- edwith
- 오블완
- 쿠키런킹덤크리스마스
- 쿠킹덤
- 개발자
- oracle
- Unity
- 자바스크립트
- Eclipse
- 홀리데이익스프레스
- 티스토리챌린지
- dart
- MySQL
- react
- 유니티
- 크리스마스
- 쿠키런킹덤
- SQL
- 이클립스
- programmers
- MERN
- JavaScript
- Java
- HTML
- 자바
- 웹개발
- 쿠키런킹덤공략
- 딥러닝
- 프로그래머스
- Spring
Archives
- Today
- Total
Dev study and Repost
자바스크립트 비동기 처리 쉽게 이해하기: 콜백 지옥 탈출, Promise와 async/await 정리 본문
반응형
자바스크립트 비동기 처리 쉽게 이해하기: 콜백 지옥 탈출, Promise와 async/await 정리
평상시 익숙하지만, 갑자기 헷갈리는 경우가 있는 동기/비동기 코딩..
짧게 핵심있게, 요약 정리해보았다.
동기 vs 비동기
동기(Sync) : 한 작업이 끝나야 다름 작업 처리, 직렬 처리
비동기(Async): 기다리지 않고 다음 작업 진행, 병렬 처리
비동기 처리 방식
*콜백 callback
초창기 비동기 방식
function oldTask(cb) {
setTimeout(() => cb("완료!"), 1000);
}
oldTask(result => console.log(result));
단점, 콜백 중첩으로 콜백 지옥 발생
*프로미스 Promise
비동기 결과를 다루는 객체
const fetchData = () => new Promise(resolve => {
setTimeout(() => resolve("완료!"), 1000);
});
fetchData()
.then(data => console.log(data))
.catch(err => console.error(err))
.finally(() => console.log("끝!"));
*싱크/어싱크 Sync/Async
async function load() {
try {
const data = await fetchData();
console.log(data);
} catch (err) {
console.error("에러:", err);
}
}
promise를 더 직관적으로 쓰는 문법,
await 덕분에 코드가 동기처럼 읽혀 가독성이 높음.
*타이머 함수(setTimeout / setInteral)
setTimeout(() => console.log("3초 후 실행"), 3000);
setInterval(() => console.log("반복 실행"), 1000);
요약
Callback: 옛날 방식, 콜백 지옥 문제
Promise: 비동기 결과 표현 (then/catch)
async/await: Promise를 더 쉽게, 실무 표준
setTimeout/Interval: 기본 비동기 도구
try/catch: async/await 에러 처리
비동기 처리의 진화: Callback > Promise > async/await
실무에서는 async/await + try/catch 조합을 사용하고 있다.
끝!
반응형
'IT INFO' 카테고리의 다른 글
| Moment.js 설치와 간단 활용법 npm install moment 날짜와 시간 다루기 (0) | 2025.10.01 |
|---|---|
| vscode 줄바꿈(Word Wrap) 설정 방법 간단 안내 - 코드가 한줄로 길게 보일때 에디터 옵션, 편집, 단축키, 스크린샷 안내 (0) | 2025.09.30 |
| 맥북 node js 설치 macOS Node.js install 설치 버전 확인 (1) | 2025.06.04 |
| JetBrains 의 코딩 에이전트 Junie EAP 대기자 신청 (0) | 2025.02.01 |
| 효율적인 클라우드 가상화의 핵심: Docker, Node.js, Visual Studio Code (1) | 2024.11.01 |
Comments