node.js

node.js 로 서버 만들기

modori@ 2025. 11. 11. 00:15

 

 

 

node먼저 알아보기

Node.js는 크로스 플랫폼 오픈소스 자바스크립트 런타임 환경으로, 구글 크롬의 V8 자바스크립트 엔진을 기반으로 만들어졌습니다. 

이를통해서 웹 브라우저 내에서만 작동하던 자바스크립트를 브라우저 밖, 즉 서버나 다양한 환경에서 실행할 수 있게 되었습니다.

V8 엔진은 자바스크립트 코드를 매우 빠른 기계어 코드로 컴파일하여 실행하며, 인터프리터를 사용하지 않고 JIT(Just-In-Time) 컴파일 방식을 통해 최적화된 성능을 제공합니다.

 

오늘은 이 node.js로 서버를 구성하기전 단계인 프로젝트 세팅을 진행해볼 것입니다.

JIT: 프로그램을 실행할 때 필요한 부분을 즉석에서 컴파일하는 방식

프로젝트 생성

이제 프로젝트를 생성해보도록 하겠습니다.

Node.js 프로젝트를 위해 package.json 파일을 먼저 생성하도록 하겠습니다.

# bash
# 프로젝트 디렉토리 생성
mkdir node-server

# 프로젝트 디렉터리 이동
cd node-server

# npm 초기화 (package.json 생성)
# -y는 빠른 생성 ( 대화형 질문 스킵 )
npm init -y

 

 

이제 생성된 해당 pakage.json파일을 확인하면 잘 나온 것을 확인할 수 있습니다.

// pakage.json
{
  "name": "server",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "description": ""
}

 

 

라이브러리 설치

이제 node.js 로 서버를 구축할 때, 사용하는 라이브러리를 설치해줄겁니다.

 

express

Node.js가 JavaScript를 서버에서 실행할 수 있게 해주는 런타임 환경이라면, Express.js는 그 위에서 웹 서버를 쉽게 구축할 수 있게 해주는 프레임워크입니다. 

http express
  간결하고 직관적인 코드
서버를 설정하고 라우팅을 직접 구현해야 함
요쳥별 분기처리 증가시 복잡도 향상
라우팅기능 내장 
미들웨어 기능이 없으며, 필요한 기능을 직접 구현 요청 처리 과정에 여러 기능을 쉽게 추가할 수 있는 미들웨어 시스템을 제공
  동적 HTML 페이지 생성을 위한 다양한 템플릿 엔진을 지원

dotenv

dotenv는 환경변수를 .env파일에 저장하고 process.env로 로드하는 라이브러리입니다.

dotenv를 사용하는 이유는 개발 도중 사용하게되는 서버주소, 고유 API KEY등 오픈소스에 노출되면 보안적인 위험이 생기는 값들을 환경변수 파일로 따로 관리하기 위해서입니다.

 

body-parser

Express에서 HTTP 요청의 본문(body)을 쉽게 파싱할 수 있게 도와주는 미들웨어입니다. JSON, URL-encoded 형식 등 다양한 포맷의 요청 데이터를 처리해, 서버에서 클라이언트가 보낸 데이터를 편리하게 사용할 수 있게 합니다.

 

 

DB 세팅

모든 라이브러리를 정상적으로 다운로드 했다면 이제 데이터를 실제로 저장하기위해 DB를 세팅해야합니다.
 저는 mac 환경이기 때문에 brew로 mysql를 다운해줍니다.

 brew install mysql

 

 

이제 dbeaver를 다운로드해줍니다

dbeaver란 데이터베이스 관리 및 개발 도구로, 다양한 데이터베이스를 한 곳에서 편리하게 관리할 수 있도록 도와주는 소프트웨어입니다.

 

직관적인 GUI로 누구나 쉽게 SQL 쿼리 작성, 실행, 데이터 편집, ERD 생성 등 다양한 작업을 할 수 있습니다.

오픈소스로 무료이기 때문에 사용하기도 편합니다.

 

https://dbeaver.io/download/

 

Download | DBeaver Community

Download DBeaver Community 25.2.4 Released on November 2nd 2025 (Milestones). It is free and open source (license). Also you can get it from the GitHub mirror. System requirements. DBeaver PRO 25.2 Released on September 8th, 2025 PRO version website: dbeav

dbeaver.io

 

 

mysql 실행하기

이제 모든 설정을 마쳤다면 아래 명령어로 아까 설치한 mysql의 상태를 확인해줍니다.

brew services list

// Homebrew로 설치한 백그라운드 서비스들의 상태를 보여주는 명령어

 

실행되고있지 않는다면 mysql을 실행시켜줍니다.

 brew services start mysql

 

이러면 정상적으로 실행되고있는 모습을 보실 수 있습니다.

 

초기 비밀번호 세팅

이제 mysql의 초기 보안 세팅을 진행해줍니다.

mysql_secure_installation

 

...
Enter current password for root (enter for none):  ## 처음 설정하는 경우라면 ENTER 로 넘어간다

...
Change the root password? [Y/n] y  ## root 계정의 패스워드 교체유무
New password: 
Re-enter new password:

...
Remove anonymous users? [Y/n] y  ## anonymous 계정 삭제유무

...
Disallow root login remotely? [Y/n] n ## 외부에서 root 계정의 로그인 허용유무
 
...
Remove test database and access to it? [Y/n] y  ## test 데이터베이스 삭제 유무

...
Reload privilege tables now? [Y/n] y  ## privileges 테이블 재시작 유무

 

 

모든 보안 설정을 마쳤다면 mysql을 root권한으로 접근해줍니다.

mysql -u root -p
// -u 는 user name을 root로, -p는 명령어 실행 후, 비밀번호를 입력하겠다는 내용

 

 

데이터베이스 생성

이제 데이터를 저장할 새 데이터베이스를 만들어야겠죠?

원하는 이름으로 새로운 데이터베이스를 생성해줍니다.

 

mysql> create database 원하는이름;
// 데이터베이스 생성

 

 

생성까지 마친 후 데이터베이스가 정상적으로 생성되었는지 확인해줍니다

 

mysql> show databases
// 모든 데이터베이스 조회

 

이제 성공적으로 생성된 걸 확인할 수 있습니다.