그알것 — 그럼에도 알아야 할 것들
홈질문커뮤니티
로그인
그알것 — 그럼에도 알아야 할 것들

Service

  • 홈
  • 소개
  • 질문
  • 커뮤니티

My

  • 내 워크스페이스
  • 저장한 질문
  • 작성한 답변

Policy

  • 이용약관
  • 개인정보처리방침
  • 문의

© 2026 그알것 · What Still Matters

질문 목록JavaScript
JavaScript

Node.js의 주요 특징은 무엇인가요?

실무4/5
설계3/5
인간3/5
기초4/5

면접관의 질문 의도

지원자가 '싱글 스레드 + 비동기'를 구호로만 외웠는지, 아니면 이벤트 루프와 I/O 위임 구조를 머릿속에 그리고 워크로드별 한계까지 짚을 수 있는지를 가른다.

큐레이션 답변

학습 자료

Node.js는 V8 위에 libuv 이벤트 루프를 얹어 자바스크립트를 서버에서 돌리는 런타임이다. 단일 스레드가 콜 스택을 비우는 동안 파일·네트워크 I/O는 libuv 스레드 풀과 OS 비동기 API로 떠넘기고, 완료된 작업만 콜백·태스크 큐로 돌아와 처리된다. 그래서 동시 연결은 많이 받지만, 루프 위에 CPU 작업을 올리는 순간 그 한 요청이 다른 모든 요청을 막는다.

좋은 답변 구조

  1. 01V8 + libuv 기반 런타임이라는 정의에서 출발한다
  2. 02단일 스레드 이벤트 루프와 논블로킹 I/O가 어떻게 맞물려 돌아가는지 설명한다
  3. 03I/O 동시성이 빛나는 워크로드와 CPU 바운드에서 무너지는 지점을 같이 보여준다
  4. 04워커 스레드·클러스터·다른 런타임으로 빠져나가는 선택지를 정리한다

자주 실수하는 포인트

싱글 스레드라는 말만 듣고 동시성 자체가 불가능하다고 답한다
CPU 바운드 연산을 그대로 루프 위에서 돌려도 비동기면 괜찮다고 본다
비동기 처리(동시)와 병렬 처리(멀티 코어)를 같은 개념으로 묶어 말한다
I/O는 무조건 빠르다고 말하고 libuv 스레드 풀이 고갈되는 경우를 놓친다

실무 맥락

  • 수많은 연결이 대부분 외부 API·DB 응답을 기다리는 BFF·게이트웨이 서버
  • 웹소켓·SSE로 다수 클라이언트와 양방향 연결을 길게 유지하는 실시간 서비스
  • 이미지 변환·암호화·파싱처럼 CPU를 오래 잡는 작업이 들어와 응답이 튀기 시작한 API 서버
  • JS 생태계와 코드 공유가 필요해 BE까지 Node로 통일한 풀스택 팀의 런타임 의사결정

본인 경험에 녹이는 힌트

특정 엔드포인트 하나가 느려지자 무관한 다른 요청까지 같이 늦어졌던 경험이 있다면 이벤트 루프 블로킹 사례로 연결할 수 있다

이미지 처리나 무거운 연산을 워커 스레드·별도 서비스로 빼본 적이 있다면 단일 스레드 한계 대응 사례로 풀 수 있다

Node와 다른 런타임(JVM·Go 등) 사이에서 서버를 골라본 경험이 있다면 워크로드 특성에 따른 런타임 선택 기준으로 정리할 수 있다

PM2 클러스터·Kubernetes 레플리카로 CPU 코어를 활용해본 경험이 있다면 단일 스레드를 수평으로 푸는 전략으로 엮을 수 있다

커뮤니티 인기 답변

전체 0개

아직 공개된 답변이 없어요. 첫 공개 답변을 남겨보세요.

관련 꼬리 질문

Q1이벤트 루프의 timers·poll·check 같은 단계는 어떤 순서로 돌고, 마이크로태스크는 어디서 처리되나요
Q2워커 스레드와 child process, 클러스터 모듈은 각각 언제 고르나요
Q3libuv 스레드 풀이 고갈됐다는 건 어떻게 감지하고 어떻게 대응하나요
Q4같은 워크로드를 Deno·Bun이나 다른 런타임으로 바꿀 때 무엇을 먼저 보겠어요
아직 답을 쓰지 않았어요.
큐레이션 답변과 다른 사람 답변을 보고, 자기 언어로 답을 정리해보면 학습 효과가 가장 큽니다.
목차
  • 01면접관의 질문 의도
  • 02큐레이션 답변
  • 03좋은 답변 구조
  • 04자주 실수하는 포인트
  • 05실무 맥락
  • 06본인 경험에 녹이는 힌트
  • 07커뮤니티 인기 답변준비중
  • 08관련 꼬리 질문