Devin.KR

심화 · 전체 목차 공개

스트림·운영·프로파일링

스트림과 배압, 이벤트 루프, worker_threads, 메모리 누수·CPU 프로파일링, 관측 가능성과 배포까지 운영하는 Node.js 를 로그 수집 서버로 익힌다.

이 책을 읽기 전에

《Node.js로 만드는 작은 API》 수준의 HTTP 서버·비동기

공개 12/12장 · 목차 구성 2026-09-12

CONTENTS

목차

읽음 표시는 직접 선택하며 자동 완료되지 않습니다.

  1. 01
    스트림 기초 - 큰 파일을 메모리에 올리지 않고 처리하기

    Readable/Writable/Transform, 한 번에 읽기와 스트림 메모리 비교, pipeline 과 오류 전파, readline 으로 줄 단위 처리

  2. 02
    배압(backpressure) - 느린 쪽에 속도를 맞추기

    write 반환값과 drain, highWaterMark, 배압 무시 시 메모리 증가 재현, pipeline 이 해주는 일, 비동기 이터레이터로 스트림 읽기

  3. 03
    Buffer 와 인코딩 - 바이트와 문자열 사이

    Buffer 할당, UTF-8 경계에서 글자 깨짐, StringDecoder, 바이너리 헤더 파싱, base64·hex

  4. 04
    이벤트 루프 단계와 블로킹 찾기

    timers/poll/check 단계, setImmediate 와 setTimeout 순서, process.nextTick 과 마이크로태스크, 이벤트 루프 지연 측정(perf_hooks monitorEventLoopDelay)

  5. 05
    worker_threads 로 CPU 작업 나누기

    CPU 작업이 서버를 막는 재현, Worker 생성과 메시지, 작업 풀 만들기, SharedArrayBuffer 는 언제, 스레드 수 정하기

  6. 06
    child_process 와 cluster - 프로세스로 확장하기

    spawn/execFile 과 셸 주입 위험, 표준 입출력 스트림 연결, cluster 로 코어 활용, 무중단 재시작 개념

  7. 07
    HTTP 성능 - keep-alive·타임아웃·압축

    keep-alive 와 에이전트, 서버 타임아웃 설정(headersTimeout, requestTimeout), gzip 압축 스트림, 큰 응답 스트리밍, 간단한 부하 측정 스크립트

  8. 08
    메모리 누수 찾기 - 힙 스냅샷과 흔한 원인

    process.memoryUsage 관찰, 전역 캐시·리스너·클로저 누수 재현, --inspect 와 힙 스냅샷 비교 절차, WeakMap/WeakRef

  9. 09
    CPU 프로파일링 - 느린 함수 찾기

    --cpu-prof 로 프로파일 저장, 플레임 그래프 읽는 법, 정규식·JSON 처리 병목 예, 측정 전후 비교 원칙

  10. 10
    관측 가능성 - 구조화 로그·지표·추적 ID

    JSON 구조화 로그, 요청 ID 를 AsyncLocalStorage 로 전달, 처리 시간 지표 집계, /healthz 와 /metrics 엔드포인트

  11. 11
    운영 보안 기본 - 입력 한도·권한·비밀값

    본문 크기 제한, 경로 조작 방지(path.resolve 검사), 비밀값을 로그에 남기지 않기, npm audit 와 의존성 최소화, 권한 낮춘 실행 사용자

  12. 12
    배포와 프로세스 관리 - 정상 종료부터 무중단 교체까지

    SIGTERM 처리와 연결 정리, 프로세스 관리자(systemd·PM2) 비교, 로그 회전, 준비 상태 확인(readiness), 롤백 절차

이 책은 Devin.KR 원고를 참조합니다. 원고의 원래 주소와 저작자 표기를 유지하며 같은 글을 다시 등록하지 않습니다. 수정된 원고는 읽기 화면에서 재검수 상태를 확인할 수 있습니다.

이 책·표지의 저작권 및 출처 관련 요청