지난글
Node.js + Express + TypeScript 게시판 만들기 #1 – 개발 환경 구성
자 지난 글에서는 Node.js + Express + TypeScript로 백엔드 기본 세팅을 했다.
이번 글에서는 개발 편의성을 위해 nodemon을 이용해서 서버 자동 재시작과 Express 라우터 분리를 구현해보려 한다.
1. nodemon 설치

> npm install -D nodemon
소스 수정할때마다 서버를 재기동하면 귀찮다. 그래서 nodemon을 사용하는건데 소스 저장 시 자동으로 재기동해주는 패키지이다.
2. package.json 스크립트 수정

"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"dev": "nodemon --watch src --exec ts-node src/index.ts"
},
— watch src: src 폴더 변경 감지
— exec ts-node: TypeScript 파일 실행 (src/index.ts)

> npm run dev
로그에 nodemon 어쩌리구 저쩌리구 볼 수 있다.
3. Express 라우터 분리
저번 글에서 라우팅은 index.ts에서 처리했지만 기능이 추가될수록 복잡해져 관리가 용이하지 않다.
때문에 라우터를 분리해서 관리하려고 한다.

src 아래 routes 디렉토리를 생성하고 index_routes.ts를 생성한다.

import { Router } from 'express';
const router = Router();
router.get('/', (req, res) => {
res.send('hello router');
});
export default router;
url에 / 로 들어오면 hello router를 응답하게 했다.
4. 라우터 연결
기존에 작성했던 src/index.ts를 수정한다.

import express from 'express';
import indexRouter from './routes/index_routes';
const app = express();
app.use('/', indexRouter);
app.listen(3000, () => {
console.log('server start!!!');
});
방금 생성한 index_routes를 import해서 / 요청은 index_routes.ts가 처리하게 했다.
5. 실행 확인
아까 npm run dev로 서버를 실행했고 nodemon 설정을 했기 때문에 위와같이 소스를 추가, 수정하면 알아서 재시작을 한다.

localhost:3000 접속을 하면 hello router 응답을 확인할 수 있다.
이번 글에서 nodemon을 이용한 서버 자동 재시작, Express 라우터 분리를 진행했다.
다음 글에서는 Express 기반 게시판 개발을 위해 Controller, Service, Router 구조를 분리하고 각 계층의 역할을 정리해본다.