Model-View-Controller 의 준말이며, 유지보수성이나 유연성이 높은 아키텍처 디자인 패턴이다.
소프트웨어를 설계할 때 특정 맥락에서 자주 발생하는 고질적인 문제들이 다시 발생할 때 재사용할 수 있도록 만든 방법이다.
디자인 패턴을 사용하면 좋은 점?
- 이미 정해진 방식의 패턴을 사용하므로 개발자 간 의사소통이 원활하다.
- 소프트웨어 구조 파악이 용이하다.
- 재사용을 통해 개발 시간을 단축할 수 있다.
- 설계를 변경할 경우 비교적 유연하게 대처할 수 있다.
유저가 컨트롤러에 요청하면 모델에서 해당하는 데이터를 처리하여 컨트롤러로 보내고, 컨트롤러는 유저가 볼 수 있도록 뷰를 통해 출력한다.
유저가 보는 화면은 뷰 화면이지만, 그 안에는 컨트롤러와 모델도 함께 일을 하고 있다.
프로그램이 목표하는 작업을 원활히 수행하기 위해 필요한 물리적 개체, 규칙, 작업 등의 요소들을 구분하는 역할을 한다.
- 데이터 담당
- 데이터를 다루는 로직에서 모델에 모아, 데이터와 뷰를 격리시킴
- 뷰나 컨트롤러에 대한 정보 X (데이터를 참조할 수 없다)
- 코드 관리 편리성 ↑
- Model을 사용할 경우 이후 데이터베이스 교체가 용이
사용자가 보이는 화면에 입출력 과정 및 결과를 보여주는 역할을 한다.
입출력의 순서나 데이터 양식은 컨트롤러에 종속되어 결정되므로, View에서는 도메인 모델의 상태를 변환하거나 렌더링을 한다.
- 화면 출력 담당(사용자가 보는 페이지)
- UI와 관련된 코드
- 모델이나 컨트롤러에 대한 정보 X
- 클라이언트 측인 html/css/javascript 들을 모아둔 컨테이너
Model과 View를 중간에서 제어하는 역할을 하는 동시에 도메인 객체들의 조합을 통해 프로그램 작동 순서나 방식을 제어한다.
- Model과 View 제어 담당
- 사용자가 접근한 URL에 따라 사용자 요청사항 파악
- 요청에 맞는 데이터를 Model에 의뢰하며, 데이터를 View에 반영하여 사용자에게 알려준다.
- 모델이나 뷰에 대한 정보 O
협업할 때엔 MVC와 같은 디자인 패턴을 사용하는 쪽이 개발능률을 올릴 수 있으므로 MVC 패턴에 대해 알아보았다.