⚠️ 해당 게시글은 모던애자일 팀원이 준비한 테크톡 내용을 스크랩했습니다.
출처 : 모던애자일 3기 백승범 블로그
MVC 패턴
내일 테크톡 발표 주제로 MVC 패턴 이라는 주제에 대하여 발표를 맡게 되어서 블로그에 자료 정리를 해...
blog.naver.com
내일 테크톡 발표 주제로 MVC 패턴 이라는 주제에 대하여 발표를 맡게 되어서
블로그에 자료 정리를 해보도록 하겠습니다.
1. MVC?
MVC 패턴이 만들어지기 전 개발자 들은 파일에 이름을 명시를 하며 한 폴더에 모두 저장을 했다고 합니다.
그런데 여기서 문제점이 하나 발생하는데,
한 곳에 파일을 저장하다 보니 각각의 역할을 하는 파일들이 모두 뒤섞여 버리고,
에러가 발생하면 그 에러를 찾기 까지 오랜 시간이 걸렸다고 합니다.
그래서 개발자들이 생각한 것이 각 파일의 역할대로 폴더 구조를 만들어 폴더안에 파일을 만들게 됩니다.
이때 생겨난 것이 MVC 패턴입니다.
2. Model, View, Controller
각각의 폴더안에 들어있는 파일이 무슨 역할을 하는 지 설명 드리도록 하겠습니다.
★Model
- 데이터의 행동을 가지고 있는 객체
- DB와 상호작용 (CRUD)
- 비즈니스 로직 수행
- 상태 변화 처리
- 상태 정보 변화
★View
- 데이터의 시각화
- 모델이 처리한 데이터를 받아서 사용
- HTML, CSS 등을 사용하여 User의 눈을 즐겁게 해준다.
★Controller
- 사용자의 요청을 해석하여 처리하고 결과를 반환
- Model과 View를 연결하는 중심부
- 상태코드를 전달하는 역할
3. MVC 흐름도

1. 사용자가 구글에 "moaeTime" 검색
2. View에서 "moaeTime"에 대한 검색결과 데이터를 달라고 Controller에게 요청
3. Controller에서 "moaeTime"에 대한 검색결과 데이터를 Model에게 달라고 요청
4. Model에서 "moaeTime"에 대한 검색결과 데이터를 DB에서 꺼냄
5. Model에게 받은 데이터를 Controller가 View로 전달
6. 사용자가 보는 UI(레이아웃)에 검색결과 데이터를 넣어서 웹 페이지 보여주기
MVC 규칙
MVC 규칙에는 크게 5가지가 있는데 3가지만 설명 드리도록 하겠습니다.
1. Model은 Controller와 View에 의존하지 않아야 한다.
(Model 내부에 Controller와 View에 관한 코드가 존재하면 안된다)
2. Controller는 Model과 View에 의존해도 된다.
(Controller내부에 Model과 View에 관한 코드가 있어도 된다)
3. View가 Model로 부터 데이터를 받을 때, 반드시 Controller에서 받아야 한다.
※MVC 한계
View와 Model을 처리해야 하는 Controller 입장에서
View와 Model의 동작이 많아지면 많아 질수록 Controller에는 코드가 점점 쌓이게 되어,
다수의 코드들이 복잡하게 연결되어 있을 수 도 있습니다.
최근댓글