전 섹션에서 npm 명령어에 대해 짧게 소개했었다.
이번엔 이 명령어들을 가지고 express를 setup하는 시간을 가져보자.
express를 사용하기 전 우리는 몇 가지를 설치하고 setup 해야 한다.
그 전에 알아야 할 것이 있다. 그건 package.json이라고 하는 것인데,
🤔 package.json 이란?
Node.js 프로젝트의 메타데이터 및 의존성 정보를 담고 있는 JSON(JavaScript Object Notation) 형식의 파일이다. 이 파일은 프로젝트 루트 디렉토리에 위치하며, 프로젝트의 구성, 의존성 패키지, 스크립트 명령 등을 기록하는 중요한 역할을 한다.
다시 말해 프로그래머, 개발자가 파일에 정보를 저장하기 위해 만든 파일이다.
{
"name":"wetube"
}
이런 형식의 코드로 작성되어 있고, npm으로 모듈이나 라이브러리를 설치하게 되면 알아서 추가해준다.
물론 단순 text 파일이기 때문에 우리가 직접 수정해도 된다.
자 이제 package.json도 알았으니 본격적으로 express를 설치해보도록 하자.
준비된 빈폴더를 VSCode로 열어서 터미널 창에 npm init을 해주자.

명령어를 실행하면 위와 같이 나오는데, package name: 은 그냥 엔터시 폴더 이름으로 지정되고 git repository는 각자 github 저장소의 레포 주소를 넣어주면 된다. (필자는 그냥 패스) 나머지는 그냥 엔터 눌러도 상관없다.
그러면 package.json 파일이 생성된다.

다음으로 express를 설치해보자.
npm i express

이렇게 express 설치가 완료되었고, 설치와 동시에 두 개의 폴더(node_modules)와, 파일(package-lock.json)이 생성되었다.

🤔 node_modules란?
NodeJS 프로젝트에서 사용하는 외부 패키지(라이브러리 또는 모듈)가 저장되는 디렉토리로, 주로 프로젝트의 의존성 패키지(dependency)들이 위치하는 곳이다. 프로젝트가 필요로 하는 모든 외부 패키지 파일이 여기에 저장된다.
🤔 package-lock.json이란?
NodeJS 프로젝트에서 사용하는 패키지의 정확한 버전 및 의존성 정보를 기록하는 파일이다. 이 파일은 npm 버전 5 이상에서 사용되며, 패키지 관리자가 프로젝트의 의존성을 정확하게 관리하고 재현 가능한 방식으로 패키지를 설치하는 데 도움을 준다.
다시말해 node_modules는 npm으로 설치되는 라이브러리, 모듈 등이 저장되는 곳이고, package-lock.json 또한 dependency 목록에 있는 라이브러리, 모듈 등을 관리해주는 것이다.
package.json 안을 살펴보면

dependencies가 추가된 것을 볼 수 있다.
🤔 dependencies란?
NodeJS 프로젝트의 package.json 파일에 정의된 의존성 패키지 목록을 나타내는 섹션이다. 이 섹션에 포함된 패키지들은 프로덕션 환경에서 필요한 패키지들을 나타낸다.
쉽게 말해 NodeJS 프로젝트를 진행할 때 필요한 라이브러리, 모듈, 패키지 등을 말하는 것이다.
그리고 이 dependencies에 추가된 라이브러리, 모듈 등은 node_modules 폴더에 저장되는 것이고, npm은 이를 확인하여 연결되어 있는 모든 것들을 설치, 관리해주는 것이다.
node_modules 폴더는 위처럼 모든 것들을 저장시키기 때문에 폴더의 크기가 굉장하다. 따라서 공유하거나 GitHub에 저장 시엔 .gitignore에 /node_modules로 저장하여 저장소에 올려지지 않게 해주는 것도 좋다.
(npm install을 하면 자동으로 npm이 dependencies를 확인하여 다운해주니까)
자 여기까지 express 설치에 대한 얘기를 해보았는데, 아직 두 가지가 남았다.
그건 바로 Babel과 nodemon이다. 이건 다음 섹션에서 알아보자.
express를 설치 해보았으니 맛보기로 간단하게 사용을 해보도록 하자.
먼저 nodeJS부터 사용을 해보자.
일단 server.js 파일을 만들어 간단한 콘솔을 찍어보자.

console.log("hello");
그리고 터미널에서 node server.js를 입력해보면

이렇게 server.js의 콘솔이 터미널에서 출력되는 것을 확인할 수 있다.
이번엔 우리가 배웠던 npm으로 파일을 실행하는 방법에 대해 알아보자.
먼저, package.json의 scripts를 건드려볼 것인데, scripts가 하는 일은 무엇인지부터 알아보자.

우리의 package.json 파일에는 scripts가 이렇게 작성이 되어 있는데, 이 scripts 섹션은 프로젝트에서 사용할 수 있는 명령어 스크립트를 정의하는 부분으로, 프로젝트 빌드, 테스트, 실행 및 관리를 위해 사용된다.
"test"는 별칭으로 npm run 다음에 자신이 실행하고자 하는 것을 입력해주는 것이다.
그 뒤의 "echo ~~"는 npm run test를 했을 때 빌드가 되었으면 하는 것을 입력해주는 것이다.
그럼 우리는 scripts를 이용해 프로젝트 빌드를 해보도록 하자.
다음과 같이 수정한다.

"scripts": {
"dev": "node server.js"
},
터미널에 npm run dev을 입력하고 실행해보면,

이렇게 npm이 package.json의 scripts를 찾아 dev과 대조되는 스크립트를 실행해주는 것을 볼 수 있다.
다시 server.js 파일을 수정해서 실행해보자.


일단 이 수정하고 실행하는 것에 대해 불편함이 느껴졌나요?
일일히 수정하고 저장하고 npm run dev 해서 실행하기 귀찮지 않나요?
이 행동을 nodemon 섹션에서 개선해 보도록 합시다.
.
.
.
귀차니즘은 개발자의 숙명 그렇다고 나태해지지는 말자 -moko