FEInterview Prep

Velog

자식 프로세스: Node.js의 멀티태스킹

Node.js에서 자식 프로세스(Child Processes)를 사용하여 멀티태스킹을 구현하는 방법을 다루는 글로, spawn, exec, execFile, fork 네 가지 API의 특성과 사용 사례를 비교 설명합니다. 자식 프로세스는 CPU 집약적 작업, 외부 명령 실행, 프로세스 격리가 필요한 경우에 활용할 수 있는 Node.js의 핵심 멀티태스킹 메커니즘입니다.

2025-03-13·4분 읽기
Node.js
원문 보기 ↗

핵심 요약

이 아티클은 Node.js 실행 환경를 실무 판단 기준으로 다시 정렬해 주는 읽기 자료입니다. Node.js에서 자식 프로세스(Child Processes)를 사용하여 멀티태스킹을 구현하는 방법을 다루는 글로, spawn, exec, execFile, fork 네 가지 API의 특성과 사용 사례를 비교 설명합니다. 자식 프로세스는 CPU 집약적 작업, 외부 명령 실행, 프로세스 격리가 필요한 경우에 활용할 수 있는 Node.js의 핵심 멀티태스킹 메커니즘입니다.

이 아티클은 Node.js 실행 환경를 면접에서 바로 꺼낼 수 있는 답변 프레임으로 접어 두는 메모처럼 읽으면 좋습니다.

Node.js 실행 환경를 설명할 때 정의만 말하면 답변이 얕아지기 쉽습니다. spawn은 스트리밍 기반으로 대용량 출력을 처리하는 외부 명령 실행에 적합하다 실무 판단 근거와 면접 답변의 밀도를 동시에 끌어올릴 수 있습니다.

학습 포인트

면접 답변으로 연결할 학습 포인트입니다.

spawn은 스트리밍 기반으로 대용량 출력을 처리하

spawn은 스트리밍 기반으로 대용량 출력을 처리하는 외부 명령 실행에 적합하다 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.

spawn스트리밍기반으로대용량
자주 하는 오해

spawn은 스트리밍 기반으로 대용량 출력을 처리하를 개념으로만 기억하고 맥락 없이 적용하면 spawn은 스트리밍 기반으로 대용량 출력을 처리하는 외부 명령 실행에 적합하다 패턴 이름만 외우고 적용 조건을 구분하지 않으면 비슷한 문제에 같은 해법을 남용하게 됩니다.

exec는 결과를 버퍼링하여 콜백으로 받으며 셸 명

exec는 결과를 버퍼링하여 콜백으로 받으며 셸 명령 실행에 편리하지만 셸 인젝션 위험이 있다 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.

exec결과를버퍼링하여콜백으로
자주 하는 오해

exec는 결과를 버퍼링하여 콜백으로 받으며 셸 명를 개념으로만 기억하고 맥락 없이 적용하면 exec는 결과를 버퍼링하여 콜백으로 받으며 셸 명령 실행에 편리하지만 셸 인젝션 위험이 있다 패턴 이름만 외우고 적용 조건을 구분하지 않으면 비슷한 문제에 같은 해법을 남용하게 됩니다.

fork는 Node

fork는 Node.js 프로세스를 생성하며 IPC(프로세스 간 통신) 채널로 메시지를 주고받을 수 있다 이 포인트를 알고 있으면 비슷한 상황에서 왜 이 접근을 선택하는지까지 설명할 수 있습니다.

forkNode.jsIPC프로세스를
자주 하는 오해

fork는 Node를 개념으로만 기억하고 맥락 없이 적용하면 fork는 Node.js 프로세스를 생성하며 IPC(프로세스 간 통신) 채널로 메시지를 주고받을 수 있다 패턴 이름만 외우고 적용 조건을 구분하지 않으면 비슷한 문제에 같은 해법을 남용하게 됩니다.

읽는 순서

  1. 1이론

    "자식 프로세스: Node.js의 멀티태스킹"의 멘탈 모델과 요약을 먼저 읽고, Node.js 실행 환경와 관련된 핵심 용어 3개를 적어보세요.

  2. 2구현

    자식 프로세스: Node.js의 멀티태스킹에서 다룬 아이디어를 작은 예제로 직접 구현하거나 기존 코드에 대입해 보면서 적용 조건을 확인하세요.

  3. 3실무

    현재 프로젝트에서 Node.js 실행 환경와 연결되는 화면이나 코드 리뷰 사례를 찾아, 어디서 같은 판단이 필요한지 정리해보세요.

  4. 4설명

    동료에게 "Node.js의 child_process 모듈에서 spawn, exec, fork의 차이점과 각각의 사용 사례를 설명해주세요."에 대한 답을 5분 안에 설명해보세요. 막히는 부분이 아직 이해가 얕은 구간입니다.

면접 연결 질문

hardNode.js의 child_process 모듈에서 spawn, exec, fork의 차이점과 각각의 사용 사례를 설명해주세요.
힌트

[감점 답변] 용어 정의만 반복하거나 "자식 프로세스: Node.js의 멀티태스킹에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] spawn은 스트리밍/대용량, exec는 간단한 셸 명령, fork는 Node.js 자식 프로세스와 IPC 통신 시 사용합니다. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.

hardNode.js에서 Worker Threads와 Child Processes의 차이점은 무엇이며, 언제 각각을 선택해야 하나요?
힌트

[감점 답변] 용어 정의만 반복하거나 "자식 프로세스: Node.js의 멀티태스킹에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] Worker Threads는 메모리를 공유(SharedArrayBuffer), Child Processes는 완전히 격리됩니다. 격리 수준과 오버헤드를 고려하세요. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.

mediumexec 메서드를 사용할 때 발생할 수 있는 보안 취약점은 무엇이며, 어떻게 방지하나요?
힌트

[감점 답변] 용어 정의만 반복하거나 "자식 프로세스: Node.js의 멀티태스킹에서 그렇게 하더라" 수준으로 답하면 감점 포인트입니다. 면접관은 개념을 외운 사람보다 판단 근거를 말하는 사람을 찾습니다. [좋은 답변] 사용자 입력을 그대로 셸 명령에 포함하면 셸 인젝션 공격이 가능합니다. execFile이나 입력값 검증으로 방지합니다. 가능하면 선택 이유, 트레이드오프, 실제로 문제가 되는 상황까지 함께 연결하세요.

자기 점검

"spawn은 스트리밍 기반으로 대용량 출력을 처리하"가 왜 중요한지 스크롤 올리지 않고 한 문장으로 설명해보세요.
spawn스트리밍기반으로대용량
자주 하는 오해

"spawn은 스트리밍 기반으로 대용량 출력을 처리하"를 기능 목록으로만 외우는 것. 실제로는 왜 이 접근이 필요한지와 적용 조건까지 설명해야 합니다.

자식 프로세스: Node.js의 멀티태스킹에서 강조한 판단 기준을 실무 예시와 함께 설명해보세요.
exec결과를버퍼링하여콜백으로
자주 하는 오해

좋은 사례만 기억하고 실패 조건을 빼먹는 것. 실제 면접에서는 언제 위험해지는지까지 함께 말해야 합니다.