모델-뷰-컨트롤러 패턴

Jmnote (토론 | 기여)님의 2019년 5월 29일 (수) 21:39 판 (→‎같이 보기)

1 개요

Model–View–Controller, MVC
모델-뷰-컨트롤러, MVC 패턴
  • UI와 로직이 분리되어 한쪽 모듈 수정시 서로 영향 적음.[1]
  • 소프트웨어 아키텍처[2]
  • 이제는 고전이 된(?) 전형적인 애플리케이션 OOP 구조
  • 소위 소프트웨어 프레임워크라고 하는 것들이 대부분 이 구조를 지원함
  • 별도의 프레임워크를 사용하지 않더라도 이 구조로 설계된 소프트웨어들이 많음
  • 기능확장, 코드 유지보수가 용이함
  • 유저 인터페이스와 비지니스 로직 분리
  • DRY 유지 편이성, 코드 관리 편이성

2 구성

요소 설명
모델
  • "데이터 처리는 여기서..."
  • 데이터 구조 표현
  • 기능과 데이터 제공
  • 비즈니스 로직(+DAO) 담당
  • 데이터를 추출, 입력, 갱신하는 함수 포함
  • "사용자에게 보이는 것들은 여기에..."
  • 모델의 상태 출력
  • 사용자에게 응답
  • 사용자에게 보이는 부분
  • 웹페이지 또는 그 일부, RSS 등의 출력
컨트롤러
  • "뭔가 이벤트가 발생해서 일을 해야 한다면 여기서 컨트롤..."
  • 사용자 입력[3] 처리
  • 모델이나 뷰를 변경
  • 모델과 뷰 사이에서 동작하며 비즈니스 로직 처리
  • 핵심적인 흐름

 

 

 

3 웹애플리케이션 MVC ★

  • 웹 애플리케이션에서 MVC의 일반적인 형태

 

4 변형판

5 같이 보기

6 참고

  1. 화면구성(UI)은 View가, 로직은 Controller가 담당하도록 함
  2. MVC는 디자인 패턴 중 하나로 볼 수도 있지만, 가장 큰 틀이 되므로 소프트웨어 아키텍처라고 하는 것이 적절하다.
  3. 물론 사용자 입력을 직접 받는 곳은 View이다. 컨트롤러는 해당 이벤트의 실질적인 처리를 담당함
문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}