게으른 나에게

[소프트웨어] - MVC(Model-View-Controller) 패턴 본문

My Study/CS

[소프트웨어] - MVC(Model-View-Controller) 패턴

handbefore 2025. 3. 24. 17:37

MVC(Model-View-Controller) 패턴

  • 소프트웨어 설계 및 아키텍처를 위한 디자인 패턴 중 하나
  • 사용자 인터페이스(UI)와 애플리케이션의 비즈니스 로직을 분리하여 유지보수성과 확장성을 높이는 설계 방식
  • 주로 웹 애플리케이션, GUI 애플리케이션, 모바일 애플리케이션 등에서 널리 사용됨

MVC 패턴 목적

  • 응집도를 높이고 결합도를 낮춰 유지보수를 쉽게 함
  • 역할을 명확하게 분리하여 코드의 가독성과 확장성을 향상
  • 사용자 인터페이스(UI)와 비즈니스 로직을 분리하여 독립적인 개발 가능

MVC 패턴 특징

  • 데이터(Model), 사용자 인터페이스(View), 제어 로직(Controller)을 분리
  • 각 구성 요소가 독립적으로 작동하여 유지보수가 용이
  • 애플리케이션의 흐름을 체계적으로 관리할 수 있음

MVC 패턴 구성요소

1️⃣ 모델(Model)

  • 애플리케이션의 데이터 및 비즈니스 로직 담당
  • 데이터 저장소(DB)와 상호 작용하며, 데이터의 유효성 검사 및 처리 기능 포함
  • 독립적으로 작동하며 뷰(View) 및 컨트롤러(Controller)와 직접 연결되지 않음

2️⃣ 뷰(View)

  • 사용자에게 데이터를 표시하는 UI 역할
  • 모델에서 데이터를 받아 사용자에게 표시 → 사용자의 입력을 컨트롤러에 전달

3️⃣ 컨트롤러(Controller)

  • 사용자의 입력을 처리
  • 애플리케이션의 흐름 관리
  • 사용자의 요청을 받아 모델을 조작 → 변경된 데이터를 뷰에 전달 → 화면 표시
  • 모델과 뷰를 연결하는 중간 매개체 역할 수행

작동 원리

예제) 쇼핑 리스트 애플리케이션

  1. 사용자가 상품을 추가 → 뷰(View)가 입력을 감지하여 컨트롤러(Controller)로 전달
  2. 컨트롤러가 입력을 분석하고 모델(Model)을 업데이트 → 새로운 상품을 리스트에 추가
  3. 모델이 데이터 저장 및 갱신 후 컨트롤러에 결과 반환
  4. 컨트롤러가 모델의 데이터를 받아 뷰(View)에 전달하여 UI 업데이트
  5. 뷰(View)가 업데이트된 데이터를 사용자에게 표시

사용자 입력 → View 감지 → Controller 전달 → Model 조작 → 결과 반환 → View 업데이트 → 사용자에게 표시

 

 


출처

https://www.geeksforgeeks.org/mvc-design-pattern/

 

MVC Design Pattern - GeeksforGeeks

The MVC design pattern organizes applications into three components\u2014Model, View, and Controller\u2014facilitating easier maintenance, modularity, and reusability of code.

www.geeksforgeeks.org