1. MVC란?
모델 - 뷰 - 컨트롤러. 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴
3개의 영역으로 분할하고 각 구성 요소에 고유한 역할을 부여하는 개발 방식.
MVC패턴을 도입하면 도메인(비즈니스 로직) 영역과 UI 영역이 분리되므로 서로 영향을 주지 않고 유지보수가 가능.
MVC 패턴 다이어그램 및 웹 애플리케이션에서 사용하는 일반적은 MVC 패턴
1.1 모델(Model)
Data. 정보들의 가공을 책임지는 컴포넌트
- 애플리케이션의 정보, 데이터를 나타낸다.
- DB, 처음의 정의하는 상수, 초기화 값, 변수 등을 뜻함
- 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달
Model의 규칙
- 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다.
- 뷰나 컨트롤러에 대해서 어떤 정보도 알지 말아야 한다.
- 변경이 일어나면, 변경 통지에 대한 처리 방법을 구현해야 한다.
1.2 뷰(View)
사용자에게 보이는 부분, UI (User Interface)를 의미한다.
- 여러 개의 뷰가 존재할 수 있으며, 모델에게 질의하여 데이터를 전달받는다.
- 받은 데이터를 화면에 표시해주는 역할을 가지고 있다.
- 모델에게 전달받은 데이터를 별도로 저장하지 않아야 한다.
- 사용자가 화면에 표시된 내용을 변경하게 되면 모델에게 전달하여 모델을 변경해야 한다.
View의 규칙
- 모델이 가지고 있는 정보를 따로 저장하면 안 된다.
- 모델이나 컨트롤러와 같이 다른 구성요소들을 몰라야 한다.
- 변경이 일어나면 변경 통지에 대한 처리방법을 구현해야 한다.
1.3 컨트롤러(Controller)
모델과 뷰 사이를 이어주는 브리지(Bridge) 역할을 의미한다.
- 모델이나 뷰는 서로의 존재를 모르고 있다.
- 변경 사항을 외부로 알리고 수신하는 방법만 있다.
- 컨트롤러는 이를 중재하기 위해 모델과 뷰에 대해 알고 있어야 한다.
- 모델이나 뷰로부터 변경 내용을 통지받으면 이를 각 구성요소에 통지해야 한다.
- 사용자가 애플리케이션을 조작하여 발생하는 변경 이벤트들을 처리하는 역할을 수행한다.
Controller의 규칙
- 모델이나 뷰에 대해 알고 있어야 한다.
- 모델이나 뷰의 변경을 모니터링해야 한다.
2. MVC 패턴을 사용하는 이유?
결론은 '유지보수의 편리성'이다.
MVC패턴을 가진 시스템의 각 컴포넌트는 자신이 맡은 역할만 수행한 후 다른 컴포넌트로 결과만 넘겨주면 되기 때문에 시스템 결합도를 낮출 수 있다. 유지보수 시에도 특정 컴포넌트만 수정하면 되기 때문에 보다 쉽게 시스템 변경이 가능하다.
- 화면의 변경은 View!
- 데이터나 비즈니스 요건 변경은 Model!
- View와 Model 변경에 따른 일부 Controller!
3. MVC패턴의 한계
- 복잡한 대규모 프로그램의 경우 다수의 뷰와 모델이 컨트롤러를 통해 연결되기 때문에 컨트롤러가 불필요하게 커지는 형상이 발생.
- 복잡한 화면을 구성하는 경우에도 같은 현상이 발생하는데 이를 'Massive-View-Controller'라고 한다.
4. MVC 패턴의 적용 사례
Spring framework와 JSP(Java Servlet Page)를 사용한 웹 애플리케이션 개발에서 가장 즐겨 사용되는 개발 방식.
Spring Boot Framework는 공식적으로 JSP를 지원하지 않으나 개발은 가능하다.
'Study' 카테고리의 다른 글
MVC에 대해서 더 자세히 알아보자 (1) | 2023.11.12 |
---|---|
gRPC (0) | 2023.11.10 |
[node js] node js 설치 및 테스트 (0) | 2021.09.07 |
21.07.31 스터디 그룹 시작 (2) | 2021.07.31 |
[basic] Visual Studio Code 설치하기 (0) | 2021.05.23 |