Backend/Springboot

[아키텍쳐 패턴] MVC 패턴

박 성 하 2023. 10. 29. 13:00
728x90

1. MVC란?

MVC는 사용자 인터페이스를 개발할 때 일반적으로 사용되는 디자인 패턴이다

  • Model
  • View
  • Controller

2. 구성요소

1) Model

데이터 구조와 비즈니스 로직을 나타낸다.

데이터베이스와 통신하며 데이터가 변경될 때마다 뷰를 업데이트한다.

뷰와 바로 통신하는 것은 아니라 뷰의 옵저버 혹은 컨트롤러에 전달하여 뷰를 업데이트한다.

2) View

애플리케이션의 UI를 나타낸다.

모델에서 사용자에게 데이터를 표시하고 사용자 명령을 컨트롤러로 전송한다.

3)Controller

입력을 받아 모델 또는 뷰에 대한 명령으로 변환한다.

 

3. 단계

1) 사용자가 View와 상호 작용한다.
2) View는 사용자 명령을 Controller로 전송한다.
3) Controller는 사용자 데이터를 처리하고 Model에 명령을 보낸다.
4) Model은 스스로 업데이트하고 데이터 변경 사항을 View로 보낸다.
5) View는 업데이트된 데이터를 표시한다.

 

4. 이점

1) 관심사 분리

로직, UI, 데이터를 분리하여 코드를 체계적이고 관리하기 쉽게 만든다.

2) 모듈형

한 구성 요소의 변경 사항이 다른 구성 요소에 영향을 미치지 않으므로 업데이트와 확장이 더 쉬워진다.

3) 재사용 가능

컴포넌트를 애플리케이션의 다른 부분이나 다른 애플리케이션에서 재사용할 수 있다.

4) 병렬 개발

여러 팀이 Model, View, Controller를 동시에 작업할 수 있다.

 

5. 좋은 MVC 설계란

1) 컴포넌트 독립성 유지

한 구성 요소의 변경 사항이 다른 구성 요소에 영향을 미치지 않아야 한다.

2) View에 비즈니스 로직을 포함하지 않기

View는 데이터 표시만 담당해야 한다.

3) Controller 로직 최소화

비즈니스 로직은 Model에만 표시해야 한다.

4) Observer 사용

모델은 옵저버 패턴을 사용하여 변경 사항을 뷰에 알려야 한다.

 

6. 단점

  • 소규모 프로젝트의 경우 초기 설정이 복잡해 보일 수 있다.
  • 서로 다른 컴포넌트를 작업하는 팀 간의 명확한 의사소통과 이해가 필요하다.
  • 주의 깊게 관리하지 않으면 모델과 뷰 간에 과도한 업데이트가 발생할 수 있다.

 

728x90

'Backend > Springboot' 카테고리의 다른 글

TDD 방법론  (1) 2023.10.29
AssertJ Core 가이드  (1) 2023.10.29
JUnit5 User Guide 번역  (3) 2023.10.28
객체지향 5원칙 - S.O.L.I.D  (1) 2023.10.28
JDK 8 ~ 17 별 특징  (0) 2023.10.23