기본 패턴
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 | 역할 |
|---|---|
fetch | HTTP 요청 전송 |
Request / Response | 요청과 응답 객체 모델 |
Headers | 헤더 집합 관리 |
FormData | multipart/form-data 구성 |
| 장점 | 브라우저와 유사한 Web API 표면 제공 |
주의할 점
브라우저와 API 이름이 같다고 해서 런타임 맥락까지 완전히 같은 것은 아닙니다. Node에서는 파일, 스트림, 서버 환경 제약이 함께 있으니 "브라우저와 같은 문법"과 "동일한 실행 맥락"을 구분해서 보세요.
참고 링크
1 sources