본문 바로가기
Elice SW 2/TIL

DAY 26 - TIL

by 자이구 2022. 5. 9.

NPM

Node Package Manager, Node.js 프로젝트를 관리하는 필수적인 도구

온라인 저장소 + 커맨드라인 도구

 

npm 온라인 저장소

Node.js 개발을 위한 오픈소스 package 저장소

필요한 package를 검색, 설치 및 활용

https://www.npmjs.com/ 

 

npm

Bring the best of open source to you, your team, and your company Relied upon by more than 11 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

커맨드라인 도구

프로젝트 관리를 위한 다양한 명령어 제공

저장소에서 라이브러리, 도구 설치 / 프로젝트 설정,관리 / 프로젝트 의존성 관리

 

의존성

프로젝트는 다양한 라이브러리에 의존하여 실행됨. 그 라이브러리들을 dependency 라고 한다.

 

NPX

npm 패키지를 설치하지 않고 사용할 수 있게 해주는 npm의 5.2.0버전부터 제공해주는 하나의 도구

 

npm은 패지키를 관리만 하고 실행 할 수 없다

  • npm은 패키지를 관리 하지만 패키지를 실행할 수는 없다
  • npm은 그 자체로는 단순히 어떤 패키지도 실행하지 않는다
  • npm은 사실 어떤 패키지도 실행하지 않는다
  • npm은 사용하여 패키지를 실행하려면 package.json파일에서 해당 패키지를 지정해야 한다

npx는 npm 패키지 실행기이다

  • npm은 npx를 실행하지 위한 도구이다
  • npx은 npm 5.2+와 함께 제공된다
  • npx를 사용하면 Node.js의 특정 버전을 사용하여 js파일을 실행 가능
  •  프로젝트의 Node.js버전 별 실행환경을 확인할 때 유용

 

NPM 실습

npm init

  • package.json 파일을 생성
  • 프로젝트 이름, 버전 등을 설정
  •  scripts는 실행 명령어 관리
  • dependencies : 실제와 개발환경 전부 사용
  • devDePendencies : 개발환경 사용

package.json

 

npm install [package-name]

  • 필요한 package들을 선택해서 설치 가능
  • package-lock.json파일과 node_modules 폴더 형성 확인가능
  • --global : 프로젝트에 종속되지 않는 커맨드라인 도구 설치, 전역 패키지 디렉터리에 내려받음

 

npm remove 실습

  • 필요한 package들을 선택해서 삭제 가능
  • package.json파일에서 dependencies 변경 확인

npm install [package-name] --save-dev

  • npm의 개발용 의존성을 분리하여 관리하는 방법
  • 배포전 개발용으로만 사용하는 의존성
  • Package.json의 devDependencies에 추가됨

npm install --production 

  • 프로젝트 배포할때 개발용 의존성을 포함할 필요가 없는 경우
  • package.json파일에서 dependencies만 node_modules에 내려받음

 

Node.js 모듈

  • 프로젝트가 커질수록 반복되는 코드의 사용을 효율적으로 관리
  • npm package들이 모듈로 형성되어 있음
  • node.js 기본 내장형 모듈 vs 외부를 통한 외장형 모듈
  • 기본적으로 module.exports를 활용하여 모듈화가 가능
  • 완성된 모듈은 require를 통해 호출하여 사용 가능 
  • 최종 확장자 .js는 생략가능
  • require('모듈')
  • Module은 첫 require 시에만 실행하고 cache됨
  • 여러번 실행할 모듈은 함수형으로 작성 호출

 

Express.js

웹 프레임워크

  • 웹 서비스를 구성하기 위한 필수 구조 요소를 빠르게 제작 가능
  • HTTP 요청, 응답, HTML 템플릿 엔진, MVC 구조 제공
  • 프로젝트 구조에 대한 부담을 줄이고 코드에 집중

Express.js 생성

  1. 아래의 명령어를 차례대로 입력하여 express의 기본 구조를 형성
  2. npm install express-generator-g
  3. express -view==ejs myapp
  4. cd myapp
  5. npm install
  6. npm start

참고 자료 : https://expressjs.com/ko/starter/generator.html

 

Express 애플리케이션 생성기

Express 애플리케이션 생성기 애플리케이션의 골격을 신속하게 작성하려면 애플리케이션 생성기 도구인 express를 사용하십시오. 다음의 명령을 이용해 express를 설치하십시오. $ npm install express-gener

expressjs.com

라우팅

HTTP 요청에 따라 알맞은 응답을 보내주는 경로를 설정해주는 일

 

미들웨어

router.get('/', (req, res, next) => {
	console.log('');
})
  • 통신의 기본 구성은 요청(req,request), 과 응답(res,response)
  • 요청과 응답의 사이클에서 함수의 기능을 한다
  • next를 통해 다음 동작 여부를 결정한다
  • 라우팅과 미들웨어는 엄연히 다르다
  • 미들웨어는 요청에 따라 response를 보내는 역활로 라우팅 안에 들어간 기능/함수이다

미들웨어 동작

 

Express.js 기본구조

'Elice SW 2 > TIL' 카테고리의 다른 글

DAY 28 - TIL  (0) 2022.05.12
DAY 27 - TIL  (1) 2022.05.12
DAY 25 - TIL  (0) 2022.05.08
DAY 24 - TIL (2)  (1) 2022.05.07
DAY 24 - TIL  (0) 2022.05.07

댓글