참고 자료
https://www.youtube.com/watch?v=AZtyyeCwNoc&list=PLSK4WsJ8JS4cQ-niGNum4bkK_THHOizTs&index=5
목표
코드 분리를 통해 라우팅 분리하기 (MVC 패턴이해하기)
MVC란?
MVC는 디자인 패턴중 하나로 Model, View, Controller의 약자이며, 프로젝트를 구성요소를 세가지 역할로 구분한 패턴입니다.

MVC, MVP, MVVM 개발 패턴 차이
https://devowen.com/457
저번 시간에 hello world!를 출력하는 서버를 열었다면 이번에는 root, Login 주소를 라우팅 할껀데 폴더별 역할을 분리하여 조금 더 가독성있는 코딩이 가능하게끔 라우팅 분리에 대해 알아봤습니다.
ejs 와html 차이점?
hmtl역할을 한다는 것은 비슷한데 차이점은 javaScpirt언어를 특정태그로 내장 시킬 수 있다는 점이 있다.
<% %> : 자바스크립트 언어 코드 내장
<% = %>, <% - %> :2가지는 동일하며 자바스크립트 변수 코드를 넣을 수 있음.
//app.js
//모듈
const express = require ('express');
const app = express();
const port = 3000;
//라우팅
const home = require("./routes/home");
//앱 세팅
app.set("views", "./views");
app.set("view engine", "ejs");
app.use("/", home);
app.listen(port, function() {
console.log(`서버가 실행됩니다. http://localhost:${port}`);
})

views = html 보관
routes = 기능별 API와 주소별 라우팅
기존 app.js에서 처럼 내용을 다 넣는게 아닌 코드 분리를 통해 코드 가독성을 높인 형태
"use strict";
const express = require("express");
const router = express.Router();
const ctrl = require("./home.ctrl")
router.get("/", ctrl.home);
router.get("/login", ctrl.login);
module.exports =router;
"use strict";
const home = (req, res) => {
res.render("home/index");
}
const login = (req, res) => {
res.render("home/login");
}
module.exports = {
home,
login,
};

