일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- uiscrollview
- UITextView
- SWIFT
- collectionview
- rxswift
- 리펙터링
- Observable
- swift documentation
- clean architecture
- 스위프트
- ribs
- Protocol
- 클린 코드
- 애니메이션
- HIG
- tableView
- ios
- RxCocoa
- Clean Code
- 리팩토링
- Refactoring
- uitableview
- combine
- swiftUI
- MVVM
- 리펙토링
- UICollectionView
- Xcode
- Human interface guide
- map
- Today
- Total
목록async (12)
김종권의 iOS 앱 개발 알아가기
1. Async, Await 간단 사용 정리 (Concurrency) - 사용 방법 2. Async, Await 간단 사용 정리 (Concurrency) - 동시 처리 * 해당 글에서는 간단한 사용법만 살펴보기 때문에, 개념적인 부분은 이전 포스팅 글 참고 동시 처리 Async, Await를 사용하면 비동기 작업을 completion 클로저 블록 없이 한줄로 처리가 가능 let imageUrlString = "https://images.dog.ceo/breeds/australian-shepherd/pepper.jpg" guard let url = URL(string: imageUrlString) else { return } Task { let image = try await loadImage(url: u..
1. Async, Await 간단 사용 정리 (Concurrency) - 사용 방법 2. Async, Await 간단 사용 정리 (Concurrency) - 동시 처리 * 해당 글에서는 간단한 사용법만 살펴보기 때문에, 개념적인 부분은 이전 포스팅 글 참고 Async, Await 기초 사용 방법 ex) Async, Await를 사용하여 url을 가지고 특정 이미지 불러오기 정의부분 함수 리턴 화살표 키워드 "->" 왼쪽에 async 를 붙임 다른 비동기 함수를 호출할 때 await를 붙여서, completion 클로저가 아닌 그냥 일반 코드 작성하듯이 구현 func loadImage(url: URL) async throws -> UIImage { let (data, _) = try await URLSes..
기본지식) sync, async, serial, concurrencysync, asyncsync - 해당 작업이 끝날때까지 대기async - 대기하지 않음비동기가 필요한 이유? 대용량 이미지 파일 다운로드 시 기다리면 UI멈춘것처럼 보임serial, concurrencyserial - 하나의 스레드로 처리concurrency - 여러개의 스레드로 작업을 분산각각 독립적이지만 유사한 여러개의 작업을 처리하는 경우 (당근 마켓에서 반복적인 cell들의 물품 이미지 다운)async vs concurrency 차이점?async는 일의 시작 순서가 순서대로처리 하지 않음concurrency는 일의 시작 순서는 차례대로 하지만 동시에 처리DispatchQueue.main.sync 사용 주의 사항deadlock 걸리..
1. Swift Concurrency 개념 - async, await, Task, async let, Actor 2. Swift Concurrency 개념 - async, await를 이용하여 api 호출해보기 Async, Await 없는 API 호출 모델 준비 struct AlbumResult: Codable { let results: [Album] } struct Album: Codable, Hashable { let collectionId: Int let collectionName: String let collectionPrice: Double } 구현 enum APIError: Error { case invalidURL case noData } enum API { static func fetchA..
1. Swift Concurrency 개념 - async, await, Task, async let, Actor 2. Swift Concurrency 개념 - async, await를 이용하여 api 호출해보기 async, await 란? iOS13+ 사용 가능 비동기 처리를 위해서 completion closure를 사용하지 않고 async, await 키워드를 사용하여 더욱 가독성 있는 비동기 프로그래밍이 가능한 것 * 구체적인 async, await 내용은 이전 포스팅 글 async, await 사용 방법 참고 async 키워드) 함수 정의 부분, throws 앞에 사용 func fetchItems() async { } func fetchSomeItems() async throws -> String..
1. Concurrent Programming - NSLock, DispatchSemaphore 사용 방법 2. Concurrent Programming - DispatchSemaphore로 코틀린의 CompletableDeferred 구현방법 3. Concurrent Programming - DispatchQueue의 serial, concurrent, async, sync 이해하고 사용하기 4. Concurrent Programming - Thread Safe Array 구현방법 (DispatchQueue의 barrier 사용) 5. Concurrent Programming - OperationQueue로 동적으로 작업 추가, 취소하는 모듈 구현방법 CompletableDeferred 코틀린의 코루틴..
Async, Await 이란? 기존에 비동기 처리 방식은 DispatchQueue나 completionHandler를 사용하여 처리했지만, 더욱 편하게 비동기 처리할 수 있는 문법 // DispatchQueue 사용한 비동기 처리 DispatchQueue.global.async { } // completionHandler를 사용한 비동기 처리 let task = URLSession.shared.dataTask(with: url, completionHandler: { data, response, error in }).resume() 비동기 처리란 위와 같이 오래걸리는 작업이 있을 때, 그 작업이 끝나는 것을 기다리지 않고 수행하도록 일을 처리하는 것 이 밖에도 대표적인 비동기 처리 방법에는 RxSwift와..
1. 이미지 캐싱, 이미지 효율적으로 로드 방법, 스크롤에 따라 이미지 로드(tableView, collectionView): scrollViewDidScroll, prefetch 2. 이미지 캐싱, 이미지 효율적으로 로드 방법(tableView, collectionView): async + NSCache cf) 애플 공식 문서에서 나온 ImageCache 방법은 여기 참고 처리 방법 2단계 scrollViewDidScroll, prefetch 방법으로 모든 페이지의 이미지를 한꺼번에 호출하지 않고 스크롤에 따라 page를 늘려나가며 API호출 > 이미지 url들을 획득 이미지 url들만 우선 cell의 모델에 적용 ImageCache를 통해서 url들에 대해서 이미지 로드 > cell의 item 모델 ..