모델-뷰-프리젠터 설계 패턴
TouchGFX 사용자 인터페이스는 Model-View-Controller(MVC) 패턴에서 파생된 Model-View-Presenter(MVP)라는 아키텍처 패턴을 따릅니다. 둘 다 사용자 인터페이스 애플리케이션을 구축할 때 널리 사용되는 패턴입니다.
MVP 패턴의 가장 큰 이점은 다음과 같습니다.
- 관심 영역 분리: 코드를 각자의 책임을 가진 별개의 영역으로 분할합니다. 이렇게 하면 코드가 더 단순해져서 재사용하기 쉽고 유지 관리도 쉬워집니다.
- 유닛 테스트: UI 로직(presenter)이 시각적 계층(view)과 분리되어 있기 때문에 이러한 부분을 훨씬 쉽게 단독으로 테스트할 수 있습니다.
MVP에서는 세 가지 클래스가 다음과 같이 정의됩니다.
- model은 사용자 인터페이스에 표시하거나, 그 밖에 실행할 데이터를 정의하는 인터페이스입니다.
- view는 (model에서) 데이터를 표시하고 해당 데이터를 실행할 프리젠터에게 사용자 명령(이벤트)을 전달하는 패시브 인터페이스입니다.
- presenter는 model과 view에 따라 실행됩니다. 저장소(모델)에서 데이터를 가져온 후 뷰에 표시할 수 있도록 형식을 지정합니다.
TouchGFX에서는 Model 클래스를 통해서 애플리케이션에서 백엔드 시스템으로 불리는 UI가 아닌 영역과 통신이 이루어집니다. 백엔드 시스템은 새로운 센서 측정 값과 같은 이벤트를 UI로부터 수신하거나 UI로 전송하는 소프트웨어 구성요소입니다. 백엔드 시스템은 동일한 MCU에서, 혹은 분리된 프로세서, 클라우드 모듈 또는 그 밖에 다른 위치에서 별도 작업으로 실행될 수 있습니다. TouchGFX의 관점에서 볼 때, 통신이 가능한 구성요소라면 분리 여부는 중요하지 않습니다.
여기에 사용되는 통신 프로토콜은 TouchGFX에서 관리하지 않습니다. 단순히 TouchGFX를 실행할 때마다 호출되는 함수를 제공하여 여기에 필요한 통신을 처리할 수 있습니다. 자세한 내용은 백엔드 통신에서 확인하십시오.
TouchGFX UI 개발 시 MVP 구현 및 사용 방식에 관한 자세한 내용은 코드 구조 섹션을 참조하십시오.