1. 비동기란 무엇인가? (Blocking vs Non-blocking)자바스크립트 엔진은 한 번에 하나의 작업만 수행할 수 있습니다. 하지만 네트워크 요청이나 타이머 같은 작업은 시간이 오래 걸립니다.동기(Synchronous): 앞선 작업이 끝날 때까지 다음 작업을 멈추고 기다립니다. (화면 멈춤 현상 발생)비동기(Asynchronous): 작업을 요청한 뒤, 결과가 나오기 전이라도 다음 코드를 먼저 실행합니다.2. 콜백 지옥 (Callback Hell)Promise가 등장하기 전에는 비동기 처리를 위해 함수 안에 함수를 계속 중첩시키는 '콜백' 방식을 사용했습니다. 이는 가독성을 해치고 에러 처리를 매우 어렵게 만듭니다.JavaScript // ❌ 콜백 지옥의 예시getData(function(a)..