NodeJS
NodeJS가 무엇이며 간단하게 웹서버 구축하기(with Express)
안녕하세요. NekoNyangYee입니다.
오늘 작성할 글은 제가 최근에 현타왔던 것중 하나가 지금 블로그를 벡엔드 없이 끝까지 유지 보수를 시킬 수 있을까? 라는 생각이 문뜩 들더군요... 그래서 찾아보던 도중 웹 서버를 관리할 수 있는 NodeJS
라는 친구부터 입문을 해보려고 합니다.
0. NodeJS란?
공식 문서에 따르면,
Node.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.
여기서 런타임은 프로그램을 실행할 수 있는 환경입니다.
NodeJS
를 알기 위해서는 먼저 JavaScript
를 알아야 합니다. 이 글을 보러 오신 분들은 이 언어의 기초는 알고 보시는거라 믿고 간략하게나마 설명하겠습니다.
만약 모르신다면 기초는 필수이기 때문에 먼저 JavaScript
를 공부하고 오시는 것을 추천드립니다.
1. 그럼 JavaScript는 뭔가요?
웹 페이지에 글 넣고, 그림 넣는 HTML이라는 언어를 조작해서 동적으로 바꿔주게 하는 언어입니다.
1-1 그럼 자바스크립트는 누가 해석하죠?
바로 브라우저입니다. 브라우저별로 기본적으로 자바스크립트 엔진이 탑제되어있습니다. 그 중에서 대표적으로 크롬에는 V8이라는 엔진이 탑제되어있습니다. 이 엔진이 처음 출시했을 때 성능이 너무 뛰어나서 그것만 따로 떼어와서 쓸 수는 없을까?라는 생각에 V8엔진의 오픈 소스를 가져와 노드 프로젝트를 시닥하였고, 우리가 알고있는 NodeJS
가 나오게 됩니다.
헷갈리시면 안되는게 NodeJS
는 자바스크립트 런타임입니다.
그래서 NodeJS
를 설치하면 브라우저를 키지 않아도 자바스크립트를 컴퓨터에서 수행할 수 있게됩니다.
간단하게 확인해보기 위해서
-
NodeJS
홈페이지에서 설치 후 Windows 검색창에 cmd를 검색해서 명령 프롬프트를 열어봅니다. -
설치가 제대로 됐는지 확인해보려면 명령 프롬프트에
node -v
를 입력 후 버전이 제대로 나오는지 확인해보면 됩니다. -
설치 확인이 끝났으면 node를 실행시키기 위해 node 입력한 후
console.log("Hello")
를 입력해서 제대로 출력되는 봅니다.
이렇게 많은사람들이 NodeJS
로 웹서버를 구축합니다.
2. NodeJS Express로 간단하게 웹서버 구축해보자
2-1 Express는 또 뭔가요?
Express
는 쉽게 얘기해서 NodeJS
를 쉽고 편리하게 쓰게 해주는 웹 어플리케이션 프레임워크입니다.
2-2 그럼 왜 Express를 사용하나요?
Express
는 프레임워크이므로 웹 애플리케이션을 만들기 위한 각종 라이브러리와 미들웨어 등이 내장돼 있어 개발하기 편하고, 수많은 개발자들에게 개발 규칙을 강제하여 코드 및 구조의 통일성을 향상시킬 수 있습니다.
(미들웨어와 같은 용어들을 모르실 수 있기 때문에 조만간 용어들만 따로 모아서 정리해서 올려보겠습니다.)
자 그럼 본격적으로 웹서버 구축해보겠습니다.
먼저 VSC를 설치 하시고 들어가셔서 아무 폴더를 불러와줍니다. 그리고 터미널을 여시고 아래와 같은 명령어를 칩니다.
npm init // 1 npm 초기화
npm install express // 2 express 설치
이렇게 하시면 폴더안에 package.json
이 생길 것입니다. 이것은 npm으로 설치한 패키지들의 의존성 정보들을 보관하는 곳이라고 보시면 됩니다.
여기까지 정상적으로 설치됬으면 아래 코드를 넣어봅니다.
const express = require("express");
const app = express(); // 여기서 express 함수를 호출하는 부분을 추가했습니다.
const port = 3000;
app.get("/", (req, res) => {
res.send("안녕 Express!!!!!!!");
});
app.listen(port, () => {
console.log("Express 서버가 포트 " + port + "에서 작동 중입니다.");
});
간략하게 설명드리면
-
express
모듈을 가져와서express()
를 호출하여 앱 인스턴스를 생성합니다. 이 앱 인스턴스는Express
애플리케이션을 나타냅니다. -
app.get('/', (req, res) => {...});
라인에서는HTTP GET
요청을 처리하는 라우트를 정의합니다. 사용자가 웹 브라우저를 통해 앱의 루트 경로에 접속하면 실행됩니다.(req, res) => {...}
함수는 요청(request)과 응답(response)을 다루는 함수로, 현재 설정된 루트 경로에서 요청이 들어오면 '안녕Express
!!!!!!!'를 응답으로 전송합니다. -
app.listen(port, () => {...})
; 라인은 Express 앱을 특정 포트(여기서는 3000)에서 실행하도록 설정합니다. 서버가 시작되면 콘솔에 'Express
서버가 포트 3000에서 작동 중입니다.'라는 메시지가 표시됩니다. 이는 서버가 정상적으로 시작되었음을 나타냅니다.
자 이러면 여러분들은 웹 서버를 구축하신겁니다. 저도 아직 기초만 배운터라 여기까지밖에 알려드리지 못한점 양해 부탁드리며 추후 더 배우는대로 글 올려보도록 하겠습니다!!