MVC패턴은 모델, 뷰, 컨트롤러(Model, View, Controller)의 줄임말으로 사용자 인터페이스, 데이터 및 논리 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다.
💡 디자인 패턴이란? 건축으로치면 공법에 해당하는 것으로, 소프트웨어의 개발 방법을 공식화 한 것이다. 소수의 뛰어난 엔지니어가 해결한 문제를 다수의 엔지니어들이 처리 할 수 있도록 한 규칙이면서, 구현자들 간의 커뮤니케이션의 효율성을 높이는 기법이다.
- Model : 백그라운드에서 동작하는 로직을 처리한다. (데이터를 가진 객체, 파라미터로 주로 쓰인다. DB의 테이블과 대응하는 경우가 많다.)
- View : 사용자가 보게 될 결과 화면을 출력한다.
- Controller : 사용자의 입력처리와 흐름 제어를 담당한다. (사용자가 접근한 URL에 따라서 사용자의 요청사항을 파악한 후, 그 요청에 맞는 데이터를 Model에 의뢰하고, 데이터를 View에 반영해서 사용자에게 알려준다.)
모델(Model)
프로그램에 사용되는 데이터를 의미하며 데이터베이스(DB), 상수, 문자열과 같은 변수들이 해당된다. 모델에는 뷰나 컨트롤러의 정보가 전혀 없다. 단지, 정보만 반환하거나 설정할 수 있다. 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달한다.
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다
- 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
- 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야한다.
뷰(View)
텍스트박스, 라벨, 버튼 등 사용자 인터페이스(User interface) 요소들이 뷰에 해당한다. 사용자가 제어하고 데이터를 확인할 수 있는 영역이다. MVC 패턴은 여러 개의 뷰가 존재할 수 있으며, 모델에게 질의하여 데이터를 전달받는다. 뷰에서는 별도의 데이터를 보관하지 않는다. 뷰에서 입력받고 출력해주는 모든 데이터는 모델을 사용해야한다.
- 모델이 가지고 있는 정보를 따로 저장해서는 안된다.
- 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야한다.
- 변경이 일어나면 변경통지에 대한 처리방법을 구현해야한다.
컨트롤러(Controller)
모델과 뷰를 관장하는 브릿지(Bridge)역할을 수행. 사용자가 버튼을 클릭하면 이벤트는 뷰에서 발생하지만 내부 처리는 컨트롤러에서 관리한다. 또한, 입력이 발생하면 이에 대한 통제를 담당한다.
- 모델이나 뷰에 대해서 알고 있어야한다.
- 모델이나 뷰의 변경을 모니터링 해야한다.
참고
반응형
'WEB' 카테고리의 다른 글
SEO(검색 엔진 최적화) (0) | 2022.12.26 |
---|---|
CORS? (0) | 2022.10.09 |
Virtual DOM (0) | 2021.09.02 |
HTTP 메시지(요청, 응답) (0) | 2021.08.25 |