[node.js] node.js의 기초
![[node.js] node.js의 기초](/assets/img/web/nodejs/logo.png)
node.js의 기초을 살펴봅니다.
- 1. npm init
- 2. npm init 확인
- 3. package.json
- 4. npm install 패키지
- 5. express 패키지 설치
- 6. index.js 생성
- 7. ejs 생성
- 8. 미들웨어를 사용한 정적 파일 로딩
- 9. 서버 실행 코드 작성
- 10. node.js 프로젝트 실행
- 11. 화면에서 프로젝트 실행 결과 확인
node.js란 확장성 있는 네트워크 애플리케이션 개발에 사용되는 소프트웨어 플랫폼입니다. 작성 언어로 자바스크립트를 활용하며 논블로킹(Non-blocking) I/O와 단일 스레드 이벤트 루프를 통한 높은 처리 성능을 가지고 있는 것이 특징입니다.
node.js는 npm(node package manager)를 통해 패키지를 관리합니다. node.js를 사용하는 법에 대해 살펴보겠습니다.
1. npm init
node.js를 시작하기 전 npm을 통해 필요한 package를 설치하고 관리하기 위해 ‘npm init’을 통해 프로젝트를 실행합니다.
자신이 node.js 프로젝트를 생성하고자 하는 경로에 터미널로 접근한 뒤 ‘npm init’을 입력합니다. 엔터를 칠 경우 프로젝트의 설정을 지정할 수 있는 문구가 나옵니다. 자신이 만들고자 하는 프로젝트의 목적에 맞게 설정값을 작성합니다.
2. npm init 확인
license 항목까지 작성한 후 엔터키를 누른다면 다음과 같은 요약창이 나옵니다. 여기서 한번 더 엔터를 누를 경우 지정한 경로에 package.json 파일이 생성된 것을 확인할 수 있습니다.
3. package.json
생성된 package.json은 위의 그림과 같습니다.
package.json의 내부 항목 중 ‘dependencies’는 해당 프로젝트에서 사용하는 의존성과 버전이 작성됩니다.
node.js의 프로젝트는 package.json에 프로젝트의 정보 및 사용중인 패키지의 정보가 담겨져지고 이를 통해 관리됩니다.
4. npm install 패키지
이제 ‘npm install’ 명령어를 사용해 패키지를 설치할 수 있습니다.
설치한 패키지는 node_modeules에 저장되며 여러 패키지를 설치할 경우 node_modeules가 무거워지기 때문에 git hub에 프로젝트를 올리고자 할 땐 .gitignore 설정을 해야 합니다.
git hub에서 프로젝트를 내려받을 땐 package.json을 받은 뒤 git install 명령어를 수행하면 package.json의 dependencies에 작성된 패키지가 자동으로 다운로드 됩니다.
‘npm install’의 축약 명령어로 ‘npm i’를 사용할 수 있습니다.
5. express 패키지 설치
‘npm install express’ 명령어를 통해 express 모듈을 설치한 후 package.json을 확인하면 위와 같이 dependencies에 express가 작성된 것을 확인할 수 있습니다.
6. index.js 생성
패키지의 설치가 완료되었다면 이제 프로젝트 내에 index.js를 생성합니다.
node.js의 서버 구축은 http 모듈과 express 모듈로 수행할 수 있습니다. http 모듈은 코드의 가독성과 확장성이 떨어지고 이를 해결하기 위해 express 모듈이 등장했습니다.
express 모듈을 사용해 서버를 구축합니다. 프로젝트 내에 index.js를 생성한 뒤 설치한 express 모듈을 위의 그림과 같이 가져옵니다.
require을 통해 express를 가져온 뒤 app 객체에 express()를 호출해 express application을 생성합니다.
7. ejs 생성
node.js로 생성한 프로젝트를 뷰에서 보기 위한 템플릿 엔진인 ejs 템플릿을 사용합니다.
터미널에서 ‘node install ejs’를 통해 모듈을 설치한 뒤 프로젝트에 ‘views’ 폴더를 생성한 후 위의 그림과 같이 간단한 테스트용 ejs 파일을 생성합니다.
8. 미들웨어를 사용한 정적 파일 로딩
생성한 ejs 파일과 이미지와 같은 정적 파일을 로딩하는 코드를 작성합니다.
해당 프로젝트의 view engine을 set()을 통해 ejs로 지정합니다.
정적 파일은 보통 public 또는 static 폴더를 생성한 뒤 해당 폴더에 저장해둡니다. 이 폴더를 express.static()을 통해 불러올 수 있습니다.
9. 서버 실행 코드 작성
app aplication을 사용해 서버를 실행하는 코드를 작성합니다.
먼저 app.get()를 살펴보겠습니다. get() 메소드는 get 방식으로 매핑을 수행할 때 사용합니다. 파라미터를 통해 매핑할 주소를 작성하고 request와 result에 대한 동작을 작성합니다.
위의 코드의 경우 send()와 render()가 사용되었습니다. send()는 result에 파라미터로 작성된 메세지를 전송하고 render()는 파라미터로 뷰를 전송합니다.
위의 내용들을 작성한 뒤 listen()을 통해 서버를 실행하도록 합니다. 상수로 작성한 포트번호로 서버를 실행하고 콘솔창에서 서버가 실행됐다는 메세지를 출력하도록 작성합니다.
10. node.js 프로젝트 실행
작성한 프로젝트는 터미널에서 실행합니다.
‘node index.js’ 명령어를 입력해 실행하며 실행시 listen()에서 작성한 log가 출력되는 것을 확인할 수 있습니다.
11. 화면에서 프로젝트 실행 결과 확인
브라우저에서 ‘localhost:8080’과 ‘localhost:8080/test’의 경로로 접근한 결과 다음과 같이 send()와 render()가 정상적으로 수행된 것을 확인할 수 있습니다.