03 NPX
- NPX란? : 어떤 프로젝트에서 패키지를 설치하지 않고 사용할 수 있게 해주는 도구
04 Node.js의 모듈
- 모듈이란?
- 모듈은 코드를 분리하기 위한 방법 중 하나이다.
- 간단한 프로그램이라면 파일 하나로도 충분히 가능하다.
- 프로젝트가 커지면 각 기능에 맞게 코드를 분리하는 것이 중요하다.
- 반복되는 B라는 코드를 모듈로 분리하여 사용하면 반복되는 코드의 사용을 줄일 수 있게 된다.
- 모듈과 패키지
- 패키지는 모듈의 모음이다. npm 패키지들은 많은 모듈을 포함하고 있는 코드 모음이다.
- Node.js의 기본 제공 모듈
- Node.js는 다양한 모듈을 기본적으로 제공하고, 기본 제공 모듈은 직접 작성하기 매우 어렵거나 복잡한 로직을 포함한 모듈이 있으므로 자주 사용되는 기본 제공 모듈을 학습할 필요가 있다.
- console : 브라우저에서 제공되는 console과 유사한 디버깅 도구, log, warn, error 함수로 로그 레벨을 표시 해준다.
time, timeLog, timeEnd 함수로 시간 추적이 가능하다.
- process : 컴퓨터 상에서 실행하고 있는 프로그램의 단위, 이 정보를 통해서 abort, kill, exit 등 어떤 프로세스를 동작하는 함수를 제공, arch, argv, env 등 실행 환경 및 변수와 관련 값 제공 등 현재 실행하고 있는 프로세스의 관련 기능들을 제공한다.
- fs : 파일 입출력을 하기 위해 사용하는 모듈, readFile, writeFile 함수로 파일을 읽기, 쓰기가 가능하다. sync 함수를 제공해 동기 동작이 가능하고 watch로 파일/디렉터리의 변경 이벤트 감지가 가능하다.
- http : http 서버, 클라이언트를 위해 사용, createServer 함수로 서버를 생성하고, Request 함수로 http 요청을 생성할 수 있다.
- 기타 기본제공 모듈
05 모듈의 작성과 사용
- 모듈의 기본적인 작성법
- elice.js 파일을 불러 올 때 module.exports = {} 에서 name, age, nationality를 반환
- 모듈이 load될 때 사용될 값을 module.exports를 통해 const student = require('./elice'); 로 내보낸다.
- student에 elice.js 에 있는 정보들을 불러와 'elice', 5, korea가 출력된다.
- exports. 을 이용해 프로퍼티처럼 생각해서 위 모듈을 불러 올 수도 있다.
- 모듈을 object로 만들고, 각 key - value를 지정해서 내보낸다.
- 함수를 export하는 모듈 작성법
- function을 export 하기 위해서는 arrow function(=>)를 사용한다.
- module.exports = (매개 변수) => { 해야 할 일 }; 의 형식
- 모듈의 사용 방법 정리
- require 함수를 통해 모듈을 load 할 수 있다. C에서 include, Java에서 import와 유사하고
의존성 패키지, 직접 작성한 모듈 사용 등이 가능하게 된다.
- require 동작의 이해 : require 할 때 모듈 코드가 실행되고, node.js의 모듈은 첫 require 시에 cache(저장), 두 번 실행되지는 않는다. 모듈 코드를 여러 번 실행하기 위해서는 함수 모듈로 작성한다.
- npm 패키지 : 의존성 패키지들은 require('package-name')로 load 할 수 있고, 패키지를 사용하려면 node_modules에 내려 받아져 있어야 한다.
- 직접 작성한 모듈 : 직접 작성한 모듈은 현재 파일과의 상대 디렉터리로 load해야 한다.
ex) my-module이 .js 파일인 경우 해당 파일을 load하고, 디렉터리인 경우 my-module/index.js 로 파일을 load해야 한다.
- 함수형 모듈 : 함수형 모듈은 load한 경우 바로 실행 되지 않고, 선언만 되어있기 때문에 필요한 시점에 따라
아래 console.log() 내용처럼 load된 함수를 실행하여 모듈을 사용할 수 있다.
- json 파일 : require로 json 파일도 load 가 가능하다. 이렇게 불러오게 되면 object로 자동 파싱 된다.
'2022 AI SW 온라인 교육 > SW 코딩 훈련트랙' 카테고리의 다른 글
[SW 코딩] Express.js와 MongoDB - 01. Express.js의 미들웨어 (0) | 2022.12.06 |
---|---|
[SW 코딩] Node.js와 Express.js - 04. 웹과 Express.js (0) | 2022.12.05 |
[SW 코딩] Node.js와 Express.js - 03. NPM과 모듈(1) (0) | 2022.12.05 |
[SW 코딩] Node.js와 Express.js - 02. Node.js 이해하기 (0) | 2022.12.05 |
[SW 코딩] Node.js와 Express.js - 01. Node.js 시작하기 (0) | 2022.12.05 |