본문 바로가기
TIL

[Unity] MVP / MVC 패턴은 무엇인가?

by DearGreen 2024. 10. 18.

MVP / MVC 패턴이 무엇일까?


MVC는 소프트웨어 애플리케이션에서 사용자 인터페이스를 개발할 때 일반적으로 사용되는 디자인 패턴 제품군입니다.
MVC의 일반적인 개념은 소프트웨어의 논리적 부분데이터프레젠테이션에서 분리하는 것입니다. 이렇게 하면 불필요한 종속성을 줄이고 잠재적으로 스파게티 코드 줄일 수 있습니다.

출처 : https://unity.com/kr/how-to/build-modular-codebase-mvc-and-mvp-programming-patterns

 실제 데이터가 담기는 부분과, 해당 데이터를 처리하는 부분, 처리한 데이터를 바탕으로 사용자에게 보여주는 부분으로 총 3가지의 구성 요소를 MVP에서 관찰할 수 있다.

 

위 유니티 공식 문서를 참고한다면, 세 가지 부분은 이렇게 나눌 수 있겠다.

  • 모델(Model)에 데이터를 저장합니다: 모델은 엄밀히 말해 값을 저장하는 데이터 컨테이너이다. 게임플레이 로직을 수행하거나 계산을 실행하지 않는다.
  • 보기(View)는 인터페이스입니다: 보기는 화면에서 데이터의 형식을 지정하고 그래픽 프레젠테이션을 렌더링한다.
  • 컨트롤러(Controller)는 로직을 처리한다: 게임 데이터를 처리하고 런타임에 값이 어떻게 변하는지를 계산한다.

위 공식문서에서 예시로 든 Health 관리 예제이다.

그렇다면, MVP와 MVC의 차이는 무엇일까? 아래 표로 정리해서 간략하게 정리해보았다.

 

[MVP와 MVC의 차이]

구조 MVC(모델, 뷰, 컨트롤러) MVP(모델, 뷰, 프레젠터)
역할 컨트롤러가 사용자 입력 처리 프레젠터가 뷰와 모델 간의 중재
상호작용 뷰가 모델과 직접 상호작용 뷰가 프레젠터를 통해 상호작용
테스트 용이성 테스트가 다소 어려움 프레젠터 독립적으로 테스트 용이
사용 예 웹 애플리케이션 데스크톱 및 모바일 애플리케이션

 

예시 스크립트는 아래 블로그의 예시나, 위 유니티 공식 사이트의 예제 프로젝트를 살펴보는 것이 좋을 것이다.