profile
제가 나중에 다시 보려고 기록합니다 ✏️
post-thumbnail

[RxSwift] flatMap, flatMapFirst, flatMapLatest

진행하고 있는 프로젝트에서 검색 결과에 대한 pagination기능을 구현할 때 스크롤이 일정 범위에 도달하면 다음 페이지 결과를 가져오기 위해서 네트워크 요청을 보낼때연속적인 스크롤 오프셋 이벤트들 중 하나의 이벤트에 대해서만 반응하여 네트워크 요청을 보내기 위해서

2022년 10월 8일
·
0개의 댓글
·
post-thumbnail

[RxSwift] 순환참조는 왜 일어날까?

RxSwift의 Operator을 사용할때 순환 참조가 일어나지 않도록 클로저의 캡쳐리스트에 [weak self]로 약한 참조를 해야한다. 어떻게 순환 참조가 일어난다는건지 항상 궁금해서 찾아봤지만 이해가 안되다가 이제 드디어 이해가 되어서 이 유레카 모먼트를 기록해

2022년 9월 24일
·
0개의 댓글
·
post-thumbnail

UICollectionViewDiffableDataSource의 identifier가 Hashable 해야하는 이유가 뭘까?

diffable datasource... 너 대체 몬대?UICollectionViewDiffableDataSource는 Section과 Items의 "바뀌지 않는 identifier"를 들고 있어서 collection view가 보여주는 데이터의 truth를 가지고 있

2022년 9월 6일
·
0개의 댓글
·
post-thumbnail

CollectionView의 성능 향상에 대한 고민: reconfigureItems, cell prefetching, image preparation(iOS 15)(feat. WWDC Make blazing fast lists and collection views)

사용자들은 앱을 사용할 때 컬렉션뷰를 스크롤하면서 자연스럽고 부드러운 스크롤을 기대하게 된다. 만약 버벅거리거나 부자연스럽다면 사용자 경험을 해치게 될 것이다. 빠른 컬렉션뷰를 만들기 위해서 structuring data prefetching new UIIMage A

2022년 9월 5일
·
0개의 댓글
·
post-thumbnail

Kingfisher 사용해서 image downSampling 해보기(.cacheOriginalImage의 의미는 무엇일까?)

지난 포스팅에서 아래 코드와 같이 downSampling 메서드를 직접 구현하여 다운샘플링된 이미지를 imageView의 image에 할당해주었다.커스텀 셀 configure 부분WWDC 보고 적용해본건데, Kingfisher가 똑같이 구현해놓았기도 하고 기존에 다른

2022년 9월 3일
·
1개의 댓글
·
post-thumbnail

UICollectionView 이미지 처리: downsampling(feat. WWDC Image and Graphics Best Practices)

문제 상황 검색 결과를 UICollectionView에 표시할때 크기가 큰 이미지가 들어오는 상황에서 이미지 로딩 속도가 느리고, 메모리 사용량이 급격하게 늘어남 스크롤시 이미지가 깜빡거리면서 바뀌기도 하는 현상이 발생함 원본 이미지 크기 5번정도 검색하면 쉽게

2022년 8월 25일
·
0개의 댓글
·
post-thumbnail

Collectionview에 큰 이미지를 표시해야 할 때 UICollectionViewCompositionalLayout list layout 사용 금지

프로젝트를 하다가 width 2000, height 3000 의 이미지를 가져와서 width 60 height 80으로 다운샘플링 해야했다. 컬렉션뷰의 셀 크기는 작은데 아주 큰 이미지가 들어와서 굉장히 앱이 느려지는 상황이 발생했다.

2022년 8월 25일
·
0개의 댓글
·

multipart/form-data 구성 방식 살펴보기, Alamofire 없이 구현해보기

POST Request를 보낼 때 body의 data를 인코딩하는 방식이다.multi-part의 의미는 data가 다수의 부분으로 나뉘어져 서버로 업로드된다는 것이다. 그래서 보통 용량이 큰 파일을 업로드할때 사용한다.일반적으로 json 데이터를 보낼때는 Content

2022년 8월 17일
·
0개의 댓글
·
post-thumbnail

UICollectionViewDiffableDataSource : SupplementaryView로 Section마다 다른 제목 구현하기

앞서 기본적인 UICollectionViewDiffableDataSource에 대해 설명한 포스팅과 이어집니다~! 1. UICollectionReusableView 를 상속한 커스텀 뷰 생성 2. collectionview에 앞서 생성한 커스텀 뷰 register

2022년 6월 17일
·
0개의 댓글
·
post-thumbnail

기본적인 UICollectionViewDiffableDataSource 설정하기

UICollectionViewDiffableDataSource와 UICollectionViewCompositionalLayout을 사용하여 아래와 같은 뷰를 그려보았다.한 CollectionView가 여러 Section으로 나눠져 있고, 각 Section마다 Item들

2022년 6월 17일
·
0개의 댓글
·
post-thumbnail

UICollectionView 셀 재사용 문제: 빠르게 스크롤시 잘못된 이미지가 나타나는 현상

UICollectionView나 UITableView를 만들때 셀에 이미지가 포함된 경우 빠르게 스크롤시 잘못된 이미지가 들어가는 상황이 발생한다. 이런 상황이 발생하는 이유는 iOS에서는 화면에 최대로 보여지는 셀 개수로만 컬렉션뷰를 구성하고, 스크롤하는 순간 화면

2022년 6월 10일
·
0개의 댓글
·
post-thumbnail

UICollectionView 셀의 이미지 로딩 속도 개선: NSCache로 이미지 캐싱

UICollectionView나 UITableView를 만들때 셀에 이미지가 포함된 경우 다음과 같은 두가지 상황을 고려해야한다.1\. 이미지가 로딩되는 속도가 느린 문제2\. 빠르게 스크롤시 맞지 않는 이미지가 나타나는 문제이번 포스팅에서는 첫번째 이슈인 이미지 로딩

2022년 6월 9일
·
0개의 댓글
·
post-thumbnail

UIViewController 서브클래스의 custom initializer 만들기('required' initializer 'init(coder:)' must be provided by subclass of 'UIViewController')

UIViewController을 상속받아서 커스텀뷰컨을 만드는 작업은 정말.. 항상하는 작업이다. 대부분은 따로 직접 이니셜라이저를 구현하지 않고 사용하기 때문에 특별한 문제가 없다. 그러나, 뷰컨에 뷰모델을 생성자 주입하려고 이니셜라이저를 만들었더니... 이런 에러

2022년 6월 5일
·
0개의 댓글
·
post-thumbnail

Custom View 생성시 init(frame:), init(coder:), awakeFromNib()

Nib/Xib 파일을 이용하여 뷰를 생성할 때 UIView의 필수 생성자 두개를 작성해야한다.init(frame: CGRect) → 코드로 뷰를 만들때 호출init(coder: NSCoder) → 스토리보드로 뷰를 만들때 호출그리고 awakeFromNib()는 XIB로

2022년 6월 2일
·
0개의 댓글
·
post-thumbnail

REST API란?

API의 시초는 하드웨어 독립성을 보장하기 위해서인데, 서로 다른 하드웨어 부품에 맞는 프로그래밍을 각각 하기보다는, 추상화 계층을 통해 한번만 작성한 코드를 여러 곳에서 공통적으로 사용할 수 있도록 하기 위해서 생겨났다.API는 개인 컴퓨터가 나오기 이전부터 존재한

2022년 5월 30일
·
0개의 댓글
·
post-thumbnail

set의 연산을 이용한 Local - Remote DB 연동하기

네트워크 연결이 끊어진 오프라인 환경에서 데이터 변경사항이 생길 경우 먼저 Local에 저장한 후에, 네트워크가 다시 연결되면 Local의 변경사항을 Remote에 업데이트하는 방식으로 구현하였다. Remote에서 변경이 일어날 가능성은 없으므로 Remote변경사항

2022년 5월 2일
·
0개의 댓글
·
post-thumbnail

AppDelegate와 SceneDelegate

iOS는 사용자가 앱을 직관적인 방법으로 사용할 수 있도록 디자인되었다. 따라서 iOS 개발을 하면서 우리는 사용자 경험이 물 흐르듯이 자연스럽게 이루어질 수 있도록 신경써야한다. 그러한 관점에서 앱이 처음 시작되고 종료되어 메모리에서 내려갈때까지의 생명주기 iOS A

2022년 5월 2일
·
1개의 댓글
·
post-thumbnail

[RxSwift] Single과 Completable

Observable을 감싸고 있는 구조체임.asObservable() 사용시 다시 기본 Observable로 돌아갈 수 있음 SingleCompletableMaybe단 하나의 요소나 error만 방출하는 Observable의 변형인 Traits중 하나이다.언제 사용하냐

2022년 4월 30일
·
0개의 댓글
·
post-thumbnail

[RxSwift] combineLatest와 zip

디폴트로 combineLatest를 사용하고 특정한 경우에만 zip을 사용하기둘다 두 Observable을 합칠때 사용하지만, 합치는 방식이 다르다.Single의 경우 zip만 사용가능combineLatest는 두 Observable이 다른 타입인 경우에도 사용가능하지

2022년 4월 30일
·
0개의 댓글
·
post-thumbnail

Frame과 Bounds

frame은 view 자신의 superview의 좌표계 안에서 자신의 위치를 결정한다.아래 discussion에 보니 view의 사이즈와 위치를 세팅할 때 이 frame을 사용하라고 한다.frame을 세팅하면 view의 center 프로퍼티랑 bounds 가 자동으로

2022년 4월 22일
·
0개의 댓글
·