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

예제) 쇼핑 리스트 애플리케이션
- 사용자가 상품을 추가 → 뷰(View)가 입력을 감지하여 컨트롤러(Controller)로 전달
- 컨트롤러가 입력을 분석하고 모델(Model)을 업데이트 → 새로운 상품을 리스트에 추가
- 모델이 데이터 저장 및 갱신 후 컨트롤러에 결과 반환
- 컨트롤러가 모델의 데이터를 받아 뷰(View)에 전달하여 UI 업데이트
- 뷰(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