MVVM 아키텍처 도입, 우리의 ViewModel 사용법
·
Architecture, Design Pattern
안녕하세요!! 집주인들 중 가장 잘생긴 박효준입니다!이번에는 MVVM의 도입여부 논의를 하면서 결정한 ViewModel등의 사용법을 공유하고자 합니다.거두절미하고 바로 들어가겠습니다~~문제 상황MVC 패턴의 코드 길어짐과 수많은 의존성을 컨트롤러가 갖는 문제,또한 View와 비즈니스 로직 분리 등을 위해 MVVM 도입했다.우리 팀에서 MVVM의 ViewModel을 어떻게 사용하기로 정의했는지 설명하겠다.문제 해결MVVM 도입 결정MVC에선 Controller가 View와 Model 일을, MVP에선 Presenter와 View가 서로 일 주고받음 MVVM에서 ViewModel은 Model하고만 소통함 즉, 관심사 분리를 잘 해낼 수 있음위 특징 때문에 테스트 가능한 구조가 되어 테스팅도 가능MVC 패턴의..
드래그 앤 드랍 시 카테고리가 변경되어도 일관성 유지하기
·
iOS
반갑습니당 집주인 Kyxxn 박효준입니다 !지난 편에 이어서 이번에는 드래그 앤 드랍 시 카테고리가 변경되어도 일관성을 유지해보려는데요, 문제 상황부터 자세히 봐보시죠 〰️  문제 상황지난 편에서 CollectionView Drag Drop 델리게이트를 통해서 드래그 앤 드랍을 구현했었다.근데 우리는 책 커버를 한 번에 모아볼 수 있는 “전체”도 있고, 특정 카테고리에 대한 책 커버만 보여줄 수도 있다.이것에 대한 일관성 처리를 어떻게 할 지 알아보자.문제 해결시나리오가족, 친구 두 카테고리와 책들이 다음과 같이 있다고 가정해보겠다. 이 상황에서 “가족” 카테고리에서 책1을 책3으로 옮겼다고 하자.나는 그러면 “전체”에서 볼 때도 책1은 책3 뒤에 있어야 한다고 생각한다.위처럼 말이다. 또한, 반대로 “..
NotificationCenter의 removeObserver를 해야할까?
·
UIKit
음... 또 글을 쓰는 임정현씨...노티센터 오랜만에 쓰는 친군데요...removeObserver 어떻게 해야할까요?아라봅시다...문제 상황NotificationCenter에서 addObserver를 한 ViewController를 removeObserver를 해주어야하는지에 대한 논의가 있었다.문제 해결잠깐 생각해봤을 때 이것은 맞는 말이다!왜냐하면 코드상으로 addObserver를 할 때 self를 명시적으로 사용하기 때문이다.이러한 코드는 보통 메모리 낭비를 초래한다.NotificationCenter.default.addObserver( self, selector: #selector(keyboardWillHide), name: UIRespo..