1. 기존 서버의 한계: '기다림의 비효율', 블로킹 I/ONode.js가 등장하기 전, Java, PHP, Ruby 등으로 만들어진 대부분의 서버는 '요청 하나당 스레드(Thread) 하나' 방식으로 동작했다.스레드(Thread): 서버가 처리하는 작업의 단위로, '일꾼'에 비유할 수 있다.이 방식의 가장 큰 문제는 I/O(입출력) 작업에서의 '기다림', 즉 블로킹(Blocking)이다.식당 비유: 스레드-퍼-리퀘스트(Thread-per-Request) 방식손님(요청)이 오면, 종업원(스레드) 한 명이 그 손님에게 전담 배정된다.손님이 스테이크(DB 조회, 파일 읽기 등)를 주문한다.담당 종업원은 주방에서 요리가 끝날 때까지, 다른 아무 일도 하지 않고 그 앞에서 가만히 기다린다. (블로킹 발생)만약 ..