1. EC2에 Node.js 설치
(1) 왜 Node.js 설치가 필요한가?
프로젝트를 서버에서 실행하기 위해 서버 환경에도 Node.js가 설치되어 있어야 함.
(2) NVM(Node Version Manager) 설치
AWS 공식 문서에서도 NVM 사용을 권장함.
설치 명령어
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.0/install.sh | bash
(이미지 참고: 페이지 4~5)
NVM 실행
. ~/.nvm/nvm.sh
(3) Node.js 설치
nvm install 10.16.0
(4) 설치 확인
node -e "console.log('Running Node.js ' + process.version)"
2. 앱 업로드 및 실행
(1) 앱 실행 과정
npm install
npm run start
(페이지 10 이미지에서는 npm install 후 npm run start 실행)
(2) EC2 보안 그룹 설정
- 인바운드 규칙에서 TCP 3000 포트 허용 필요 (페이지 11 참고)
(3) 브라우저 접속
http://EC2_공인IP:3000
3. 도서 관리 프로그램 만들기
도서를 JS 배열로 관리하며 다음 기능 제공:
- 조회(Read)
- 등록(Create)
- 수정(Update)
- 삭제(Delete)
(1) 기본 books.js 구조
var express = require('express');
var router = express.Router();
var books = [];
var id = 1;
router.get('/', (req, res) => {
res.send(books);
});
module.exports = router;
(이미지: 페이지 14)
(2) 도서 등록 API (POST)
router.post('/', (req, res) => {
var book = req.body;
book.id = id;
books.push(book);
id += 1;
res.sendStatus(200);
});
(3) 도서 수정 API (PUT)
router.put('/:id', (req, res) => {
var index = books.findIndex(book => book.id == req.params.id);
req.body.id = parseInt(req.params.id);
books.splice(index, 1, req.body);
res.sendStatus(200);
});
(4) 도서 삭제 API (DELETE)
router.delete('/:id', (req, res) => {
var index = books.findIndex(book => book.id == req.params.id);
books.splice(index, 1);
res.sendStatus(200);
});
(5) Express 앱에서 Router 등록
var express = require('express');
var app = express();
var router = require('./router.js');
var booksRouter = require('./books.js');
app.use(express.json()); // JSON Body 파싱
app.use('/router', router);
app.use('/books', booksRouter);
app.listen(3000, () => {
console.log('3000번 포트로 서버 실행');
});
(페이지 18 화면 참고)
4. 도서 관리 API 테스트 (Insomnia)
페이지 19~24의 이미지에서는 아래 항목을 테스트함:
- POST /books — 도서 생성
- GET /books — 전체 도서 목록 조회
- PUT /books/:id — 도서 정보 수정
- DELETE /books/:id — 도서 삭제
- 수정·삭제 후 다시 GET하여 결과 확인
각 테스트 결과는 JSON 형태로 정상 반환됨.
5. Static 미들웨어 (정적 파일 서비스)
정적 HTML, CSS, JS 등을 제공하는 기능.
사용법
app.use(express.static('public'));
접근 예시
http://서버주소/파일명
6. 클라이언트 프로그램 작성
페이지 27~32는 도서 목록을 보여주는 간단한 웹 UI를 작성하는 과정이며,
정적 HTML & JS로 서버의 books API를 호출하는 구조.
7. EC2에 배포 & 실행
- 클라이언트 파일 포함 프로젝트 전체를 서버로 업로드
- Node.js로 실행
- 브라우저로 접속해 UI 확인 가능
8. npm start의 문제점
- putty 종료 시 Node 서버도 종료됨
- 여러 Node 앱 실행 시 각각 접속해 실행해야 하는 불편함
- 해결책 → PM2로 백그라운드 실행
9. PM2 설치 & 사용
(1) 설치
npm install -g pm2
(2) 실행
pm2 start --name books index.js
(3) 주요 명령어
pm2 reload books
pm2 stop books
pm2 start books
pm2 delete books
pm2 list
pm2 logs books
pm2 monit'러닝커뮤니티 > 웹프로그래밍' 카테고리의 다른 글
| RESTful API (0) | 2025.12.07 |
|---|---|
| npm과 express 모듈 (0) | 2025.12.07 |
| NodeJS 소개 (0) | 2025.12.07 |
| OpenAPI 소개 (0) | 2025.12.07 |
| Ajax 기술 소개 및 활용 (0) | 2025.12.07 |