MVC 패턴이란?

상혁몬·2025년 2월 6일

Backend

목록 보기
8/9

MVC(Model-View-Controller) 패턴은 애플리케이션을 데이터 관리, 사용자 인터페이스(UI), 사용자 입력 처리의 세 가지 역할로 분리하여 설계하는 아키텍처 패턴이다. 각 구성 요소의 역할과 상호작용을 명확히 함으로써 유지보수성, 확정성, 재사용성을 높인다.


1. 구성 요소별 역할

구성 요소설명주요 책임
Model애플리케이션의 데이터와 비즈니스 로직을 관리합니다.- 데이터 저장, 조회, 수정
- 변경 시 View/Controller에 알림(Observer 패턴 주로 활용)
View사용자에게 정보를 표시하는 UI 레이어입니다.- Model의 데이터를 시각화
- 사용자 입력을 Controller에 전달
Controller사용자 입력을 처리하고 Model과 View를 중개합니다.- 입력 검증 및 처리
- Model 업데이트 또는 데이터 조회
- View 선택 및 업데이트

2. 동작 흐름

  1. 사용자 입력: View를 통해 입력(예: 버튼 클릭)이 발생하면 Controller로 전달됩니다.
  2. 입력 처리: Controller는 입력을 해석하고, 필요한 경우 Model을 업데이트하거나 데이터를 요청합니다.
  3. 데이터 변경: Model은 데이터 변경 후 관련 View를 자동으로 갱신하거나(Observer 패턴) Controller에 알립니다.
  4. UI 갱신: Controller는 최신 데이터를 기반으로 View를 선택하거나 업데이트하여 사용자에게 표시합니다.

3. 장점

  • 관심사 분리(Separation of Concerns): 각 컴포넌트가 독립적으로 작동하여 코드 복잡도 감소.
  • 재사용성: Model은 UI 변경 없이 재사용 가능하며, View는 다른 데이터 소스와 연결 가능합니다.
  • 유지보수 용이: 기능 수정 시 해당 컴포넌트만 변경하면 됩니다.
  • 협업 효율성: 프론트엔드/백엔드 개발자의 병렬 작업이 용이합니다.

4. 단점

  • 초기 복잡성: 간단한 애플리케이션에는 과도한 구조일 수 있습니다.
  • 의존성 관리: View와 Model이 직접 통신하면 결합도 증가 (이를 해결하기 위해 MVVM 등 파생 패턴 등장).
  • 컨트롤러 과부하: 로직이 Controller에 집중되면 "뚱뚱한 컨트롤러" 문제 발생 가능.

0개의 댓글