Node.js url 및 querystring 모듈 사용하는 방법
Node.js 개발 과정에서 URL 처리는 매우 흔한 작업입니다. url
및 querystring
모듈을 사용하면, 웹 애플리케이션에서 URL을 효율적으로 파싱, 구성, 수정, 그리고 쿼리 스트링을 쉽게 다룰 수 있습니다. 이 글에서는 두 모듈의 기본 사용법과 함께 예제를 통해서 자세히 알아보겠습니다.
url 모듈
url.parse()
함수는 URL 문자열을 URL 객체로 변환합니다. 이 객체는 URL의 다양한 구성 요소(프로토콜, 호스트, 경로 등)를 속성으로 가집니다. 예를 들어, const parsedUrl = url.parse('http://example.com:8080/pathname?search=test')
코드는 주어진 URL을 파싱하여 그 구성 요소를 분석합니다.
url.format()
함수는 URL 객체를 다시 URL 문자열로 변환합니다. 이는 url.parse()
의 역과정으로 볼 수 있으며, URL 객체의 속성을 수정한 후 최종 URL을 생성할 때 유용합니다.
querystring 모듈
querystring.parse()
함수는 쿼리 스트링을 파싱하여 자바스크립트 객체로 변환합니다. 이를 통해 쿼리 파라미터의 값을 쉽게 추출할 수 있습니다. 반대로, querystring.stringify()
함수는 객체를 쿼리 스트링 형태로 인코딩하여 반환합니다. 이는 서버에 쿼리를 전송할 때 특히 유용합니다.
사용 예제
다음은 url
및 querystring
모듈을 사용하는 간단한 예제입니다.
// 'url' 및 'querystring' 모듈을 불러옵니다.
const url = require('url');
const querystring = require('querystring');
// 주어진 URL 문자열을 파싱하여 URL 객체로 변환합니다.
const parsedUrl = url.parse('http://example.com:8080/pathname?search=test');
console.log(parsedUrl.host); // URL의 호스트 부분을 출력합니다: 'example.com:8080'
console.log(parsedUrl.pathname); // URL의 경로 부분을 출력합니다: '/pathname'
console.log(parsedUrl.query); // URL의 쿼리 스트링 부분을 출력합니다: 'search=test'
// URL의 쿼리 스트링을 파싱하여 객체로 변환합니다.
const parsedQuery = querystring.parse(parsedUrl.query);
console.log(parsedQuery.search); // 파싱된 쿼리 객체에서 'search' 키의 값을 출력합니다: 'test'
// 객체를 쿼리 스트링 형태로 인코딩합니다.
const stringifiedQuery = querystring.stringify({ search: 'test' });
console.log(stringifiedQuery); // 객체를 쿼리 스트링으로 변환한 결과를 출력합니다: 'search=test'
이 코드는 Node.js에서 url
및 querystring
모듈을 사용하여 URL을 파싱하고, 쿼리 스트링을 다루는 기본적인 방법을 보여줍니다. 먼저, url.parse()
를 사용해 URL 문자열을 각 구성 요소로 분해하고, 이후 querystring.parse()
를 사용하여 쿼리 스트링을 객체로 변환합니다. 마지막으로, querystring.stringify()
를 사용해 객체를 다시 쿼리 스트링 형태로 변환하는 과정을 보여줍니다.

이 글에서 소개한 url
및 querystring
모듈의 기능을 통해, Node.js에서 URL을 효과적으로 다루는 방법에 대해 배웠습니다. 더 깊이 있는 학습을 위해서는 공식 문서를 참고하시기 바랍니다.
참고 문서
관련 이전 게시글
- Node.js 소개 및 윈도우에 설치하는 방법
- Node.js 서버 생성 및 실행하는 방법
- Node.js 파일 읽기: fs.readFile 메서드 활용하는 방법
- Node.js 서버에서 동적으로 HTML 생성하는 방법
이 글이 도움이 되셨다면 공유 부탁 드립니다.