MVP 패턴으로 작성한 단순한 화면을 MVVM 패턴으로 바꿔보자! + 버튼을 누르면 1씩 증가하고 - 버튼을 누르면 1씩 감소하는 단순한 앱을 만들어보자. 먼저 xml 파일을 작성해서 화면을 그렸다. MVP 패턴 Counter 작성 먼저 도메인 Model 부터 만들어 보자 count 를 프로퍼티로 가지며 add 나 sub 를 호출할 경우 현재 count 를 return 한다. class Counter { private var count = 0 fun add(): Int { return ++count } fun sub(): Int { return --count } } MainContract 작성 MVP 패턴은 View 와 Presenter 의 1대1 계약과 비슷하다. 그러니 Contract interfac..
PRESENTER
들어가기 전에 이 글은 MVP 패턴 적용이나 단위 테스트에 대한 경험이 없다면 이해하는데 어려움이 있을 수 있습니다. 테스트가 필요한가? 장바구니 주문 미션 2단계 제출할 때까지 Presenter 테스트 의 필요성을 인지하지 못했다. 리팩터링 할 때마다 테스트 리팩터링이 계속해서 필요했다. 또한, 기능을 다 구현했는데 하나하나 테스트를 짜야한다는 것이 그저 숙제로 느껴졌다. 시간이 부족하다는 이유로 기존에 작성했던 테스트를 전부 주석 처리하고 제출하는 만행을 저질렀다. 리뷰어님이 다음과 같은 메세지 를 남겨주셨다. 도메인 관련 클래스를 잘 분리하고 테스트 코드까지 잘 작성해주셨습니다. 다만 안드로이드와 관련된 코드들은 테스트가 작성되지 않은게 아쉬웠습니다. 그러자 내가 테스트를 잘 못짜서 필요성을 인지하..