시리즈/Javascript

[node] node로 웹 프로젝트 시작할 때 나오는 용어들 정리

빅또리 2021. 2. 27. 17:17

npm vs npx

 

npm

node package manager

 

(리눅스의 apt-get, ocaml의 opam과 비슷한 역할 인듯?)

npm에 등록된 패키지(모듈) 다운로드, 버전 관리, 의존성 관리 등을 할 수 있게 해준다.

 

참고로 yarn은 페이스북에서 내놓은 패키지 매니저로, npm 대체제이다.

 

 

주요 명령어

npm initpackage.json 파일 생성됨

npm init 쓰는 경우. https://stackoverflow.com/questions/57229780/is-npm-init-needed

npm install [package명] :

node_modules 폴더 (설치한 패키지와, 그 패키지가 의존하고 있는 패키지들의 소스)

package-lock.json 파일 (node_modules에 들어있는 패키지들 버전과 의존 관계) 이 생성된다.

 

그리고 package.json 파일의 dependencies 속성에 해당 패키지 추가. 

(※global 옵션으로 설치시 dependencies에 기록되지 않는다)

전역 설치된 패키지 목록 보기 명령어 : npm ls -g --depth=0

 

npx

npx도 npm으로 다운받을 수 있는 패키지중 하나이다.

npx는 설치보다 실행이라는 역할에 방점이 찍혀있다고 보면 된다.

 

패키지를 실행하려면 일단 그 소스를 npm install로 로컬에 다운받아야 하는데,

1회성으로 실행하고 말거라면? 또는 최신 버전 업데이트에 민감한 패키지라면? 

이럴때 사용하라고 만들어진 모듈이 npx라고 한다.

 

npx 명령어를 치면 일단 그 패키지가 해당 경로에 설치되어 있는지 확인하고,

없다면 가장 최신 버전으로 임시로 불러와 실행시켜주는 식으로 작동한다고 함. 

 

https://ljh86029926.gitbook.io/coding-apple-react/undefined/npm-npx

 

 

               

npx 사용 예로, react 프로젝트 골격을 만드려고 굳이 내 컴퓨터에 create-react-app이라는 보일러플레이트 프로그램의 소스까지 설치하면서 메모리 잡아먹을 필요도 없고, 가장 최신 버전 사용해서 만들어주니까 npx를 사용함.

create-react-app 공식 사이트에서도 아예 이미 설치했으면 삭제하고 npx 쓰라고 한다. 가장 최신 버전 사용하니까

 

 

 

 

 

 

 

템플릿 엔진

출처 : 위키피디아

 

A template processor (= template engine = template parser) 

is software designed to combine templates with a data model to produce a result documents.

 

The language that the templates are written in is known as a template language.               -wikipedia-

 

 

템플릿 언어로 쓰여진 템플릿 파일과 데이터를 합쳐서 문서를 (예를들면 html) 결과물로 만드는게 템플릿 엔진.

이 엔진이 서버측에서 돌아가냐, 클라이언트 측에서 돌아가냐에 따라 또 분류할 수 있음.

 

 

JSP가 java에서 쓰이는 템플릿 엔진.

참고로 이런 이유로 java쪽에서도 JSP말고 다른 템플릿 엔진을 쓰는 추세인 것 같음 (?) 

 

 

ejs, pug(이전 이름 jade), nunjucks, Handlebars, mustache.js 등이 노드 쪽에서 쓰이는 템플릿 엔진이라고 함.

 

express에서 템플릿 엔진 설정하고 사용하는 법 [출처 : express 공식 사이트]

기타 express환경에서 사용할 수 있는 템플릿 엔진들

 

 

 

 

 

 

 

 

 

 

Boilerplate

In computer programming, boilerplate code or just boilerplate are sections of code that are repeated in multiple places with little to no variation.                                                                       -wikipedia-

 

해당 프로그램에서 필수, 반복적으로 사용되는 골격 코드나 그 골격을 만들어주는 프로그램을 보일러플레이트라고 부르는 듯 함.

 

가장 간단한 예로

어떤 html 파일이든 이 템플릿을 기본으로 살이 붙여지는 것이므로 각종 에디터에서 자동완성 기능을 제공하는 것처럼.

 

 

create-react-app

react는 클라이언트 사이드의 웹 프레임워크이고,

create-react-app을 사용하면 react app 골격을 빠르게 만들 수 있다.

 

빠르게 시작하기

 

최초 생성시 골격

 

react는 js를 활용해 브라우저에 띄울(클라이언트) 문서를 작성하는 것이 메인이기 때문에

테스트용으로 돌릴 서버에 관한 건 설치된 하위 패키지에서 알아서 한다.

 

좀 길어져서 글을 따로 썼다.

2021/02/27 - [WEB] - create-react-app으로 만든 app에서 테스트용 서버는 어떻게 돌아가나

 

 

 

 

 

express-generator

express는 웹 서버 프레임워크이고 express-generator를 통해 express서버 골격을 뚝딱 만들 수 있다.

 

Use the application generator tool, express-generator, to quickly create an application skeleton.

                                                                                                 - express 공식 홈페이지 소개

 

빠르게 시작하기

 

최초 생성시 골격

 

express-generator 참고!