본문 바로가기
TIL/기술면접 대비

mvc 패턴

by J1-H00N 2023. 8. 17.

MVC란 Model-View-Controller의 약자로, 사용자 인터페이스 데이터 논리 및 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다. 비즈니스 로직과 화면을 구분하는데 중점을 두는데, 이러한 분리는 더 나은 관심사 분리와 관리를 제공한다. 그 외에 MVVM(모델,뷰,뷰모델), MVP (모델-뷰-프리젠터), MVW (모델-뷰-왓에버)가 있다.

MVC는 위에서 말한 것과 같이 아래와 같이 정리할 수 있다.

  1. 모델: 데이터와 비즈니스 로직을 관리합니다.
  2. 뷰: 레이아웃과 화면을 처리합니다.
  3. 컨트롤러: 명령을 모델과 뷰 부분으로 라우팅합니다.

모델은 일반적으론 뷰에게, 또는 업데이트 된 뷰를 제거하기 위해 가끔 컨트롤러에게 데이터가 어떻게 변경됐는지, 어떤 데이터를 보여줄지 지정하는 역할을 한다. 

뷰는 모델이 지정한 데이터를 어떻게 보여줄지 정한다. 따라서 사용자가 보는 부분이 된다.

컨트롤러는 사용자의 입력에 대한 반응에 응답하는 로직을 담고 있다. 모델을 업데이트해 데이터를 변경하기도 하고, 모델로부터 받은 데이터를 뷰에게 전송하거나 이미 전송받은 데이터를 다르게 보여주기 위한 명령을 내릴 수도 있다.

 

또한 각자 규정을 가지고 있다.

 

모델

  1. 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
  2. 뷰나 컨트롤러에 대한 어떤 정보도 알지 말아야 한다.
  3. 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야 한다.

  1. 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
  2. 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 한다.
  3. 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야 한다.

컨트롤러

  1. 모델이나 뷰에 대해 알고 있어야 한다.
  2. 모델이나 뷰의 변경을 모니터링 해야 한다.

 

정리

mvc 패턴이란 model, view, controller로 이루어진 소프트웨어 디자인 패턴을 의미한다. 모델은 데이터를 저장하고 정리해놓는 역할, 뷰는 그 데이터를 보여주는 역할, 컨트롤러는 모델에 있는 데이터를 뷰에 전달하고 뷰에서 전달받은 사용자의 조작을 모델에 작업하는 중재자 역할을 한다. 이처럼 각자의 역할을 분리하여 확장성과 유지보수성, 유연성을 높이고, 개발자가 각자의 작업에 집중하여 효율성을 높일 수 있게 만들어준다.

'TIL > 기술면접 대비' 카테고리의 다른 글

CORS(Cross Origin Resource Sharing)  (0) 2023.08.22
HTTP 메서드  (0) 2023.08.21
Primary Key, Foreign Key  (0) 2023.08.20
RDBMS의 정규화  (0) 2023.08.18
NoSQL과 RDBMS의 특징과 차이점(장, 단점)에 대해서  (0) 2023.08.16