먼저, Ubuntu에 Node.js를 설치하고 간단한 게시판 애플리케이션을 만들어 보겠습니다.
Node.js를 설치하기 위해서는 apt
패키지 관리자를 사용합니다. 다음 명령어로 Node.js와 npm
(Node.js의 패키지 관리자)을 설치할 수 있습니다.
sudo apt update
sudo apt install nodejs npm
설치가 완료되면, Node.js와 npm 버전을 확인하여 설치가 잘 되었는지 확인합니다.
node -v
npm -v
이 게시판 애플리케이션은 Express.js를 사용하여 REST API로 작동하며, 게시글을 추가하고 조회할 수 있는 기능을 포함합니다. 데이터는 간단히 메모리에 저장되며, 실습용 애플리케이션입니다.
먼저, Node.js 애플리케이션을 위한 새로운 디렉토리를 만들고, 그 안에서 npm init
명령어를 실행하여 패키지 설정을 초기화합니다.
mkdir nodejs-board
cd nodejs-board
npm init -y
이제 Express.js와 Nodemon(개발 중 자동 재시작을 위한 도구)을 설치합니다.
npm install express
npm install --save-dev nodemon
nodemon
은 개발 중 서버 코드를 변경할 때마다 자동으로 서버를 재시작해 줍니다.
app.js
파일을 생성하여 게시판 애플리케이션의 기본 로직을 작성합니다.
touch app.js
nano app.js
const express = require('express');
const app = express();
const port = 3000;
// 게시글 데이터를 저장할 배열 (메모리 저장 방식)
let posts = [];
// 요청 바디를 JSON 형식으로 파싱
app.use(express.json());
// 게시글 전체 목록 조회
app.get('/posts', (req, res) => {
res.json(posts);
});
// 새로운 게시글 추가
app.post('/posts', (req, res) => {
const { title, content } = req.body;
const newPost = {
id: posts.length + 1,
title,
content,
createdAt: new Date()
};
posts.push(newPost);
res.status(201).json(newPost);
});
// 특정 게시글 조회
app.get('/posts/:id', (req, res) => {
const postId = parseInt(req.params.id, 10);
const post = posts.find(p => p.id === postId);
if (post) {
res.json(post);
} else {
res.status(404).json({ error: 'Post not found' });
}
});
// 서버 실행
app.listen(port, () => {
console.log(`Server is running on http://localhost:${port}`);
});
/posts
: 모든 게시글을 조회하는 GET 요청 경로./posts
: 새로운 게시글을 추가하는 POST 요청 경로. 요청 바디에 title
과 content
를 JSON 형식으로 전달합니다./posts/:id
: 특정 게시글을 ID로 조회하는 GET 요청 경로.package.json
파일을 수정하여 nodemon
을 사용해 개발 서버를 실행하도록 설정합니다.
"scripts": {
"start": "node app.js",
"dev": "nodemon app.js"
}
이제 npm run dev
를 실행하면 nodemon
을 사용해 서버를 시작할 수 있습니다.
다음 명령어로 서버를 실행합니다.
npm run dev
서버가 성공적으로 실행되면 http://localhost:3000
에서 서버가 동작하며, 기본적인 게시판 API가 준비됩니다.
게시판 API를 테스트하려면 Postman 같은 도구를 사용하거나, curl
명령어를 사용할 수 있습니다.
curl -X POST http://localhost:3000/posts \
-H "Content-Type: application/json" \
-d '{"title": "첫 번째 게시글", "content": "여기는 게시글 내용입니다."}'
curl http://localhost:3000/posts
curl http://localhost:3000/posts/1
sudo apt install nodejs npm
으로 Node.js 및 npm 설치.npm init -y
로 프로젝트 초기화 후 express
설치.curl
또는 Postman으로 API 요청을 테스트.이제 기본적인 게시판 API가 완성되었습니다. 데이터는 메모리에 저장되며, 추후에 데이터베이스를 연동하여 더 확장된 게시판을 만들 수 있습니다.