5분만에 Node.js 설치 및 개발환경 세팅하기
Node.js 란 ?
Node.js는 Chrome V8 JavaScript 엔진 위에서 동작하는 JavaScript 런타임 환경입니다. Node.js를 사용하면 JavaScript를 서버 사이드에서 실행할 수 있습니다. 기존의 웹 브라우저 환경에서만 동작하던 JavaScript를 서버 측에서 실행할 수 있게 되어, JavaScript로 전체 웹 애플리케이션을 개발할 수 있게 해줍니다.
Node.js를 통해 개발을 하면 이벤트 기반, 비동기 I/O 모델을 통해 높은 처리량과 확장성을 제공하며, 다양한 패키지와 라이브러리를 사용하여 개발 생산성을 높일 수 있습니다.
1. 필요 패키지 설치
npm 설치
npm이란 ?
Node.js 패키지 관리자(Node Package Manager)를 말합니다. 이는 Node.js 환경에서 사용되는 모듈과 패키지를 관리하고 설치하기 위한 도구입니다. npm을 통해 Node.js 개발에 유용한 패키지를 다운받아 줍니다. 장비는 Mac OS 기준으로 설명하겠습니다.
아래 명령어를 통해 npm을 설치해 줍니다.
brew install npm
express 설치
express란 ?
Node.js의 웹 애플리케이션 개발을 위해 가장 많이 사용하는 프레임 워크입니다. Express.js는 라우팅, 미들웨어, 요청 및 응답 처리 등을 위한 다양한 기능과 API를 제공합니다.
아래 명령어를 통해 express 를 설치해줍니다.
npm install express
ejs 설치
ejs란 ?
Node.js에서 템플릿 엔진인 EJS(Effective JavaScript Templating)를 사용하기 위한 npm 패키지입니다. EJS는 JavaScript를 사용하여 동적으로 HTML 마크업을 생성하기 위한 템플릿 엔진으로 많이 사용됩니다.
아래 명령어를 통해 ejs 를 설치해줍니다.
npm install ejs
express-generator 설치
express-generator 란?
express 프레임워크를 일반적인 웹 서버 표준에 맞게끔 기본 틀을 자동으로 생성해주는 도구입니다. 이 도구를 사용하면 Express.js 애플리케이션의 기본 파일 및 폴더 구조, 라우터, 미들웨어 등을 자동으로 생성할 수 있습니다. 해당 구조 및 컴포넌트는 아래 더 자세히 설명하도록 하겠습니다.
아래 명령어를 통해 express-generator 를 설치해줍니다.
npm install -g express-generator
2. 기본 웹 서버 뼈대 만들기
express-generator를 통해 웹 서버 개발에 필요한 기본 뼈대를 자동으로 생성해 줍니다.
express --view=ejs <서버명>
express --view=ejs joshServer
이 명령어를 실행하면 joshServer라는 이름의 새로운 폴더가 생성되고, 그 안에 기본적인 Express.js 프로젝트 구조와 파일이 자동으로 생성됩니다. 생성된 프로젝트는 package.json, app.js, routes 폴더, views 폴더 등으로 구성됩니다. 또한, --view=ejs 옵션을 통해 EJS 템플릿 엔진이 프로젝트에 설정됩니다.
joshServer 라는 디렉토리에 웹 개발을 위한 뼈대가 자동으로 생성이 되었습니다.
해당 디렉토리의 구조를 살펴보면 아래와 같습니다.
▪ joshServers는 프로젝트의 루트 디렉토리입니다. 해당 폴더는 Express.js 프로젝트의 기본 디렉토리로 생성됩니다.
▪ bin/www는 main 함수가 담겨있는 파일이라고 생각하면 됩니다.
▪ app.js는 애플리케이션의 진입점 파일입니다. 애플리케이션의 설정 및 미들웨어 등을 정의하는 중요한 파일입니다.
▪ package.jsonNode.js 는 프로젝트의 메타 데이터와 종속성(dependency) 정보를 담고 있는 파일입니다. npm install 명령을 실행하면 이 파일에 지정된 패키지들이 설치됩니다.(건드릴 필요 X)
▪ public은 정적 파일들을 저장하는 폴더입니다. CSS 파일, JavaScript 파일, 이미지 파일 등을 이 디렉토리에 저장하여 Express.js 애플리케이션에서 정적 파일 서비스를 제공할 수 있습니다.
▪ routes는 라우트(경로) 관련 파일들이 위치하는 폴더입니다. 이 폴더에 있는 파일들을 사용하여 각 경로에 대한 핸들러 함수를 정의합니다.
▪ views는 템플릿 파일들이 위치하는 폴더입니다. EJS 템플릿 엔진을 사용하도록 설정한 경우, 이 폴더에 있는 EJS 템플릿 파일들을 사용하여 동적인 HTML을 생성합니다.
프로젝트 구동을 위해 필요한 모듈(종속성)을 설치합니다. 프로젝트의 루트 디렉토리에서 실행합니다.
npm install
앱을 구동합니다.
node /bin/www
3. 서비스 작동 확인
간단하게 curl 명령어로 get 동작을 확인을 해도 되고
curl http://localhost:3000
웹브라우저에 도메인을 입력하여 확인해 봅니다. 저 같은 경우엔 AWS EC2 퍼블릭 도메인을 통해 확인했습니다.
이와 같이 express 를 사용하여 간단하게 Node.js로 웹 개발을 시작할 환경이 갖춰졌습니다. 😉