by commin
Node.js 모듈 시스템
Node.js는 모듈 시스템을 통해 코드를 모듈화하여 재사용성과 유지보수성을 높일 수 있습니다. Node.js 모듈 시스템은 CommonJS 스펙을 기반으로 합니다.
모듈 생성하기
Node.js에서 모듈은 파일 단위로 생성됩니다. 다른 파일에서 해당 모듈을 사용하려면, 해당 파일을 모듈로 만들어야 합니다.
// greeting.js
const sayHello = () => {
console.log('Hello, World!');
};
module.exports = {
sayHello,
};
위 예제는 "greeting.js" 파일에서 sayHello 함수를 모듈로 생성하는 방법을 보여줍니다. module.exports 객체를 통해 외부에서 사용할 함수나 변수를 지정할 수 있습니다.
모듈 사용하기
다른 파일에서 해당 모듈을 사용하려면, require 함수를 사용하여 모듈을 불러올 수 있습니다.
// app.js
const greeting = require('./greeting');
greeting.sayHello(); // Hello, World!
위 예제는 "greeting.js" 모듈을 require 함수를 통해 불러온 후, 해당 모듈의 sayHello 함수를 호출하는 방법을 보여줍니다.
모듈 내보내기 방법
Node.js 모듈 시스템에서는 다음과 같은 방법으로 모듈을 내보낼 수 있습니다.
- module.exports 객체를 통해 한 개의 객체를 내보내는 방법
- exports 객체를 통해 여러 개의 객체를 내보내는 방법
- 직접 객체를 반환하는 방법
// module.exports 객체를 통한 내보내기
module.exports = {
sayHello,
};
// exports 객체를 통한 내보내기
exports.sayHello = sayHello;
exports.sayGoodbye = sayGoodbye;
// 객체를 반환하는 방법
return {
sayHello,
};
모듈 검색 순서
Node.js에서 모듈을 불러올 때, 다음과 같은 검색 순서를 따릅니다.
- 내장 모듈(built-in module)인지 검색
- node_modules 디렉토리에서 해당 모듈을 찾음
- 상위 디렉토리에서 node_modules 디렉토리를 찾아 검색을 반복함
즉, 현재 파일이 위치한 디렉토리부터 상위 디렉토리로 올라가며 node_modules 디렉토리를 찾아가며 해당 모듈을 검색합니다.
기본 모듈
Node.js에는 기본적으로 내장된 모듈이 존재합니다. 이러한 기본 모듈을 사용하여 파일 시스템 접근, 네트워크 통신, 암호화, 압축 등 다양한 기능을 구현할 수 있습니다.
기본 모듈은 require() 함수를 사용하여 불러올 수 있습니다. 예를 들어 파일 시스템 모듈을 불러오기 위해서는 다음과 같이 작성합니다.
const fs = require('fs');
다음은 Node.js에서 제공하는 기본 모듈의 목록입니다.
- assert: 단위 테스트를 위한 모듈
- buffer: 이진 데이터를 다루기 위한 모듈
- child_process: 다른 프로세스를 실행하기 위한 모듈
- cluster: 멀티 프로세싱을 위한 모듈
- crypto: 암호화를 위한 모듈
- dgram: 데이터그램 소켓 통신을 위한 모듈
- dns: DNS 조회를 위한 모듈
- events: 이벤트 처리를 위한 모듈
- fs: 파일 시스템 접근을 위한 모듈
- http: HTTP 서버와 클라이언트를 위한 모듈
- https: HTTPS 서버와 클라이언트를 위한 모듈
- net: TCP 서버와 클라이언트를 위한 모듈
- os: 운영체제 정보를 다루기 위한 모듈
- path: 파일 경로 처리를 위한 모듈
- process: 현재 프로세스 정보를 다루기 위한 모듈
- querystring: URL 쿼리스트링 처리를 위한 모듈
- readline: 명령행 입력을 위한 모듈
- stream: 데이터 스트림 처리를 위한 모듈
- string_decoder: 문자열 디코딩을 위한 모듈
- timers: 타이머 처리를 위한 모듈
- tls: TLS/SSL 서버와 클라이언트를 위한 모듈
- tty: 터미널 입력/출력을 위한 모듈
- url: URL 처리를 위한 모듈
- util: 유틸리티 함수를 위한 모듈
- v8: V8 엔진 정보를 다루기 위한 모듈
- vm: 가상 머신을 위한 모듈
- zlib: 압축/해제를 위한 모듈
기본 모듈은 Node.js 설치 시 함께 제공되기 때문에 별도로 설치할 필요가 없습니다. 이 모듈들은 Node.js의 핵심 기능을 제공하며, require() 함수를 사용하여 로드할 수 있습니다.
기본 모듈은 크게 아래와 같은 카테고리로 나뉘어집니다.
- 코어 모듈 (Core modules): Node.js 자체에서 제공하는 모듈로, 파일 시스템, HTTP, URL 등과 같은 기본적인 기능을 제공합니다.
- 내장 모듈 (Built-in modules): Node.js 모듈 중 추가적인 기능을 제공하는 모듈로, crypto, os, path 등이 있습니다.
- 외부 모듈 (Third-party modules): Node.js에서 사용 가능한 다른 개발자가 만든 모듈로, express, mongoose, socket.io 등이 있습니다.
'LECTURE > # Node.js basic' 카테고리의 다른 글
[초급 Node.js] Express 프레임워크를 사용해 봅시다. (0) | 2023.03.30 |
---|---|
[초급 Node.js] HTTP 모듈 예제 (0) | 2023.03.29 |
[초급 Node.js] 파일 시스템 모듈 (0) | 2023.03.29 |
[초급 Node.js] Node.js 콘솔 애플리케이션 작성 (0) | 2023.03.28 |
[초급 Node.js] Node.js 소개 및 설치 (0) | 2023.03.28 |