MVC 패턴
▶ Model - View - Controller로 각각에 대한 역할을 구분하여 독립적인 기능을 수행하도록 설계하는 디자인 패턴이다.
▣ Model
: 어플리케이션에서 사용하는 데이터의 집합이라고 볼 수 있다.
▣ View
: 어플리케이션에서 사용자에게 보여지는 화면, UI 이라고 볼 수 있다.
▣ Controller
: Model과 View를 이어주는 징검다리의 역할로 사용자는 Controller를 사용하여 Model의 데이터를 수정하게 된다.
[ MVC 패턴 ]
: MVC 패턴은 Model의 업데이트에 따라 View에 적용이 되야하는 부분에서 서로 간의 의존성이 발생하게 된다.
MVP 패턴
▶ MVC 패턴에서 파생된 디자인 패턴으로 Controller를 대신해 Presenter가 추가되었다.
▣ Presenter
: Controller의 역할 + Model과 View의 의존성을 끊고 View는 Presenter를 통해서 화면을 보여주게 된다.
[ MVP 패턴 ]
: Presenter에서 화면 갱신과 데이터 갱신을 모두 처리한다.
MVVM 패턴
▶ MVP 패턴에서 파생된 디자인 패턴으로 Presenter를 대신해 ViewModel이 추가되었다.
[ MVVM 패턴 ]
: View와 View Model 사이의 모델 데이터가 바인딩되어 Model이 갱신되면 ViewModel의 데이터가 갱신되고, ViewModel의 갱신되는 순간 View도 같이 갱신된다. MVP, MVC가 Model이 갱신되면, 갱신되었다는 정보를 View에 전달하는 반면 MVVM은 데이터가 연결되어 갱신이 바로 발생한다.
게임에 어떠한 패턴을 적용할 것인가?
: 특정 디자인 패턴이 정답이다. 라고 말할 수 없는 영역이 게임 디자인 패턴이라고 할 수 있다. 프로젝트에 상황에 따라 특정 디자인 패턴이 좋을 수도 있고 나쁠 수도 있기 때문이다. 하지만 게임에서는 MVC, MVP, MVVM이 되었든, 데이터와 화면과 시스템은 각각 분리되어 처리되어야만 한다.
예를들어 데이터와 화면이 연결되어 있다고 했을 때, 서버에서 데이터를 받아서 화면을 보여는 상황이면 게임은 멈춰있을 수 밖에 없게 된다. 데이터를 받아와야지만 화면이 보여지기 때문이다. 하지만 위의 패턴을 사용하면 화면은 모델에 데이터가 없으면 없는 그대로 사용자에게 보여줄 수도 있고, 모델의 이전 데이터를 가지고 보여주다가 서버에서 데이터를 받아오면 갱신해서 보여줄 수도 있다.
'게임엔진 > Unity' 카테고리의 다른 글
[Unity] DOTS: Jobs, Burst, ECS 간단 정리 (0) | 2024.01.04 |
---|---|
[Unity] ThreadPool (스레드풀) (0) | 2024.01.03 |
[Unity] 플랫폼별 컴파일 (전처리기) (0) | 2023.09.22 |
[Unity] 레이어 소팅레이어 태그 설정 (0) | 2023.09.19 |
[Unity] CSV 파일 저장, 불러오기 Read, Write 간단 사용법 (0) | 2023.09.18 |