MVC, MVP, MVVM
- UI와 로직의 분리가 목적인 패턴
- 불필요한 종속 관계를 줄임
- 아키텍쳐 패턴
- 관심사 분리(Soc) : 단순한 하나하나의 클래스가 아니고, 어떤 레이어/로직들간의 관계를 나타내는 개념
MVC

- User는 View를 보고, User의 Input값은 Controller로 전달됨
- View 자체는 문제가 없으나, Model 데이터의 변경사항을 수신하기 위해 View 별 코드가 필요함 (한계)
MVP

- 유니티에서는 주로 요걸 씀
- Model - View를 분리시키는게 주 목표 / Presenter가 양쪽과 소통하면서 중재한다
- User는 View하고만 소통하면 됨!

- 확장성 / 모듈성 / 재사용성 및 유지 관리성 충족
- Presenter는 상태 변경을 감지하기 위해 Model의 이벤트를 구독
- 변경 사항이 통보되면 Presenter는 데이터를 View에 업데이트
MVVM

- 유니티에서는 UI ToolKit을 사용해야만 구현 가능
- 바인딩 시스템을 통해 ViewModel - View 사이의 의존성을 약화시킴
- Model에 필요한 Converter를 등록하는 것부터 시작
- 그 다음 ViewModel에서 데이터 바인딩을 설정
- 각 데이터 바인딩을 설정하는 데 따른 추가 오버헤드 발생, 추가 복잡성 비용보다 이점이 큰 대규모 사용자 인터페이스에만 적합할 수 있음


Data Binding
- UI가 아닌 개체의 속성 / UI 요소 간의 동기화 보장
- 예 : MonoBehaviour의 문자열 속성과 TextField의 값 속성
- 본질적으로 UI가 아닌 속성과 이를 수정하는 UI 요소 간의 링크
- 변경 사항이 자동으로 동기화됨. 이렇게 하면 각 UI 업데이트에 대해 수동으로 이벤트 핸들러를 작성할 필요가 없음
- 오래되거나 잘못된 데이터가 표시될 위험을 줄임
'Study' 카테고리의 다른 글
| Astar C++로 만들기 (0) | 2024.10.10 |
|---|---|
| 하노이의 탑 C++로 만들기 (0) | 2024.10.10 |