본문 바로가기
개발 공부/데이터베이스

MVC모델 개념

by 크롱이크 2021. 8. 5.

MVC란?

model view controller의 약자

일련의 소프트웨어가 돌아가는 하나의 패턴, 하나의 아이디어라고 생각하면 된다.

이것의 장점은 유지보수가 편해지는 코드 구성을 만들 수 있다.

 

역할에 따라 확실하게 분리하여 유지보수를 용이하게 하고 프로그램의 확장성과 유연성을 높이기 위한 기법이다.

데이터가 추가되면 Model 부분만 수정하고, UI가 수정되면 View 부분만 수정한다.

물론 Controller는 두 부분을 관장하기 때문에 일부 수정이 필요하다.

하지만 기존처럼 메인 다이얼로그/폼에서의 무분별한 하드 코딩이 필요 없다.

 

MVC에는

model과 view, controller 라는 개념이 있다. 

 

1. Model

데이터의 정보를 가지고 있다. 데이터베이스와 연결이 되있어서   
데이터베이스랑 얘기하고, 가져온 값들을 컨트롤러랑 이야기한다.

모델이 뷰와 직접얘기하는 경우는 없다.

컨트롤러가 모델에게 불어보면 데이터를 반환한다

 

2. View

유저가 보는 화면을 보여주게 하는 역할, 우리 눈에 보이는 것을 담당한다.

액션이나 이벤트를 데이터를 리턴한다.

컨트롤러랑만 이야기한다. 

3. controller

뷰에서 일어나는 액션과 이벤트에대한 인풋값을 받는다.
모델에게 전달하기전에 가공과정을 거친다.
가공된 데이터를 모델에게 넘겨주면 모델에서 업데이트하거나 데이터베이스랑 얘기해서 컨트롤러가 필요한 데이터를 반환한다.

 

 

mvc를 지키면서 코딩하는 방법
1.model은 controller와 view에 의존하지 않아야 한다.
model 내부에 controller와 view에 관련된 코드가 있으면 안된다.

2 view는 model에만 의존해야 하고, controller에는 의존하면 안된다. 

(view 내부에 model의 코드만 있을 수 있고, controller의 코드가 있으면 안된다.)

3. view 가 model로부터 데이터를 받을 때는, 사용자마다 다르게 보여주어야 하는 데이터에 대해서만 받아야한다.

4. controller는 모델과 뷰에 의존해도된다.

5. 뷰가 model로부터 데이터를 받을 때, 반드시 컨트롤러에서 받아야한다.

 

출처:

1)코드스테이츠

2)https://www.youtube.com/watch?v=ogaXW6KPc8I

 

반응형

댓글