국비지원 공부 정리/Nodejs
MVC패턴
worldstroy
2025. 3. 27. 13:52
MVC(Model View Controller)
소프트웨어 공학에 사용되는 디자인 패턴의 하나로 프로그램을 Model, View, Controller로 나누어 설계하는 것 |
Model
어플리케이션의 데이터와 비즈니스 로직을 담당함 |
데이터베이스와의 상호작용, 데이터 처리, 유효성 검사 등을 수행함 |
뷰나 컨트롤러에 종속되지 않으며, 독립적으로 작동함 |
View
사용자 인터페이스(UI)를 담당하는 부분 |
모델로부터 데이터를 받아 사용자에게 보여주는 역할을 담당함 |
사용자 입력을 처리하지 않으며, 단순히 데이터를 보여주는 역할 만을 담당함 |
Controller
모델과 뷰 사이의 상호작용을 관리하며, 어플리케이션의 흐름을 제어하는 곳 |
사용자의 입력을 받아 모델을 업데이트하고, 모델의 변경사항을 뷰에 반영하는 장소 |
MVC 패턴의 장단점
장점
• 패턴들을 구분해 개발한다. |
• 유지보수가 용이하다. |
• 유연성이 높다. |
• 확장성이 높다. |
• 협업에 용이하다. |
단점
• 완벽한 의존성 분리가 어렵다. |
• 설계 단계가 복잡하다. |
• 설계 시간이 오래 걸린다. |
• 클래스(단위)가 많아진다. |
MVC패턴의 폴터 구조
파일 이름 | 역할 |
app.js | Router를 불러 오는 부분 위의 코드를 통해 특정 시작 URL의 역할을 구분지음 |
routes/index.js | • 경로를 controller와 연결해 설정 가능 |
Controller/Cmain.js | • 경로와 연결될 함수 내용을 정의 • 경로와 연결되는 함수이기에 req 객체와 res 객체를 사용가능 |
model/Comment.js | • ( 임시 ) DB에서 댓글 목록 데이터를 가져왔음을 가정 • 댓글 목록은 배열로 가져옴 • 각 댓글은 객체로 저장됨 |
views/comments.ejs | 실제 데이터를 보여주는 부분 |