MVP / MVC 패턴이 무엇일까?
MVC는 소프트웨어 애플리케이션에서 사용자 인터페이스를 개발할 때 일반적으로 사용되는 디자인 패턴 제품군입니다. MVC의 일반적인 개념은 소프트웨어의 논리적 부분을 데이터와 프레젠테이션에서 분리하는 것입니다. 이렇게 하면 불필요한 종속성을 줄이고 잠재적으로 스파게티 코드를 줄일 수 있습니다. 출처 : https://unity.com/kr/how-to/build-modular-codebase-mvc-and-mvp-programming-patterns |
실제 데이터가 담기는 부분과, 해당 데이터를 처리하는 부분, 처리한 데이터를 바탕으로 사용자에게 보여주는 부분으로 총 3가지의 구성 요소를 MVP에서 관찰할 수 있다.
위 유니티 공식 문서를 참고한다면, 세 가지 부분은 이렇게 나눌 수 있겠다.
- 모델(Model)에 데이터를 저장합니다: 모델은 엄밀히 말해 값을 저장하는 데이터 컨테이너이다. 게임플레이 로직을 수행하거나 계산을 실행하지 않는다.
- 보기(View)는 인터페이스입니다: 보기는 화면에서 데이터의 형식을 지정하고 그래픽 프레젠테이션을 렌더링한다.
- 컨트롤러(Controller)는 로직을 처리한다: 게임 데이터를 처리하고 런타임에 값이 어떻게 변하는지를 계산한다.
그렇다면, MVP와 MVC의 차이는 무엇일까? 아래 표로 정리해서 간략하게 정리해보았다.
[MVP와 MVC의 차이]
구조 | MVC(모델, 뷰, 컨트롤러) | MVP(모델, 뷰, 프레젠터) |
역할 | 컨트롤러가 사용자 입력 처리 | 프레젠터가 뷰와 모델 간의 중재 |
상호작용 | 뷰가 모델과 직접 상호작용 | 뷰가 프레젠터를 통해 상호작용 |
테스트 용이성 | 테스트가 다소 어려움 | 프레젠터 독립적으로 테스트 용이 |
사용 예 | 웹 애플리케이션 | 데스크톱 및 모바일 애플리케이션 |
예시 스크립트는 아래 블로그의 예시나, 위 유니티 공식 사이트의 예제 프로젝트를 살펴보는 것이 좋을 것이다.
'TIL' 카테고리의 다른 글
[TIL] Dictionary / List / Array 언제 사용해야 하나? (0) | 2024.10.23 |
---|---|
[TIL] 스파르타 2주차 프로젝트 마무리 단계 (0) | 2024.10.21 |
[TIL] ObjectPool 사용을 연습해보며 작성한 코드(2) (0) | 2024.10.17 |
[TIL] ObjectPool 사용을 연습해보며 작성한 코드 (0) | 2024.10.15 |
[TIL] 유니티 이벤트와 C#의 이벤트의 차이는? (0) | 2024.10.14 |