개발공부

MVC(Model View Controller) 란?

Iam_noob 2023. 8. 22. 02:15
728x90
반응형

 MVC란 Model View Controller로 서비스하는 방식의 대한 디자인 패턴의 하나이다.

 

디자인 패턴이란?

소프트웨어 개발에서 발생하는 문제점들을 정리하고 설계 노하우를 축적한 방법들이며 특정 규약을통해 사용하기 쉽게 만든 형태를 말합니다.

 

출처: https://developer.mozilla.org/ko/docs/Glossary/MVC

 

1) 모델(model) : 데이터와 비즈니스 로직을 관리

2) 뷰(view): 레이아웃과 화면을 처리

3) 컨트롤러(controller): 명령을 모델과 뷰 부분으로 라우팅

 

목차

  1. MVC란 무엇인가?
    • MVC 패턴의 정의
    • 디자인 패턴이란 무엇인가?
  2. MVC의 구성 요소
    • 모델(Model)
    • 뷰(View)
    • 컨트롤러(Controller)
  3. MVC 패턴의 작동 방식
    • 입력-처리-출력의 흐름
    • 구성 요소 간의 상호작용
  4. MVC 패턴의 장점
    • 유지보수성
    • 확장성
    • 유연성
  5. MVC 패턴의 실제 예시: 쇼핑 리스트 앱
    • 모델
    • 컨트롤러
  6. MVC의 활용 분야와 확장 가능성
    • 웹 개발
    • 모바일 앱 개발
    • 데스크톱 애플리케이션

1. MVC란 무엇인가?

MVC 패턴의 정의

MVC는 Model-View-Controller의 약자로, 애플리케이션을 모델(Model), 뷰(View), "컨트롤러(Controller)"라는 세 가지 요소로 나누어 설계하는 디자인 패턴입니다. 이 패턴은 사용자 인터페이스와 데이터 처리를 분리하여 유지보수성과 확장성을 높이는 구조를 제공합니다.

디자인 패턴이란 무엇인가?

디자인 패턴은 소프트웨어 개발 중 자주 발생하는 문제를 해결하기 위해 고안된 재사용 가능한 설계 템플릿입니다. 개발자는 디자인 패턴을 활용해 문제를 보다 효율적으로 해결할 수 있으며, 코드의 일관성가독성을 높일 수 있습니다.


2. MVC의 구성 요소

1) 모델(Model)

  • 역할:
    모델은 애플리케이션의 데이터와 비즈니스 로직을 담당합니다.
    • 데이터를 정의하고 관리하며, 데이터 변경 사항을 뷰(View) 또는 "컨트롤러(Controller)"에 알립니다.
    • 외부 이벤트(예: 사용자의 입력)로 인해 데이터를 수정하거나 갱신합니다.
  • 주요 기능:
    • 데이터의 저장 및 관리
    • 데이터 처리 및 비즈니스 로직 실행
    • 데이터 변경 이벤트 전달

2) 뷰(View)

  • 역할:
    뷰는 사용자가 볼 수 있는 레이아웃과 화면 구성을 담당합니다.
    • 데이터를 시각적으로 표현하고, 사용자와의 상호작용을 처리합니다.
  • 주요 기능:
    • 모델로부터 데이터를 받아 화면에 표시
    • 사용자의 인터페이스와 직접적인 연결
    • 사용자 입력 이벤트 전달

3) 컨트롤러(Controller)

  • 역할:
    컨트롤러는 사용자 입력을 처리하고, 이를 기반으로 "모델(Model)"과 "뷰(View)"를 업데이트합니다.
    • 입력-처리-출력의 흐름을 제어합니다.
  • 주요 기능:
    • 사용자로부터 입력을 받아 적절한 모델과 뷰로 전달
    • 애플리케이션 로직 실행
    • 구성 요소 간의 연결 및 데이터 흐름 관리

3. MVC 패턴의 작동 방식

MVC는 다음과 같은 흐름으로 작동합니다.

  1. 입력:
    사용자가 입력(예: 버튼 클릭)을 제공합니다.
  2. 컨트롤러:
    컨트롤러는 입력을 받아 모델과 뷰에 적절히 분배합니다.
  3. 모델:
    모델은 데이터를 처리하거나 갱신하고, 결과를 뷰에 알립니다.
  4. 뷰:
    갱신된 데이터를 기반으로 화면을 업데이트하여 사용자에게 표시합니다.

4. MVC 패턴의 장점

  1. 유지보수성:
    각 구성 요소가 독립적이므로, 특정 부분을 수정할 때 다른 부분에 미치는 영향이 최소화됩니다.
  2. 확장성:
    새로운 요구사항이 추가될 때도 기존 구조를 크게 변경하지 않고 확장이 가능합니다.
  3. 유연성:
    동일한 모델을 다양한 뷰와 컨트롤러에서 재사용할 수 있습니다.

5. MVC 패턴의 실제 예시: 쇼핑 리스트 앱

1) 모델(Model)

  • 역할:
    • 쇼핑 리스트의 데이터를 정의합니다.
    • 새로운 항목 추가, 기존 항목 삭제 등의 데이터 변경 작업을 수행합니다.
    • 변경 사항을 뷰에 알립니다.

2) 뷰(View)

  • 역할:
    • 사용자가 쇼핑 리스트를 확인할 수 있도록 데이터를 화면에 표시합니다.
    • 버튼, 입력 창 등 사용자의 상호작용을 위한 UI를 제공합니다.

3) 컨트롤러(Controller)

  • 역할:
    • 사용자가 버튼을 클릭하거나 항목을 입력할 때 발생하는 이벤트를 처리합니다.
    • 해당 이벤트를 모델에 전달하여 데이터를 수정합니다.
    • 변경된 데이터를 기반으로 뷰를 업데이트합니다.

6. MVC의 활용 분야와 확장 가능성

1) 웹 개발

MVC는 특히 웹 애플리케이션에서 널리 사용됩니다.

  • 프레임워크 예시: Spring(MVC Framework), Ruby on Rails, ASP.NET MVC

2) 모바일 앱 개발

안드로이드와 iOS에서도 MVC 패턴을 활용해 모듈화된 앱 개발이 가능합니다.

3) 데스크톱 애플리케이션

데스크톱 애플리케이션에서도 MVC를 사용해 UI와 비즈니스 로직을 분리할 수 있습니다.

728x90
반응형