MVC 패턴이란?
- 모델-뷰-컨트롤러(Model-View-Controller,MVC) 구조로 이루어져 있는 소프트웨어 디자인 패턴이다.
- MVC 패턴을 사용한다면 사용자 인터페이스로부터 비지니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비지니스 로직을 서로 영향 없이 쉽게 고칠수 있는 애플리케이션을 만들수있다.
- 모델은 애플리케이션의 정보(데이터)를 나타낸다.
- 뷰는 텍스트, 체크박스 항목 등과 같은 사용자 인터페이스 요소를 나타낸다.
- 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다.
Model(모델)
- 모델은 데이터와 애플리케이션이 무엇을 할 것인지를 정의하는 부분으로 내부 비지니스 로직을 처리하기 위한 역할을 한다.
- 모델은 컨트롤러가 호출을 하면 DB와 연동하여 사용자의 입출력 데이터를 다루는 일과 같은 데이터와 연관된 비즈니스 로직을 처리하는 역할을 한다.
- DB와 연동 되기 때문에 데이터 추출, 저장, 삭제, 업데이트 같은 역할도 한다.
모델의 규칙
- 사용자가 편집하기를 원하는 모든 데이터를 가지고 있어야 한다.
- View나 Controller에 대해서 어떤 정보도 알지 말아야 한다.
- 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야만 한다.
Veiw(뷰)
- 뷰는 사용자에게 보여주는 UI(화면)을 말한다.
- 사용자와 상호작용을 하며 Controller에서 받은 모델의 결과값을 화면으로 출력하는 일을 한다.
- MVC에서는 여러개의 뷰가 존재할 수 있다.
- 모델에서 받은 데이터는 별도로 저장하지 않습니다.
뷰의 규칙
- Model이 가지고 있는 정보를 따로 저장해서는 안됩니다.
- Model이나 Controller와 같이 다른 구성 요소들을 몰라야 합니다.
- 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야만 합니다.
Controller(컨트롤러)
- 컨트롤러는 모델과 뷰 사이를 이어주는 인터페이스 역할을 한다.
- 모델이 데이터를 어떻게 처리할지 알려주는 역할을 한다.
- 사용자로부터 뷰에 요청을 받아 해당 업무를 수행하는 모델을 호출하고 모델이 업무를 모두 수행하면 다시 결과를 뷰에게 전달합니다.
컨트롤러의 규칙
- Model이나 View에 대해서 알고 있어야 합니다.
- Model이나 View의 변경을 모니터링 해야 합니다.
MVC 패턴을 사용하는 이유?
- 각자의 맡은바에만 집중할수 있게 코드를 기능별로 분리하여 가독성과 코드 재사용이 증가한다.
- 기능별로 코드를 분리하였기때문에 개발 후에 유지보수성, 확장성, 유연성이 증가되어 모든 상황에 대해서 대처가 가능하다.
Reference
Blog
Blog