728x90

Callback hell

1. 개요

Callback hell은 JavaScript에서 비동기 처리를 위해 사용되는 콜백 함수를
중첩해서 사용할 때 발생하는 코드 구조 상의 문제를 뜻한다.


2. 원인

Callback 함수가 중첩되면 코드가 길어지고 가독성이 떨어진다.
실행 순서 또한 파악하기 어려워져 코드의 유지 보수가 어렵다.
Callback 함수는 setTimeout이나 이벤트 핸들러, 비동기 작업인
파일 읽기나 데이터 베이스를 다루는 함수 등 다양한 상황에 사용된다.


3. 해결책

Promise, async/await와 같은 비동기 처리 방식을 사용하여 해결할 수 있다.
Promise는 비동기 작업의 결과를 나타내는 객체로 작업이 완료될 때 결과값을 반환한다.
작업이 성공적으로 끝나면 resolve, 그렇지 않으면 reject함수를 호출하고,
thencatch 메서드를 걸어 결과에 대한 정보를 처리할 수 있다.

async/awaitPromise를 더욱 쉽게 사용할 수 있게 만든 비동기 처리 문법이다.
함수 이름 앞에 async 키워드를 걸면, 자동적으로 Promise를 반환한다.
awaitasync 함수 내에서만 사용할 수 있는데, await가 지정된 내용에 대해
처리될 때 까지 async 함수를 멈추는 특징이 있다.

728x90

'TIL > 기본' 카테고리의 다른 글

[TIL] 함수형 프로그래밍  (0) 2023.03.29
[TIL] 다형성  (0) 2023.03.29
[TIL] Base64  (0) 2023.03.29
[TIL] UTF-8  (0) 2023.03.28
[TIL] 프로세스와 스레드  (0) 2023.03.28

+ Recent posts