Node.js네트워크와 HTTP

fetch, FormData, Web API in Node.js

현대 Node.js가 제공하는 `fetch`, `Request`, `Response`, `FormData`, `Headers` 같은 Web API 표면을 정리합니다.

마지막 수정 2026년 3월 22일

기본 패턴

javascript
const form = new FormData();
form.append("name", "kero");

const res = await fetch("https://api.example.com/users", {
  method: "POST",
  body: form,
});

설명

  • 현대 Node.js는 더 이상 서버 전용 API만 있는 환경이 아닙니다. fetch, Request, Response, Headers, FormData처럼 브라우저와 유사한 Web API 표면이 기본 제공됩니다.
  • 그래서 간단한 HTTP 클라이언트 작업은 별도 라이브러리 없이도 상당 부분 해결할 수 있습니다. JSON 요청/응답, multipart form 전송, 헤더 조작, 요청 취소 같은 패턴이 대표적입니다.
  • 이 변화의 의미는 단순 편의성이 아닙니다. 브라우저와 서버 간 코드 감각이 더 가까워지고, Web API 표면을 공유하는 라이브러리 설계가 쉬워졌다는 데 있습니다.
  • 다만 Node의 fetch가 브라우저와 완전히 동일한 환경은 아닙니다. 파일 시스템, 스트림, 프록시, 서버 런타임 제약이 섞이는 만큼 Node 특유의 컨텍스트도 같이 이해해야 합니다.
  • 실무에서는 "Node에서도 Web API를 기본으로 쓸 수 있다"는 감각이 중요합니다. HTTP 클라이언트를 설계할 때 옛날 Node 전용 습관만 갖고 시작하지 않아도 된다는 뜻입니다.

빠른 정리

API역할
fetchHTTP 요청 전송
Request / Response요청과 응답 객체 모델
Headers헤더 집합 관리
FormDatamultipart/form-data 구성
장점브라우저와 유사한 Web API 표면 제공

주의할 점

브라우저와 API 이름이 같다고 해서 런타임 맥락까지 완전히 같은 것은 아닙니다. Node에서는 파일, 스트림, 서버 환경 제약이 함께 있으니 "브라우저와 같은 문법"과 "동일한 실행 맥락"을 구분해서 보세요.

참고 링크

1 sources