unity MVP패턴은 왜 쓰는가?

Yeons·2023년 1월 25일
0

소프트웨어의 비지니스 로직과 화면을 분리하여 작업한다면 유지보수와 개발의 효율성을 높힐 수 있기 때문이다.

어렴풋하게 생각해도, 개발 중간중간마다 화면에 영향이 간다면, 사용자 입장에서는 매우 번거로울 것이다.

unity에 대해 공부하다가,이 글을 발견했다.
직방에서 UI시스템에 MV(R)P를 도입했다는데, 지금까지 디자인 패턴 종류를 알고는 있었지만, 직접 적용되는 것을 보는 것은 처음이라 더 공부하고 싶어서 알아보았다.

MVP (Model-View-Presenter)


Model : 데이터를 처리하는 비즈니스 로직
View : 사용자에게 보여지는 UI
Presenter : View로부터 이벤트를 받아와서 처리하고 , Modeld에게 알려 업데이트를 하는 역할

아마 핵심은 presenter가 아닐까 싶다.

(선물주는 사람이라 생각했는데, 진행자 또는 사회자라는 뜻이었다.ㄷㄷ 역시 영어 뜻은 제대로 알아보아야 한다.)

MVP 패턴의 동작 순서

  1. 사용자의 입력이나 Action이 View로 들어옴
  2. VIew가 Presenter로 데이터 요청
  3. Presenter는 Model에게 데이터를 요청
  4. Model에서 데이터 관련 작업 후 Presenter에게 데이터 전달
  5. Presenter는 View에게 데이터 응답
  6. View는 Presenter에게 전달받은 데이터를 화면에 표시

특징

  1. Prsenter는 View와 Model의 인스턴스를 가지고 있어 둘을 연결하는 역할을 함.
  2. Presenter와 VIew는 1:1 관계

장점

  1. MVP의 장점은 MVC의 View와 Model사이의 의존성이 커지는 문제를 해결 했다. View와 Model의 의존성이 없다.
  2. Presenter를 통해서만 데이터를 전달 받기 때문이다.

단점

  1. VIew와 Presenter사이의 의존성이 높아진다.

MVP vs MV(R)P

Event-Driven Presenter 를 Reactive(Rx) Presenter로 바꾼 것을 의미

자, 나는 개념은 모르지만, 배우고자 하는 학생이다.
모르는 단어가 두 개나 나왔다. (내가 모르는 단어란, 이 단어가 어떠한 역할을 하는지 모른다는 것이다)

Event-Driven :

설명 사이트에 따르면, Event Driven Pattern이란 특정 행동이 자동으로/순서에 따라 발생하는 것이 아닌 어떤 일에 대한 반응으로 동작하는 디자인 패턴이다. 사용자가 누르면 즉시 반응해야 하는 것이라는 뜻 같다.

EDA(Event-driven architecture) 3개의 구성요소

  1. Event generator : 시스템 내,외부의 상태 변화를 감지하여 표준화된 형식의 이벤트를 생성
  2. Event channel : 이벤트를 필요로 하는 시스템까지 발송
  3. Event processing engine : 수신한 이벤트를 식별, 적절한 처리를 함. 때에 따라 이벤트 처리의 결과로 또 다른 이벤트를 발생시킬 수 있다.

Reactive(Rx)

Reactive Programming으로, MS에서 처음 만든 선언형 프로그래밍 패러다임에 속합니다. 데이터 스트림이라는 개념을 통해 이벤트를 관리

Rx정리블로그를 참고하면, Rx배경을 알 수 있다.

그리고 유니티는 UniRx를 사용한다고 하는데, 한 번 제대로 알아보아야 겠다.

한 용어를 알려할 때마다, 새로운 단어가 나오는 것이 예전에는 정말 스트레스였는데, 지금은 공부할 방향을 잡아주는 것 같아 오히려 즐기는 편이다.

profile
공부중

0개의 댓글