오늘 학습 키워드

MVC, MVP 패턴

오늘 학습 한 내용을 나만의 언어로 정리하기

MVC와 MVP

MVC : Model + View + Controller

  • Model : 데이터 및 데이터 처리
  • View : 프론트
  • Controller : 사용자의 입력 처리

Controller : View = 1 : N View는 Controller를 모름.

MVP : Model + View + Presenter

  • Model : 데이터 및 데이터 처리
  • View : 프론트
  • Presenter : View와 Model을 연결. View에서 요청한 자료를 Model을 가공해 View로 다시 전달.

Presenter : View = 1 : 1 Presenter는 View와 Model의 인스턴스를 가짐.

출처

챗지피티의 정리..

항목MVC (Model-View-Controller)MVP (Model-View-Presenter)
View 역할사용자 입력 전달 + 출력출력만 (입력은 Presenter가 처리)
Controller/Presenter 역할사용자 입력 처리 및 Model과 View 연결사용자 입력, Model 업데이트, View 갱신
View가 Model을 참조?가능불가능 (Presenter를 통해서만)
유닛 테스트 용이성MVP가 더 테스트하기 쉬움Controller에 따라 다름

MVC의 흐름 : User → Button 클릭 → Controller → Model 업데이트 → View 갱신
MVP의 흐름 : User → Button 클릭 → View → Presenter → Model 업데이트 → Presenter → View 갱신

그림으로 정리

학습하며 겪었던 문제점 & 에러

  • 문제&에러에 대한 정의

계산기에 연산을 진행할 수를 저장하는 float first 변수가 있었는데, 거기에 = null 을 하니까 float는 null을 허용하지 않는다는 문제가 나왔다.

  • 내가 한 시도

처음에는 0.0으로 초기값을 줘야하나 하다가 연산하려고 하는 수가 0일 수도 있기 때문에 이는 맞지 않다고 판단했다.

  • 해결 방법

float 뒤에 물음표를 붙여 float?로 만들면 null이 된다는 사실을 알았다.

  • 새롭게 알게 된 점

float 뿐만 아니라 int, double, bool 또한 가능하다는 점을 깨닫게 되었다.

  • 이 문제&에러를 다시 만나게 되었다면?

값을 임의로 지정하면 안되는 경우에는 물음표를 붙여 null을 허용하게 할 것이다.

내일 학습 할 것은 무엇인지

계산기 마저 만들기