MVC 패턴
소프트웨어 개발을 위한 `프로젝트 아키텍처` 설계에서 자주 사용되는 디자인 패턴 중 하나
애플리케이션의 구조를 명확하게 분할하여 각 구성요소의 역할 정의
-> 세가지 주요 구성 요소로는 모델(Model), 뷰(View), 컨트롤러(Controller)가 있음
1. Model
- 데이터와 `비즈니스 로직`을 관리한다. ⇒ `데이터`와 관련된 부분
- View, Controller에 대한 의존을 가지지 않는다.
- ex) 사용자의 정보, 상품의 목록, 주문 내역 등
2. View
- Model의 데이터를 사용해 시각적인 화면을 구성하는 역할이다. ⇒ 사용자에게 보여지는 부분 (`사용자 인터페이스`)
- Model과 의존성 가질수도, 안가질수도 있다. Controller에는 의존성 X
- ex) 웹 페이지, 모바일 앱 화면, 대시 보드 등
3. Controller
- 사용자의 입력을 받아서 모델에게 전달하거나 뷰를 업데이트
- Model을 변경하고 View를 갱신 ⇒ Model과 View 사이의 `중계자` 역할
- ex) 로그인 요청 처리, 폼 데이터 검증, 페이지 이동 제어 등
MVC 동작 방식
1. `사용자`가 뷰를 통해 애플리케이션에 입력
2. 컨트롤러가 입력 받아서 `처리`
3. 컨트롤러가 필요한 데이터 모델에 `요청`하거나 모델 `업데이트`
4. 모델은 데이터의 상태 바꾸고, `변경된 데이터 반환`
5. 컨트롤러가 모델의 `데이터`를 받아 뷰 `업데이트`
6. 뷰는 업데이트된 데이터 `사용자`에게 보여줌
MVC 패턴의 장점
유지보수성: 각 컴포넌트가 독립적이므로 수정이 용이
재사용성: 모델, 뷰, 컨트롤러 각각 재사용
유연성: 애플리케이션의 특정 부분을 쉽게 변경 및 확장 가능
MVC 패턴의 단점
복잡성 증가: 작은 프로젝트에서는 오히려 코드가 복잡해짐
초기 설계 비용: 올바르게 설계하기 위해 초기 비용이 많이 들어갈 수 있음
'백엔드 공부일지' 카테고리의 다른 글
[Spring] JWT (0) | 2024.12.28 |
---|---|
프로젝트 아키텍처 (0) | 2024.05.30 |