본문 바로가기
카테고리 없음

Node.js와 MongoDB로 간단한 API 서버 만들기

by tmvk9dg 2024. 11. 19.
반응형

Node.js와 MongoDB를 활용하여 간단한 API 서버를 구축하는 과정은 현대 웹 개발에서 매우 중요합니다. 두 가지 기술은 빠르고 효율적인 웹 애플리케이션 개발을 가능하게 해줍니다. 본 포스팅에서는 이 두 가지 기술을 조합하여 RESTful API를 구축하는 방법을 자세히 살펴보도록 하겠습니다.

Node.js와 MongoDB 소개

반응형

Node.js는 서버 측에서 자바스크립트를 실행할 수 있게 해주는 오픈 소스 런타임 환경입니다. 이 플랫폼은 비동기식 이벤트 기반 구조로 작동하여 높은 성능을 발휘합니다. MongoDB는 JSON 스타일의 문서 기반 데이터베이스로, 유연한 데이터 모델과 뛰어난 확장성을 자랑합니다. 이러한 기술들이 조화를 이루면 효율적인 데이터 처리 및 관리가 가능합니다.

API 서버 설정하기

프로젝트를 시작하기 전에 필요한 환경을 설정해야 합니다. Node.js와 MongoDB가 이미 설치되어 있다면, 새 프로젝트 디렉토리를 생성하고 그 안에서 초기 설정을 진행합니다.

환경 설정

  • 새로운 프로젝트 디렉토리를 만듭니다.
  • 해당 디렉토리에서 npm init 명령어를 실행하여 package.json 파일을 생성합니다.

이 파일은 프로젝트의 메타데이터 및 필요한 패키지를 관리하는 역할을 합니다.

Express.js 설치

Express.js는 Node.js를 위한 웹 프레임워크로, RESTful API 구축에 빈번하게 사용됩니다. 터미널에서 다음 명령어를 실행하여 Express.js를 설치합니다.

npm install express --save

Express 서버 구성하기

기본 서버를 설정하기 위해 먼저 app.js라는 파일을 생성합니다. 아래 코드를 추가하여 Express 서버를 구성할 수 있습니다.

const express = require('express');

const app = express();

const port = 3000;

 

app.get('/', (req, res) => res.send('Hello World!'));

 

app.listen(port, () => console.log(서버가 ${port} 포트에서 작동 중입니다.));

 

API 라우팅

RESTful API는 리소스를 URL로 표현하고, HTTP 메소드를 사용하여 클라이언트와 서버 간의 상호작용을 정의합니다. Express.js에서는 다양한 메소드를 통해 API 라우팅을 설정할 수 있습니다.

반응형

app.get('/users', (req, res) => {

// 사용자 목록을 조회하는 로직

});

 

app.post('/users', (req, res) => {

// 새로운 사용자를 생성하는 로직

});

 

이러한 방식으로, 특정 사용자 정보를 업데이트하거나 삭제할 수 있는 엔드포인트를 추가할 수 있습니다.

MongoDB와의 연동

MongoDB는 데이터 저장소로 매우 우수한 성능을 발휘합니다. Node.js와 연결하기 위해 Mongoose라는 ODM(Object Data Modeling) 라이브러리를 사용합니다. Mongoose를 통해 MongoDB와의 연결 및 데이터 모델 구성을 더욱 쉽게 할 수 있습니다.

Mongoose 설치

Mongoose를 설치하기 위해 다음 명령어를 실행합니다:

npm install mongoose --save

MongoDB 연결

다음으로, MongoDB에 연결하기 위한 코드를 app.js 파일에 추가합니다.

const mongoose = require('mongoose');

 

mongoose.connect('mongodb://localhost/mydatabase', { useNewUrlParser: true, useUnifiedTopology: true })

.then(() => console.log('MongoDB에 성공적으로 연결되었습니다.'))

.catch(err => console.error('MongoDB 연결 실패:', err));

 

모델 정의 및 사용하기

MongoDB에 저장할 데이터의 구조를 정의하기 위해 Mongoose 스키마를 사용합니다. 아래와 같은 방식으로 사용자 모델을 정의할 수 있습니다.

const userSchema = new mongoose.Schema({

name: String,

age: Number,

email: String

});

 

const User = mongoose.model('User', userSchema);

 

이제 정의한 모델을 사용하여 CRUD 작업을 수행할 수 있습니다. 예를 들어, 새로운 사용자를 생성하고 저장하는 코드는 다음과 같습니다.

반응형

const newUser = new User({

name: '홍길동',

age: 30,

email: 'hong@example.com'

});

 

newUser.save()

.then(doc => console.log('새 사용자 저장 완료:', doc))

.catch(err => console.error('사용자 저장 실패:', err));

 

JWT를 활용한 사용자 인증

웹 애플리케이션에서 사용자 인증과 권한 부여는 필수적인 요소입니다. JWT(JSON Web Token)는 로그인 시 생성되어 이후 요청 시 유효성을 검사할 수 있는 토큰 기반 인증 방식입니다.

JWT 라이브러리 설치

JWT를 사용하기 위해 jsonwebtoken 패키지를 설치합니다.

npm install jsonwebtoken --save

JWT 사용하기

사용자를 로그인시키고, JWT를 생성하는 예제 코드는 다음과 같습니다.

const jwt = require('jsonwebtoken');

const token = jwt.sign({ id: user.id }, 'secretKey', { expiresIn: '1h' });

 

이렇게 생성된 토큰은 클라이언트 측에서 저장되며, 이후 서버에 요청할 때마다 함께 전송됩니다.

API 테스트하기

Postman과 같은 도구를 사용하여 API의 동작 여부를 검사할 수 있습니다. 예를 들어, 사용자 목록을 가져오거나 새로운 사용자를 추가하는 등의 작업을 수행하며, 요청과 응답을 통해 API의 기능을 검증할 수 있습니다.

결론

Node.js와 MongoDB를 이용한 API 서버 구축은 현대적인 웹 서비스 개발에서 매우 중요한 과정입니다. HTTP 메소드를 활용한 RESTful API 설계, NoSQL 데이터베이스와의 연동, JWT를 통한 사용자 인증 모두가 성공적인 애플리케이션 개발에 기여합니다. 이와 같은 기초 지식을 잘 활용하여 더 복잡한 비즈니스 로직과 다양한 기능을 추가해 나가시기 바랍니다.

 

 

 

신용카드 발급하기 좋은 시기와 혜택

신용카드 발급하기 좋은 시기와 혜택신용카드의 발급은 개인의 재정 상태와 소비 패턴에 따라 큰 영향을 받을 수 있습니다. 따라서 신용카드를 언제 발급받는 것이 유리한지, 그 혜택은 무엇인

meofinance.com

 

반응형

자주 물으시는 질문

Node.js와 MongoDB를 함께 사용하는 이유는 무엇인가요?

Node.js는 비동기식 처리로 높은 성능을 제공하며, MongoDB는 유연한 데이터 구조를 지원합니다. 이 둘의 조합은 빠른 웹 애플리케이션 개발을 가능하게 합니다.

API 서버를 설정하는 과정은 어떻게 되나요?

API 서버를 구축하려면 먼저 Node.js와 MongoDB를 설치하고, Express.js 프레임워크를 이용해 기본적인 라우팅 및 서버 환경을 설정해야 합니다.

JWT는 어떻게 사용할 수 있나요?

사용자 인증을 위해 JWT를 생성한 후, 클라이언트에 전달하여 이후의 요청에 포함시켜 서버에서 인증할 수 있도록 활용합니다. 이 방법은 안전하고 효율적인 인증 방식입니다.

반응형

댓글