Express.js에서의 app은 웹 애플리케이션 자체를 나타내는 객체이며, router는 애플리케이션에서 경로별로 라우팅을 정의하고 그룹화하는 객체입니다. 간단하게 설명하면, app은 전체 애플리케이션을 설정하고, router는 애플리케이션 내에서 특정 경로에 대한 라우팅을 관리합니다.
app은 Express.js 애플리케이션을 초기화하는 인스턴스입니다. HTTP 서버를 생성하고, 미들웨어를 등록하고, 라우팅을 설정하는 등 애플리케이션의 전반적인 설정을 담당합니다. app에는 미들웨어를 등록할 수 있으며, 미들웨어는 HTTP 요청과 응답을 처리합니다. app에는 경로에 따른 라우팅도 직접 등록할 수 있습니다.
javascript
Copy code
const express = require('express');
const app = express();
app.get('/', (req, res) => {
res.send('Hello, World!');
});
app.listen(3000, () => {
console.log('서버가 3000번 포트에서 실행 중입니다.');
});
router는 경로별로 라우팅을 그룹화하는 데 사용됩니다. router 인스턴스를 생성하고, 해당 라우터에 미들웨어를 등록하며, 경로별로 특정 기능을 수행하는 핸들러를 정의할 수 있습니다. router는 app에 마운트되어 사용되며, 경로를 기준으로 분리된 라우팅을 제공합니다.
const express = require('express');
const router = express.Router();
router.get('/', (req, res) => {
res.send('Router Example');
});
module.exports = router;
이 라우터를 app에서 사용한다.
const express = require('express');
const router = require('./router'); // 위의 router 예시를 가져옴
const app = express();
app.use('/example', router); // '/example' 경로에 대한 라우터 등록
app.listen(3000, () => {
console.log('서버가 3000번 포트에서 실행 중입니다.');
});
따라서, app은 Express.js 애플리케이션의 주요 객체이며, router는 해당 애플리케이션 내에서 경로별로 라우팅을 구조화하고 모듈화하는 데 사용됩니다.