- 3장에서 다룰 내용
- 새로운 Node.js 모듈 생성
- npm으로 Node.js 애플리케이션 구축
- npm으로 Node.js 패키지 구축
- 모듈: 코드 라이브러리가 들어있는 각 자바스크립트 파일 또는 폴더
- exports + require() 를 사용해 모듈 공유, 다른 모듈 참조.
// messages.js 파일 생성
let messages = ["message1"];
// let -> exports 객체로 변경: 다른 파일에서 이 메세지를 사용하기 위해
exports.messages = ["message1"];
// require 객체 + 모듈의 파일명을 사용 = 모듈의 배열을 참조
const messageModule = require("./message"); // 프로젝트 디렉토리에서 message.js 모듈 찾음
messageModule.message.forEach(m => console.log(m));
- exports 객체: 정해진 속성을 Node.js exports 속성에 추가, 이 속성은 다른 모듈에 공유될 수 있다.
- require 객체: 코드나 모듈 내의 라이브러리를 불러오기 위해 사용.
3.1. npm 실행
- npm: Node.js의 패키지 관리자, 외부 패키지의 관리 역할.
- npm 명령어
npm init
// Node.js 애플리케이션 초기화 + package.json 파일 생성
npm install <package>
// Node.js 패키지 설치
// --save(-S) 옵션: 애플리케이션에 종속 모듈로 해당 패키지 설치
// --global(-g) 옵션: 패키지를 컴퓨터상의 전역 패키지로 설치, 터미널 어디에서든 불러올 수 있음
npm publish
// 사용자가 만든 패키지를 npm 패키지 커뮤니티에 저장, 업로드
npm start
// Node.js 애플리케이션의 실행 (위해서 package.json 파일 설정 필수)
npm stop
// 실행 중인 애플리케이션 중지
npm docs <package>
// 지정된 패키지에 대한 문서 메세지(웹 페이지) 열기
// 2부에서 사용하는 Express.js 프레임워크 설치
npm install express -S
// 커맨드라인에서 사용하기 위한 Express 제너레이터 설치
npm install express-generator -g
기본적으로 패키지 설치는 프로덕션이 가능한 패키지로 종속 모듈로 표시.
즉, 애플리케이션이 온라인상에서 활성화될 때 해당 패키지들을 사용한다는 의미.
- 설치 시 프로덕션을 위한 패키지로 명시: --save--prod 플래그 사용.
- 개발 목적으로 명시: --save--dev 플래그 사용.
- 모듈: 단일 콘셉트, 기능, 라이브러리와 관련된 코드를 제공하는 개인 자바스크립트 파일.
- 패키지: 여러개의 모듈 포함 가능. 연관 도구들을 제공하는 파일을 묶는 데 사용.
- 종속 모듈: 애플리케이션 또는 다른 모듈에 의해 사용되는 Node.js 모듈. 만약 어떤 패키지가 어떤 애플리케이션에 종속 관계를 갖고 있다면, 이는 애플리케이션이 동작하기 위해 반드시 설치되어야 하는 것이다.
npm | Home
Bring the best of open source to you, your team, and your company Relied upon by more than 17 million developers worldwide, npm is committed to making JavaScript development elegant, productive, and safe. The free npm Registry has become the center of Java
www.npmjs.com
에서 애플리케이션에 일부 기능 통합을 원할때, 이를 지원하는 패키지를 찾을 수 있다.
ex. 레시피 애플리케이션 - 자신의 우편번호를 기반으로 사용자 위치를 찾는 기능 필요. 이때 cities 패키지는 텍스트 주소를 위치 좌표로 변환해준다.
패키지 설치를 위해서는 package.json 파일이 필요하다.
3.2. Node.js 애플리케이션의 초기화
- package.json: 모든 Node.js 애플리케이션과 모듈이 포함하고 있다. 프로젝트 특성을 기술하고 있으며, 프로젝트의 루트 레벨에 존재한다. 일반적으로 현재 릴리즈 버전/애플리케이션 이름/메인 애플리케이션 파일 등이 기술된다.
메인 프로젝트 디렉토리를 만들고, 터미널에서 그 디렉토리로 이동한다.
애플리케이션 초기화를 위해 npm init 명령을 사용 - 프로젝트 이름/애플리케이션 버전/간단한 설명/앱 시작 지점을 위한 파일명/테스트 파일/Git 리포지터리/작성자명/라이선스 코드를 입력하는 프롬프트가 차례로 뜬다.
mkdir recipe_connection
npm init
시작 포인트는 main.js로 설정한다. 나머지 옵션은 디폴트로 설정한다.
최종적으로, 프로젝트 디렉토리에 package.json 파일이 생성되어 있다.
- 종속 패키지 설치
프로젝트 폴더에서 패키지를 설치하면, package.json 파일에 패키지 설치 및 버전 정보를 포함하는 새로운 종속 모듈 색션이 생성된다. dependencies 부분.
또한 프로젝트 폴더에 node_modules 폴더가 생성된다. 이 폴더에는 설치한 패키지 코드가 들어있다.
npm install cities --save
--save 플래그는 이 프로젝트의 종속 모듈로 패키지를 저장한다.
node_mudule 디렉토리는 점점 사이즈가 커지기 때문에, 코드를 온라인에 공유할 때는 제외하고 공유한다. 프로젝트를 다운로드한 사람들은 npm install 명령만으로 종속 관계에 있는 모든 파일을 같이 다운로드할 수 있다.
- main.js 파일에서 패키지 활용
const cities = require("cities"); // cities 패키지 요청
let myCity = cities.zip_lookup("10016"); // zip_looup 메소드 결과를 myCity에 할>당
console.log(myCity); // 결과 콘솔 출력
3.3. 요약
1) 외부 패키지들의 설치를 위해 npm을 어떻게 사용하는지
2) 자신만의 Node.js 모듈을 만들고 메인 애플리케이션 파일에서 호출
3) 외부 패키지 설치, 동작
다음 단계에서는 웹 애플리케이션이 이 도구들을 통합한다.
'교재 정리 > Node.js' 카테고리의 다른 글
Lesson 6. 라우트와 외부 파일 (0) | 2024.05.22 |
---|---|
Lesson 5. 수신 데이터 다루기 (0) | 2024.05.22 |
Lesson 4. Node.js에서 웹 서버 만들기 (0) | 2024.05.17 |
Lesson 02. Node.js 애플리케이션 실행 (0) | 2024.05.16 |
Lesson 0. Node.js 설정과 Javascript 엔진 설치 (0) | 2024.05.14 |