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  실제 데이터를 보여주는 부분