MVC 패턴
MVC 패턴은 개발자라면 한번은 들어봤을겁니다. 오늘은 MVC 패턴에 대해서 알아보겠습니다.
MVC 패턴이란?
모델-뷰-컨트롤러(Model-View-Controller, MVC)는 소프트웨어 디자인 패턴 중 하나입니다. 이 패턴은 사용자 인터페이스(UI)로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 그 이면에서 실행되는 비즈니스 로직을 서로 영향 없이 쉽게 고칠 수 있는 애플리케이션을 만들 수 있습니다. 쉽게 말해 비즈니스 로직과 화면을 구분하는데 중점을 둔다는건겁니다.
MVC는 여러 파생되는 패턴을 가지고 있는데요. MVVM(Model-View-ViewModel), MVP(Model-View-Presenter), MVW(Model-View-Whatever)가 있습니다. 이 글에서는 MVC 에 대해서 알아보도록 하겠습니다.
Model, View, Controller의 관계
- Model : 모델은 애플리케이션의 핵심 데이터와 비즈니스 로직을 나타냅니다. DB와의 상호작용, 데이터 처리 및 유효성 검사와 같은 작업을 수행합니다. 모델은 독립적으로 작동하며, 뷰와 컨트롤러와 직접적으로 통신하지 않습니다.
- View : 사용자 인터페이스(UI)를 담당합니다. 모델에서 데이터를 받아 사용자에게 표시하고, 입력을 컨트롤러에 전달하는 역할을 합니다.
- Controller : 사용자의 입력을 처리하고, 애플리케이션의 흐름을 관리합니다. 모델을 호출하여 데이터를 조작하거나 변경된 결과를 뷰에 전달하는 역할을 합니다.
MVC 패턴을 설명할때 많이 사용하는 흐름도를 가져왔습니다.
이 개념을 웹에 적용한다면,
- USES : 사용자의 입력을 감지하고 Controller로 전달한다.
- MANIPULATES : Controller는 사용자가 요청한 웹 페이지를 보여주기 위해 Model 호출한다.
- UPDATES : 비즈니스 로직을 통해 데이터를 제어한 후 결과를 Controller에 반환하고 다시 Controller는 Model의 결과를 받아 View에 전달합니다.
- SEES : 데이터가 반영된 View가 사용자에게 보여준다.
MVC 패턴의 설계원칙
1. 각 구성 요소의 역할과 책임을 명확하게 구분
Model, View, Controller는 독립적으로 작동하고, 각각의 역할에 집중해야 합니다.
2. 구성 요소간의 결합도 최소화
구성 요소간의 직접적인 참조를 피해 의존성을 낮춰야합니다. 이를 통해 구성 요소를 독립적으로 개발, 수정, 테스트할 수 있습니다.
3. 코드의 재사용성과 확장성 고려
각 구성 요소는 독립적이고 재사용 가능한 모듈로 개발되어야합니다. 프로젝트의 규모가 코지거나 요구 사항이 변경되었을 때, 확장 및 수정이 용이해야합니다.
'일반 > CS' 카테고리의 다른 글
[CS][Spring Security] CORS에 대해서 알아보자 (0) | 2024.12.16 |
---|---|
[CS][Spring Security] CSRF란? (0) | 2024.12.12 |
Maven Central Repository에 라이브러리 등록하기 (0) | 2024.09.19 |
HTTP GET과 POST 차이 (0) | 2024.01.25 |
URI와 URL의 차이점 (Feat : URN) (0) | 2024.01.21 |