[용어 정리] MVC 디자인 패턴이란 무엇인가?

2021. 8. 14. 15:14·CS
반응형

디자인 패턴

특정 문맥에서 공통적으로 발생하는 문제에 대해 재사용 가능한 해결책이다.

소스나 기계 코드로 바로 전환될 수 있는 완성된 디자인은 아니며, 다른 상황에 맞게 사용될 수 있는 문제들을 해결하는 데에 쓰이는 템플릿이다.

디자인 패턴은 프로그래머가 애플리케이션이나 시스템을 디자인할 때 공통된 문제들을 해결하는 데에 쓰이는 형식화된 가장 좋은 관행이다.  - [위키백과]

MVC란

MVC는 Model-View-Controller의 약자.

하나의 애플리케이션을 구성할 때 그 구성 요소를 세 가지로 구분한 패턴.

사용자 인터페이스로부터 비즈니스 로직을 분리하여,
서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있다.

 

출처 https://www.essenceandartifact.com/2012/12/


Model (모델)

애플리케이션의 정보, 프로그램에서 사용되는 데이터를 의미.

데이터베이스(DB), 상수, 문자열과 같은 변수 등을 뜻함.

'무엇'을 할지 정의.
 - 뷰, 컨트롤러에 대한 어떠한 정보도 알지 못한다.

 - 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.

 - Evenet 발생 시, 이벤트에 대한 처리 방법을 구현해야 한다. (데이터 간의 이동 및 변경)

 


View (뷰)

사용자들이 볼 수 있도록 출력을 담당하는 부분.

'화면으로 보여주는' 역할
 - 모델, 컨트롤러에 대한 어떠한 정보도 알지 못한다.

 - 모델의 정보를 따로 저장해서는 안된다. (컨트롤러가 보여주라고 요청하면, 보여주기만 하면 된다)

 - Event 발생 시, 이벤트 통지에 대한 처리 방법을 구현해야 한다. (화면상의 변화)

 

 


Controller (컨트롤러)

데이터와 사용자인터페이스 요소를 잇는 다리 역할.

사용자의 클릭 밑 수정 등에 대한 이벤트를 처리하는 부분.

'어떻게' 할지 정의
 - 뷰, 모델 대해 알고 있어야 한다.

 - 뷰, 모델의 변경을 모니터링 해야 한다.

 


참고자료

https://ko.wikipedia.org/wiki/%EB%AA%A8%EB%8D%B8-%EB%B7%B0-%EC%BB%A8%ED%8A%B8%EB%A1%A4%EB%9F%AC

 

모델-뷰-컨트롤러 - 위키백과, 우리 모두의 백과사전

모델, 뷰, 컨트롤러의 관계를 묘사하는 간단한 다이어그램. 웹 애플리케이션에서 일반적인 MVC 구성요소 다이어그램 모델-뷰-컨트롤러(model–view–controller, MVC)는 소프트웨어 공학에서 사용되는

ko.wikipedia.org

https://www.essenceandartifact.com/2012/12/

 

Essence and Artifact

Separating the Essencial from the Artificial

www.essenceandartifact.com

https://www.crocus.co.kr/1539

 

Crocus

Beginner와 Developer사이의 Crocus

www.crocus.co.kr

 

반응형
저작자표시 비영리 변경금지 (새창열림)
'CS' 카테고리의 다른 글
  • [용어 정리] 캐시(Cache) 란 무엇인가?
  • [용어 정리] REST API (RESTful API) 란 무엇인가?
  • [용어 정리] 자료구조(Data structure)란 무엇인가?
  • [용어 정리] 렌더링 방식과 웹 아키텍처에 따른 분류 CSR/SSR SPA/MPA
꾸매코더
꾸매코더
웹 / 앱 개발자
  • 꾸매코더
    꾸매코딩
    꾸매코더
  • 전체
    오늘
    어제
    • 분류 전체보기 (97) N
      • JavaScript (18)
        • Deep Dive (0)
      • React (5)
      • React-Native (9)
      • CSS (3)
      • TypeScript (1)
      • CS (10)
      • GitHub (4)
      • Clone Coding (15)
        • Kakaotalk [HTML + CSS] (10)
        • Momentum [JavaScript] (5)
      • Project (30)
        • Timer Project (14)
        • Netflix [React + Hooks] (12)
        • ToDoList [React-Native] (4)
      • 회고 (2) N
  • 링크

    • Github
  • hELLO· Designed By정상우.v4.10.3
꾸매코더
[용어 정리] MVC 디자인 패턴이란 무엇인가?
상단으로

티스토리툴바