오늘은 기본적인 디자인 패턴인 MVC 패턴에 대해서 알아보자!
MVC, MVVM, MVP 처럼 여러가지 디자인 패턴이 있지만 가장 기본적인 MVC 패턴에 대해서 공부해보려고 한다.
먼저 디자인 패턴은 무엇이고, 이걸 왜 사용하는 것일까??
디자인 패턴
- 디자인 패턴은 소프트웨어 공학에서 반복적으로 발생하는 문제들을 해결하기 위해 만들어진, 검증된 해결 방법의 템플릿이다. 디자인 패턴을 사용해서 코드를 더 이해하기 쉽게 만들 수 있고, 유지보수하기 쉽게 만들 수 있다.
개발을 하면서 필요한 기능을 구현하기 위해 코드를 작성하다보면 나중에 그 코드를 확인할 때, 어떤 코드가 어떤 기능인지, 코드의 구조가 어떻게 되는 것인지 알기 어렵다! 이를 위해 디자인 패턴을 사용하는 것이라고 이해했다.
이것을 해결하기 위해, 디자인 패턴을 사용한다!! 그렇다면 본론으로 돌아가서 MVC 패턴이 무엇인지 차근차근 알아보자.
MVC 패턴이란?
간단하게 설명하자면 Model, View, Controller 의 약자이다. 어플리케이션의 구성 요소를 이 세 가지 주요 부분으로 분리해서 코드의 모듈화와 유지보수를 용이하게 하는 디자인 패턴이다.

1) Model
- 모델은 어플리케이션의 데이터와 비즈니스 로직을 담당한다. 데이터베이스, 네트워크 응답, API 등을 통해 데이터를 가져오고 이를 가공하여 어플리케이션의 다른 부분에 제공한다. 모델은 뷰나 컨트롤러에 직접적으로 종속되지 않고 데이터를 독립적으로 관리한다.
2) View
- 뷰는 사용자 인터페이스 즉, UI를 담당한다. 사용자가 보는 화면과 인터페이스 요소들을 정의하고 표시한다. 뷰는 모델의 데이터를 표시하며, 사용자의 입력을 받아 이를 컨트롤러에 전달한다. 뷰는 가능한 한 로직을 가지지 않고, 주로 데이터를 시각화하는 중점을 둔다.
3) Controller
- 컨트롤러는 모델과 뷰 사이에서 중재자 역할을 한다. 사용자의 입력을 받아 이를 처리하고, 필요한 경우 모델을 업데이트하거나, 모델로부터 데이터를 받아와 뷰에 전달한다. 컨트롤러는 비즈니스 로직와 UI 로직을 분리해서 코드의 재사용과 가독성을 높인다.
장점과 단점
<장점>
1. 독립적으로 동작 : 모델, 뷰, 컨트롤러를 분리하여 각 구성 요소가 독립적으로 동작할 수 있도록 한다.
2. 유지보수 용이 : 코드가 모듈화되어 잇어 유지보수와 테스트가 용이하다.
3. 재사용성 : 동일한 모델과 뷰를 다른 컨트롤러와 함께 사용할 수 있다.
<단점>
1. 복잡성 증가 : 간단한 프로젝트에서는 MVC 패턴을 사용하는 것이 복잡성을 증가시킬 수 있다.
'📚 CS > 그 외' 카테고리의 다른 글
| GitHub의 동작 원리, 작업 공간 (2) | 2024.11.02 |
|---|---|
| [JAVA] 클래스 vs 객체 vs 인스턴스, 무엇이 다를까? (0) | 2024.09.24 |
| JSON - 직렬화, 역직렬화 (0) | 2024.09.23 |
| [CS] 디자인 패턴 (3) - MVVM (0) | 2024.06.23 |
| [CS] 디자인 패턴 (2) - MVP (0) | 2024.06.07 |