💡 Today I Learned/스터디 자료정리11 [스터디11일차][RxSwift] 테이블뷰 RxSwift 사용 시 UITableViewDataSource와 UITableViewDelegate를 직접 구현할 필요가 없다기존에 사용하던 방식에서는 이 두 가지를 Extention으로 분리해서 관리를 했었는데, Rx 바인딩을 통해 모두 처리할 수 있어서 코드가 간결해진다! ✅ RxSwift 사용 시 변경되는 것(요약)UITableViewDataSource 구현 → 없어짐 (bind(to:)로 대체)UITableViewDelegate 구현 → 없어짐 (rx.modelSelected(_:) 등으로 대체)tableView.reloadData() 호출 → 자동 업데이트DispatchQueue.main.async 필요 → Observable이 알아서 UI 스레드에서 실행indexPath.row를 직접 다루는.. 2025. 1. 31. [스터디11일차][RxSwift] 검색 어플 만들 때 유용한 연산자 1. CatchError옵저버블에서 오류가 발생했을 때 처리하며 대체 값을 반환하거나 새로운 옵저버블로 대체한다예를 들어, 네트워크 요청 실패할 경우 기본 데이터를 제공하거나 사용자에게 오류 메시지를 표시한다 오류를 처리한 이후에도 스트림이 계속 동작함대체 옵저버블이나 값을 방출할 수 있음 예제 1 - 기본 값을 제공하는 CatchError let apiRequest = Observable.create { observer in observer.onError(NSError(domain: "APIError", code: -1, userInfo: nil)) return Disposables.create()}apiRequest .catchError { error in print(.. 2025. 1. 20. [스터디10일차] Disposable RxSwift를 사용하다 보면 나오는 disposeddisposable은 "사용 후 버리게 되어있는" 이라는 의미를 가지고 있다 이전에 살펴본 Obsevable의 개념을 살펴보면 옵저버블이 관찰 가능한 상태일 때 옵저버가 옵저버블을 구독하는 형태인데,더 이상 옵저버블에 관한 이벤트를 받고싶지 않을 때 구독 해제가 필요함이 때 사용하는 것이 Disposable 이다Disposable = 리소스를 해제하고 이벤트 구독을 중지한다 그럼 어떻게 사용할까? Disposable의 사용 방법1. Disposable 기본기본적으로 옵저버블을 사용하면 Disposable 객체가 반환되는데, 해당 객체를 사용하여 구독을 해제한다let observable = Observable.of(1, 2, 3)let subscri.. 2025. 1. 8. [스터디9일차] CollectionView 1. 기본적인 컬렉션뷰의 구조와 사용class ViewController: UIViewController { //콜렉션뷰 선언 var collectionView: UICollectionView! //데이터 배열 let data = ["Item 1", "Item 2", "Item 3", "Item 4", "Item 5"] override func viewDidLoad() { super.viewDidLoad() //1. 콜렉션뷰 레이아웃 설정 (기본적인 그리드 레이아웃) let layout = UICollectionViewFlowLayout() layout.itemSize = CGSize(width: 100, height: 100.. 2024. 11. 26. [스터디8일차] Diffable Data Source 1. Diffable Data Source란?TableView, CollectionView를 그리기 위한 데이터를 관리하고 UI를 업데이트 한다기존 방식과 달리 데이터의 변경 사항을 자동으로 계산하고 애니메이션을 적용해 UI업데이트를 수행한다핵심은 변경된 데이터만 효율적으로 업데이트 한다는 점이다 2. DataSource Protocol과의 차이TableView, CollectionView를 그리기 위해서는 DataSource가 필요하다기존에는 DataSource Protocol을 채택하고, 프로토콜에 구현되어 있는 메서드를 사용하는 방법을 사용했다 데이터 업데이트 방식에서의 차이기존의 DataSource Protocol는 reloadData()를 호출하여 데이터를 전체적으로 갱신한다이렇게 하면.. 2024. 11. 13. [스터디7일차] 객체지향 & 프로토콜 1. 객체지향 프로그래밍(OOP)1-1. 객체지향의 기본 개념객체(Object)와 메시지(Message)로 구성된다객체지향에서는 소프트웨어를 하나의 독립적이고 유기적인 객체의 집합으로 보고, 이 객체들이 서로 상호작용하여 문제를 해결해나가는 구조를 만들어 나간다객체는 외부에서 접근 가능한 인터페이스를 통해 상호작용하고, 외부에서는 객체 내부의 상태나 구현 방식을 알 필요 없이 오직 인터페이스를 통해서만 상호작용한다 1-2. 객체(Object)와 메시지(Message) 란?객체란 데이터와 이를 조작하는 동작(메서드)를 하나의 단위로 묶은 것이다메시지란 서로 독립적인 존재인 객체가 상호작용할 수 있게 하는 도구다(객체 ↔ 메시지 ↔ 객체) 1-3. 객체지향 설계의 5대 원칙(SOLID 원칙) 1).. 2024. 11. 12. 이전 1 2 다음