백/back-end

[백엔드] 소프트웨어 디자인 패턴, MVC 패턴이란?

연지양갱 2023. 11. 12. 09:21
728x90
반응형
SMALL

스프링을 시작하면 가장 먼저 배우는 것이 자바 이구 그 다음으로 MVC 패턴입니다.

어떤 내용인지 정리하고 프로젝트를 시작하겠습니다!

 

 

 

MVC 패턴이란?

MVC(Model-View-Controller) 패턴은 소프트웨어 설계 분야에서 널리 사용되는 디자인 패턴으로, 애플리케이션을 모델, 뷰, 컨트롤러라는 세 부분으로 나누어 구성하는 방법론입니다.

MVC 패턴은 1970년대에 Trygve Reenskaug이 제안하였으며 Smalltalk 프로그래밍 언어에서 처음 사용되었습니다.

모델-뷰-컨트롤러로 구성되어 있습니다.

출처 : https://junhyunny.github.io/information/design-pattern/mvc-pattern/

모델(Model) : 애플리케이션의 핵심적인 비지니스 로직을 담당합니다. 데이터 베이스와 직접적으로 연결되어 데이터를 처리하고, 사용자가 요청하는 데이터 연산을 수행합니다.

뷰(View) : 사용자에게 보여지는 부분을 담당합니다. 사용자가 보는 화면을 구성하고, 사용자로부터 입력을 받습니다.

컨트롤러(Controller) : 사용자의 요청을 처리하고, 요청에 따라 모델과 뷰를 업데이트합니다. 사용자의 요청을 모델로 전달하여 데이터를 처리하고 그 결과를 뷰로 전달하여 사용자에게 보여줍니다.

 

이런 MVC 패턴은 애플리케이션의 로직을 세 부분으로 나누어 구성함으로써 코드의 재사용성을 높이고, 유지보수를 용이하게 합니다.

 

 

MVC 패턴의 장단점

장점

  • 코드의 재사용성과 유지보수성이 높아집니다. 각 컴포넌트는 독립적으로 동작하므로, 하나의 컴포넌트를 수정하거나 테스트해도 다른 컴포넌트에 영향을 주지 않습니다.
  • 개발 과정에서 각 컴포넌트를 독립적으로 개발할 수 있으므로, 효율성이 높아집니다.

 

단점

  • 설계가 복잡하고, 초기 개발 비용이 높을 수 있습니다.
  • 중복 코드가 발생할 수 있습니다. 비슷한 로직의 뷰가 여러개 필요한 경우, 각 뷰에서 같은 로직을 반복해서 구현해야 할 수 있습니다.

 

 

MVC 패턴의 동작 원리

1. 사용자는 뷰를 통해 애플리케이션과 상호작용합니다.

2. 뷰는 사용자의 요청을 컨트롤러에 전달합니다.

3. 컨트롤러는 요청을 처리하고, 필요에 따라 모델을 업데이트하거나 조회합니다.

4. 모델은 데이터를 처리하고 그 결과를 컨트롤러에게 반환합니다.

5. 컨트롤러는 처리 결과를 뷰에게 전달하고, 뷰를 업데이트하도록 요청합니다.

6. 뷰는 업데이트된 결과를 사용자에게 보여줍니다.

 

반응형