짬처리의 미학: Node.js가 싱글 스레드로 살아남는 법이분 전산학부 졸업한 거 아닌가요?/Web2026. 3. 9. 01:23
728x90
반응형
너무 전통적인 백엔드 공부를 안 했어서,, 지금이라도 정리해본다.
Node.js가 뭐냐! 팜미나이한테 물어본다면 이렇게 나온다.
Node.js는 JavaScript를 브라우저 밖(서버 측)에서도 실행할 수 있게 해주는
오픈 소스, 크로스 플랫폼 JavaScript 런타임 환경입니다.
그런데 이런거 문제가 뭐냐면 영영사전처럼 모르는 단어를 찾으면 그 안에서 모르는 단어가 더 개많이 나온다는 것이다! 이거 말고도 본문 설명에 모르는 게 많아서 한 번에 물어봤다.

- 크로스 플랫폼: 하나의 소스 코드로 작성된 소프트웨어가 여러 운영체제에서 동일하게 작동
- 런타임 환경: 소프트웨어가 실행되고 있는 동안 필요한 라이브러리, 환경 변수, 메모리 등을 관리해 주는 인프라
- 콜백 함수: 다른 함수의 인자로 전달되어서, 특정 작업이 완료된 후나 특정 이벤트가 발생했을 때 "나중에 호출(Call back)"되는 함수
- 스레드: 프로세스(실행 중인 프로그램) 내에서 실제로 작업을 수행하는 주체
- 이벤트 루프: 발생한 이벤트(클릭, 데이터 로드 등)를 계속 감시하면서, 실행할 작업이 생기면 이를 순서대로 처리해 주는 무한 반복 시스템. Node.js가 싱글 스레드지만 이벤트 루프 덕분에 많은 일을 동시에 처리할 수 있다.
그래서 도대체 Node.js가 뭐냐?
JavaScript를 사용하여 웹 브라우저 밖(서버 환경)에서
데이터를 주고받을 수 있도록 구축된 백엔드 애플리케이션
이럴 거면 왜 강조했나 싶을 정도로 대부분의 문장에 볼드체를 했는데 그만큼 중요하기 때문이다,,
Apache나 PHP 같은 전통적인 서버는 요청이 들어올 때마다 스레드를 배정해야 했다. 그치만 Node.js를 사용하면 스레드 하나로도 처리할 수 있다. 무엇 덕분에? 바로 이벤트 루프 덕분에.
Node.js는 요청을 받으면 이걸 "이벤트"로 인식하고, 미리 등록된 콜백 함수를 실행한다. 본인이 직접 하는 게 아니라 다른 곳으로 떠넘기는 것이다. 그러니 당연히 비동기 논블로킹(Asynchronous Non-blocking) I/O다.

간단한 것만 지가 하고 어려운 거는 짬처리 때린다.
싱글 스레드는 여전히 요청을 받다가 짬찌가 나와서 일을 끝냈다고 콜백 함수를 Task Queue에 올려두면 이걸 그대로 가져다가 대접한다.
728x90
반응형
'이분 전산학부 졸업한 거 아닌가요? > Web' 카테고리의 다른 글
| docker-compose.yml 뜯어보기 (1) | 2025.12.26 |
|---|---|
| 프론트엔드 & 백엔드 포함된 초간단 서비스 만들어 보기 - (7) 투두 리스트 앱 하나씩 뜯어보기 (백엔드) (0) | 2024.11.05 |
| 프론트엔드 & 백엔드 포함된 초간단 서비스 만들어 보기 - (6) 투두 리스트 앱 하나씩 뜯어보기 (프론트엔드) (2) | 2024.11.05 |
| 프론트엔드 & 백엔드 포함된 초간단 서비스 만들어 보기 - (5) 투두 리스트 앱 실행하기! (1) | 2024.10.29 |
| 프론트엔드 & 백엔드 포함된 초간단 서비스 만들어 보기 - (4) 백엔드의 주요 기술 스택(메시지 브로커, 보안, 로그 및 모니터링) (1) | 2024.10.29 |
@팜팜이S :: 팜팜은행
한국은행 들어갈 때까지만 합니다