2026/07/30 2

[1일 1CS] 콜백 → Promise → async/await, 왜 이렇게 진화했나요?

자바스크립트의 역사를 살펴보면, 개발자들이 비동기 처리(오래 걸리는 작업을 백그라운드에 맡기는 것)를 다루는 방식이 크게 세 번의 진화를 거쳤습니다. 왜 굳이 새로운 문법이 계속 등장했을까요? 정답은 아주 단순합니다. 개발자들도 사람인지라 '복잡하고 읽기 힘든 것'을 끔찍하게 싫어했기 때문입니다. 오늘도 어김없이 카페 알바생의 비유를 통해 이 세 가지 방식이 어떻게 우리의 삶을 편하게 만들어주었는지 알아보겠습니다. 1. 콜백 (Callback): 꼬리에 꼬리를 무는 주문 (콜백 지옥)가장 초창기에 쓰던 방식입니다. 알바생에게 일을 시킬 때, "이 일이 끝나면 다음엔 이렇게 해주세요"라는 행동 지침(콜백 함수)을 함께 쥐여주는 것입니다. 카페에 가서 주문을 한다고 상상해 봅시다. "알바생님, 아메리카노 하..

[1일 1CS] 자바스크립트는 싱글스레드인데 어떻게 동시성을 처리할까?

"자바스크립트는 싱글스레드인데 어떻게 동시성을 처리하나요?" 몸이 하나(싱글스레드)인데 어떻게 여러 가지 일을 동시에(동시성) 할 수 있냐는 뜻이죠. 이 모순을 완벽하게 이해하기 위해서는 먼저 컴퓨터 공학에서 말하는 '동시에 일한다'는 말의 진짜 의미를 파악해야 합니다.1. 병렬성 vs 동시성: 진짜 동시와 가짜 동시두 가지 '동시'의 차이를 다시 한번 카페에 비유해 보겠습니다. 병렬성(Parallelism) 알바생 4명이 출근해서 각자 자기 커피 머신을 잡고, 4잔의 커피를 '물리적으로 똑같은 시간'에 1초의 오차도 없이 동시에 만드는 것입니다. 컴퓨터로 치면 멀티 코어, 멀티 스레드의 작업 방식입니다.동시성(Concurrency) 알바생은 1명뿐입니다. 하지만 이 알바생이 1번 손님 주문을 받고 커피..