[node] node로 웹 프로젝트 시작할 때 나오는 용어들 정리
npm vs npx
npm
(리눅스의 apt-get, ocaml의 opam과 비슷한 역할 인듯?)
npm에 등록된 패키지(모듈) 다운로드, 버전 관리, 의존성 관리 등을 할 수 있게 해준다.
참고로 yarn은 페이스북에서 내놓은 패키지 매니저로, npm 대체제이다.
주요 명령어
npm init : package.json 파일 생성됨
npm install [package명] :
node_modules 폴더 (설치한 패키지와, 그 패키지가 의존하고 있는 패키지들의 소스)
package-lock.json 파일 (node_modules에 들어있는 패키지들 버전과 의존 관계) 이 생성된다.
그리고 package.json 파일의 dependencies 속성에 해당 패키지 추가.
(※global 옵션으로 설치시 dependencies에 기록되지 않는다)
npx
npx도 npm으로 다운받을 수 있는 패키지중 하나이다.
npx는 설치보다 실행이라는 역할에 방점이 찍혀있다고 보면 된다.
패키지를 실행하려면 일단 그 소스를 npm install로 로컬에 다운받아야 하는데,
1회성으로 실행하고 말거라면? 또는 최신 버전 업데이트에 민감한 패키지라면?
이럴때 사용하라고 만들어진 모듈이 npx라고 한다.
npx 명령어를 치면 일단 그 패키지가 해당 경로에 설치되어 있는지 확인하고,
없다면 가장 최신 버전으로 임시로 불러와 실행시켜주는 식으로 작동한다고 함.
npx 사용 예로, react 프로젝트 골격을 만드려고 굳이 내 컴퓨터에 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에서 쓰이는 템플릿 엔진.
ejs, pug(이전 이름 jade), nunjucks, Handlebars, mustache.js 등이 노드 쪽에서 쓰이는 템플릿 엔진이라고 함.
기타 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 공식 홈페이지 소개
빠르게 시작하기
최초 생성시 골격