article thumbnail image
Published 2022. 6. 14. 14:50
반응형

1. MVC?

모델 - 뷰 - 컨트롤러. 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴

3개의 영역으로 분할하고 각 구성 요소에 고유한 역할을 부여하는 개발 방식.

MVC패턴을 도입하면 도메인(비즈니스 로직) 영역과 UI 영역이 분리되므로 서로 영향을 주지 않고 유지보수가 가능.

 

MVC 패턴 다이어그램 애플리케이션에서 사용하는 일반적은 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를 지원하지 않으나 개발은 가능하다.

mvc 패턴의 적용 사례

 

반응형

'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
복사했습니다!