본문 바로가기

[NodeJS] Express.js로 웹 서버 만들기 - 01

2022.06.03. 오전 7:00
by 코드트리

최근 node.js를 활용하면서 json-server란 기능으로 간단한 CRUD까지 구현해 보았다.

아직 웹퍼블리셔라는 직업군으로 있기때문에, 프론트엔드 개발에 관련된 기능은 모두 처음접해보는 기술들이 많았다.

작업을 통해 json으로 간단한 db의 기능을 만들 수 있는 점이 나에게는 무척 흥미로웠다.

현재 프로젝트와 같은 환경에서 (보안상 인터넷을 이용하지 못하는 실무 프로젝트)에서 json-server를 이용하면 별도의 db 프로그램이 없어도 간단한 To-do 리스트와 협업 툴 정도는 구현할 수 있지 않을까 하는 아이디어가 떠올랐다.

아직은 오프라인에서는 구현해 보지 못했기 때문에 추후 다루어보기로하고, 이번 챕터에서는 express 웹서버와 json-server로 CRUD까지 구현해 본 내용까지 정리해 보려고 한다.

이번 챕터는 글 4개로 아래와 같이 정리해보려고 한다.

  1. Node.js의 Express로 웹 서버 만들기

  2. 웹 서버의 라우팅 처리 방법

  3. Express에서 에러 처리와 정적 파일 제공하는 방법

  4. Json-server 구축 및 활용(방명록 만들기 소스제공)

Node.js를 알아보자.

사용률이 높은 데에는 다 이유가 있다.

작업에 들어가기 전에 간단하게 Node.js를 사용하는 이유에 대해서 알아보자.

장점을 간단히 요약하면 다음과 같다.

  • 자바스크립트 개발자가 웹 서버 개발까지 가능하다.

  • 프런트엔드와 백엔드 개발을 동시에 할 수 있는 풀스택 개발 능력을 갖추게 된다.

  • 빠른 웹 애플리케이션 개발이 가능하기 때문에 유지 보수 비용 절감 즉, 개발 생산성이 향상된다.

Express.js 란?

http://expressjs.com/ko/

Node.js에서 웹 애플리케이션 혹은 API 서버를 구축하는데 가장 많이 사용되는 대표적인 프레임워크이다.

Express.js로 웹 서버 만들기

무작정 따라하기 : 간단하게 웹서버를 만들 수 있다.

본격적으로 웹서버를 만들어보자.

먼저 에디터 프로그램 (VSCode) 설치가 되어있고, Node.js 가 설치되어 있지 않다면, 설치해 주자.

안정적인 LTS 버전을 설치해 주자.

  1. 먼저 테스트할 프로젝트 폴더를 생성해 준다. VSCode를 실행하여 터미널을 켜고 해당 폴더에 접근하여 세팅 준비를 해준다.

2. VSCode의 터미널에서 다음 명령어를 실행하여 package.json 파일을 만들어준다.

npm init

명령어를 입력하면 필요한 정보를 입력해 주고 마지막에 yes를 입력하면 package.json 파일이 생성된 것을 볼 수 있다. 각 항목의 내용은 아래 표를 참조하자.

항목

내용

package name

패키지 이름으로 프로젝트 혹은 현재 애플리케이션 이름을 말한다.

version

패키지, 프로젝트, 애플리케이션 버전 면을 말한다.

description

패키지, 프로젝트, 애플리케이션의 설명을 말한다.

entry point

프로젝트에서 가장 먼저 실행되는 자바스크립트 실행파일로 웹 서버의 경우 index.js 혹은 app.js로 지정해 준다.

test command

코드 테스트 시에 입력해 줄 명령어로, 사용하지 않을 경우 빈 값으로 지정된다.

git repository

코드를 저장해둔 깃(Git) 저장소 주소로 사용하지 않을 경우 빈 값으로 지정된다.

keywords

패키지, 프로젝트, 애플리케이션의 검색을 위한 키워드

license

패키지, 프로젝트, 애플리케이션의 라이선스로 기본값은 ISC (Internert Systems Consortium)에서 허용한 자유 소프트웨어 라이선스

  • Package.json 파일은 npm 을 통해 추가하는 패키지들의 버전과 의존성 정보를 관리하는 파일이다.

VSCode 터미널로 실행해도 상관없다.

▶ 참고 : 일일이 정보 입력이 귀찮다면 다음 명령어를 입력해 주면 단계를 건너뛸 수 있다.

// y의 의미는 "yes"라고 한다. npm init -y

3. 다음 명령어로 Express를 설치해 준다.

npm install express

  • Express 패키지가 설치되면 프로젝트 폴더에 node_modules라는 폴더가 생성되며, 자동으로 express 패키지가 참조하고 있는 다른 npm 패키지들이 설치된다. (패키지 의존성이라 부른다.)

4. 루트 경로에 app.js 파일을 만들어 다음 코드를 작성해 준다.

const express = require('express'); const app = express(); const port = 3000; // 서버 포트 번호, 사용중이면 변경해주자' // 클라이언트에서 HTTP 요청 메소드 중 GET을 이용해서 'host:port'로 요청을 보내면 실행되는 라우트 app.get('/', (req, res) => { res.send('Hello World!'); }); // app.listen() 함수를 사용해서 서버를 실행해준다. // 클라이언트는 'host:port'로 노드 서버에 요청을 보낼 수 있다. app.listen(port, () => { console.log(`서버가 실행됩니다. http://localhost:${port}`); });

5. 다음 명령어를 통해 서버를 실행해 보자.

node app.js

6. 브라우저를 실행하고 http://localhost:3000을 입력하면 다음과 같은 화면이 나오면 성공이다!

간단하게 로컬서버가 만들어졌다.

이번 챕터의 첫번째 목표를 달성했다. 글이 길어서 그렇지 막상 몇번 따라해보면 순식간에 이루어지는 셋팅이다. 프로젝트를 하다보면 자연스럽게 손에익을 것이다. 다음 글에서는 라우팅에 대해서 알아보자.

함께 보면 좋은 글

해당 콘텐츠는 프리미엄 구독자 공개(유료) 콘텐츠로 무단 캡쳐 및 불법 공유시 법적 제재를 받을 수 있습니다.

본 콘텐츠는 무료로 제공중입니다.
콘텐츠가 마음에 드셨나요?

펀코딩 구독으로 더 많은 콘텐츠를 만나보세요!