분류 전체보기133 이미지 캐싱에 관하여 - 이미지 캐싱으로 유명한 라이브러리인 KingFisher가 있다. KingFisher 라이브러리의 코드를 분석해보면서, 이미지 캐싱을 직접 구현해보는 것이 좋을 것 같다고 판단하여 글을 정리해본다. 캐시 메모리와 디스크 메모리 1. 캐시 메모리 - 속도: 매우 빠름, RAM에 저장되어 바로 접근이 가능 - 수명: 앱 실행 중에만 유지되며, 앱이 종료되면 사라짐 - 크기 제한: 일반적으로 제한적, 메모리 부족 시 자동으로 데이터가 제거될 수 있음 2. 디스크 메모리 - 속도: 상대적(캐시 메모리)으로 느림. 파일 시스템에 저장되어 디스크 접근이 필요 - 수명: 앱이 종료되어도 데이터가 유지됨 - 크기 제한: 상대적으로 큰 저장 공간을 가지고 있음 전체 프로세스 1. 캐시 메모리에서 이미지 찾기 - 먼저,.. 2024. 1. 18. WWDC 2019: Advances in UI Data Sources에 관하여 1. Current State-of-the-Art 우리가 UITableView나 UICollectionView에서 UIDatasource와 상호작용하는 방법은 무엇입니까? 아래 코드는 UICollectionViewDataSource 구현 예시입니다. func numberOfSections(in collectionView: UICollectionView) -> Int { return models.count } func collectionView(_ collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return models[section].count } func collectionView(_ collectionVie.. 2023. 8. 25. UICompositional Layout에 관하여 UICompositional Layout Compositional Layout은 컬렉션 뷰 레이아웃의 한 유형이다. 이는 기존의 단순한 리스트나 그리드 뷰를 넘어서 훨씬 더 복잡하고 다양한 레이아웃을 가능하게 한다. UICompositional Layout의 구성요소 Compositional Layout은 Item, Group, Section, Layout 으로 구성되어 있다. 1. Layout NSCollectionLayout 클래스의 인스턴스로, 최종적으로 여러 섹션을 묶어 전체 컬렉션 뷰의 레이아웃을 정의한다. 2. Section 여러 그룹을 묶는 역할을 하며, NSCollectionLayoutSection 클래스의 인스턴스로 표현된다. 섹션은 그룹뿐만 아니라 Header, Footer 등의 보조 .. 2023. 8. 21. RxSwift에 관하여(Scheduler) Scheduler -Scheduler는 반응형 프로그래밍에서 Observable 연산자의 작업을 수행하는 스레드를 제어할 수 있게 해준다. 여러 스레드에서 동시에 작업을 수행할 수 있으므로 성능을 향상시킬 수 있다. -기본적으로 Observable은 subscribe 메서드가 호출된 스레드에서 작동된다. 따라서 별도의 지시가 없으면 모든 작업은 동일한 스레드에서 이루어진다. -특정 Observable 연산자는 Scheduler를 파라미터로 받아 해당 Scheduler에서 작업을 수행하도록 할 수 있다. 이를 통해 해당 연산자가 동작하는 스레드를 통제할 수 있다. -'subscribeOn' 연산자는 Observable이 작동하기 시작하는 스레드를 지정한다. 연산자 체인의 어느 위치에서 호출되든 상관없이 첫.. 2023. 8. 11. RxSwift에 관하여(PublishSubject, ReplaySubject, AsyncSubject) PublishSubject PublishSubject는 Observer가 subscribe한 시점 이후에 방출되는 아이템만 전달하는 Subject이다. 구독 시점 이후에만 방출되는 아이템을 전달하기 때문에 PublishSubject의 생성 시점과 구독 시점 사이에 방출된 아이템은 전달되지 않는다. 또한 PublishSubject는 생성 즉시 이벤트를 방출할 준비가 되기 때문에 새로운 Observer가 구독하기 전의 이벤트 요소는 유실될 수 있다. 만약 원본 Observable이나 Subject가 에러 이벤트로 종료된 경우, PublishSubject 는 이후 옵저버에게 해당 에러 이벤트만을 전달한다. PublishSubject의 사용예시 let publishSubject = PublishSubject().. 2023. 8. 10. RxSwift에 관하여(Subject) Subject의 정의 Subject는 Observable과 Observer의 역할을 동시에 수행할 수 있는 객체이다. 이를 통해 데이터 스트림을 생성하고 관리할 수 있으며, 다른 Observable로부터 데이터를 받아 그대로 전달하거나 새로운 데이터를 생성할 수도 있다. Subject의 역할 1. Observer 역할 Subject는 하나 이상의 Observable에 subscribe 할 수 있으며, Observer로서 데이터를 받을 수 있다. 또한 Subject는 에러를 처리하고, 필요한 경우 처리된 에러를 다음 Observer에 전달할 수 있다. 2. Observable 역할 Subject는 Observable처럼 데이터를 방출할 수 있으며, 이를 통해 하나 이상의 Observer에 데이터를 전달한다.. 2023. 8. 9. 이전 1 2 3 4 5 6 7 ··· 23 다음