본문 바로가기
IT 제품, IT지식

Nodejs이란, Nodejs 설치, 웹서버 정리

by Mocca_ 2023. 1. 30.

Nodejs를 통해서 현 직장에서 웹서버 관리 및 유지보수를 하고 있습니다. NodeJs가 가져온 변화는 엄청납니다. 변화하는 속도도 빠른데요. 오늘은 Nodejs가 무엇인지 어디에 쓰이고 웹서버를 어떻게 설치하고 사용하는지 정리해보겠습니다.


[목차]

  1. Nodejs란?
  2. Nodejs로 무엇을 할 수 있을까? 
  3. Nodejs 웹서버 설치와 사용

반응형

 

 

 

1. Nodejs란?

node.js
node.js

 

Node.js는 자바스크립트 엔진인 V8에 비동기 이벤트처리 라이브러리인 ibuv를 결합한 플랫폼입니다. 자바스크립트로 브라우저에서의 한계를 넘어서 어디든지 서버개발이나 그 밖의 프로그래밍을 할 수 있습니다. 

 

Node.js가 뜨게된 경위는 딱딱한 C언어 계열 말고도 자바스크립트로도 서버 같은 백엔드를 개발할 수 있어서 입니다. 이는 프론트엔드 개발자에게 백엔드도 쉽게 할 수 있는 길을 열어준 것이나 다름없습니다. 

 

Node.js는 비동기 이벤트처리 방식을 우선으로 해서 빈번한 입출력처리하는 프로그램에 아주 적합합니다. 동기적 프로그래밍과 다르게 Node.js는 논블로킹 IO방식으로 효율을 극대화시켰습니다. 하지만 가독성 적인 측면과 콜백지옥으로 빠지기 쉽습니다. 그래서 Node.js에서는 Promise문법과 async문법으로 그 규율을 정해서 사용합니다. 

 

멀티프로세싱 부분에서도 코어의 수만큼 프로세스를 띄어주고 분산시켜주면 멀티프로세싱이 가능하며 원래 비동기 시스템이기에 Sync에 관한 문제는 없습니다. 

 

 

 

 

2. Nodejs로 무엇을 할 수 있을까?

 

npm이라는 node.js를 설치하면 같이 설치되는 기본 패키지 관리자가 있는데 이 곳을 이용해서 원하는 모듈을 설치할 수 있습니다. npm(node package manager)의 약자로 이미 구현해 놓은 패키지를 받아서 편리하게 사용할 수 있습니다. 

 

node를 설치한 후

https://nodejs.org/en/

 

Node.js

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

nodejs.org

원하는 프로젝트 파일에 npm init를 하면 package.json이 만들어지게 됩니다. 

이 package.json에는 현재 설치된 패키지, 모듈의 버전이 적혀 있고 이 package.json 파일만 있다면 언제든 이 버전대로 설치되게 됩니다. 쉽게 버전 관리를 할 수 있습니다.

 

원하는 모듈이나 패키지를 설치할 때 npm install '원하는 패키지명'을 터미널에 입력하면 해당 디렉토리에 설치되게 됩니다. 

 

npm은 node.js를 이용하는데 필수적이며 nodejs로 개발을 하는데 핵심적인 역할을 합니다. 쉽게 설치되는대신 버전관리나 소스관리에 유의해야합니다. 아는 만큼 쉽게 쓸 수 있으며 효율을 높여 빠르게 개발할 수 있습니다. 

 

 

3. Nodejs 웹서버 설치와 사용

 

Node.js에서는 웹서버를 아주 쉽게 모듈을 통해서 구현할 수 있습니다. 

웹서버를 쉽게 구현할 수 있게 만들어주는 npm의 패키지는 'express'라는 웹 프레임워크입니다. express는 웹서버를 만들기 위해 기본적으로 만들어지는 툴을 쉽게 구현해놨으며 nodejs에서 제일 많이 쓰는 패키지입니다. 

 

이 밖에 개발하고 코드 수정을 하고 저장하면 서버에 바로 적용되게 할 수 있는 nodemon,

Cross Origin Resource Sharing을 담당하는 cors,

동영상, 사진, 그림파일 등을 업로드 해주는 multer,

시스템을 운영할 때 모든 데이터의 로그를 관리해주는 winston,

메일링 서비스를 쉽게해주는 nodemailer,

엑셀파일 읽기등 업무를 처리해주는 xlsx, xlsx-js-style,

웹소켓 개발을 위한 socket-io,

페이지 크롤링, 비동기 연결 처리를 위한 axios,

앱을 실행시키고 비정상 종료가 되었을 때 자동으로 실행시켜주는 forever,

멀티클러스터 모듈을 사용하게 해주는 cluster,

서버자원을 모두 사용하고 무중단 서비스를 클러스터로 수행해주는 pm2

 

웹서버를 위한 유용한 패키지가 위의 것들보다 훨씬 많습니다. npm 웹페이지에 들어가서 얼마나 많은 사용자를 가지고 있는지 별점은 몇점인지 안정성은 있는지 확인하시고 사용하면 유용합니다. 앞에 말씀들인 것은 사용자에게 보증된 패키지, 모듈입니다. 

 

//터미널에서 실행
npm install express


//원하는 디렉토리에 server.js 생성 후 작성
const express = require('express');
const app = express();
const port = localhost || 3000;

app.get('/', (req, res) => {
    res.json({
        success: true,
    });
});

app.listen(port, () => {
    console.log(`server is listening`);
});

//터미널에서 해당 디렉토리 이동 후 node server.js

간단한 node.js를 이용한 express예제입니다. 

웹 브라우저에서 http://localhost:3000 을 하시면 콘솔창에 server is listening이 표시됩니다. 


[함께 읽으면 좋은 글]

2023.01.26 - [취미로 코딩하기] - 자바스크립트 ES6 , CommonJS 문법, 모듈시스템 차이

 

자바스크립트 ES6 , CommonJS 문법, 모듈시스템 차이

nodejs의 장점은 모듈시스템입니다. 모듈시스템을 구성하는 방법은 node에서는 단순하게 ES6식, CommonJS식 모듈시스템 2개가 있습니다. 오늘은 ES6, CommonJS 뭐가 다른지 어떨 때 무엇을 쓰는게 현명한

commnetall.tistory.com

 

2023.01.25 - [취미로 코딩하기] - Docker, 도커를 사용하는 이유와 도커 설치법

 

Docker, 도커를 사용하는 이유와 도커 설치법

도커를 사용하면 서버환경 구성하기 편하다는 말을 조금씩 들어왔지만 제대로 공부하고 설치해본 적은 없었습니다. 그래서 이번에는 도커를 활용해 AZURE나 AWS서버를 구축하는 과정을 해보려했

commnetall.tistory.com

 


 

 

 

댓글