일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- async
- 안드로이드
- 옵셔널
- 클로저
- RxSwift
- 해시
- weak
- 이스케이핑
- 프로그래머스
- 서브스크립트
- 알고리즘
- observable
- 차이
- 스위프트
- concurrency
- Swift
- 리스트뷰
- 연산자
- 테스크
- rx
- 풀이
- Subject
- Self
- 생명주기
- ios
- 백준
- 프래그먼트
- 자바
- View
- 구조체
- Today
- Total
목록Swift (12)
study record
1. Stream이란? 스트림(Stream)이란 데이터의 흐름을 의미한다. 이러한 데이터 흐름은 단방향이며, 한번에 일부 데이터를 처리한다. 즉, 데이터를 한번에 모두 처리하지 않고, 데이터가 하나씩 또는 여러 개씩 일정한 간격으로 생성되어 이를 연속적으로 처리하는 방식이다. 스트림은 많은 데이터를 처리하는 경우 유용하며, 여러 개의 데이터를 처리할 때 코드의 가독성과 유지보수성이 좋아진다. 스트림은 실시간으로 데이터를 처리하고, 데이터가 발생하는 즉시 처리할 수 있어 대규모 데이터 처리에 유용하다. 2. AsyncStream이란? An asynchronous sequence generated from a closure that calls a continuation to produce new elemen..
Chapter 5. Intermediate async/await & CheckedContinuation Continuation continuation은 주어진 포인트에 프로그램의 상태를 추적하는 객체이다. 각각의 비동기 작업 단위를 그것을 위한 전체 스레드 하나를 만드는 것 대신에 continuation에 작업을 할당한다. 이것이 concurrency model이 작업을 하드웨어 가용성에 기반해 더 효율적으로 작업하게 한다. 이것이 CPU 코어만큼만 스레드를 만들게 하고, 스레드들 사이의 변환이 아닌 continuation 사이에서 전환하게 한다. await한 작업이 완료되고 원래 코드가 다시 resume되는 것은 어떻게 작동하는가? 코드가 suspend될 때 그 시점의 전체적인 상태를 캡쳐한 conti..
AsyncSequence 알아가기 AsyncSequence는 비동기적으로 요소들을 생산할 수 있는 sequence를 설명하는 protocol이다. Swift의 Sequence와 비슷하나, 차이점은 다음 요소를 위해 await 키워드를 붙여야 한다는 것이다. 예제에서의 note URLSession.data(for:delegate)는 Data를 리턴. URLSession.AsyncBytes는 URL request로부터 비동기적으로 바이트들을 준다. HTTP 프로토콜은 서버가 partial requests에 대한 허용성을 지원하는지를 정의하게 한다. 만약 서버가 지원하면, 응답에 대한 byte range를 리턴하는 것을 요청할 수 있다. 한 번에 전체 응답을 받는 것 대신에. 그래서 하나의 파일을 얻고자 요청..
async: 메서드가 비동기로 작동할 것임을 보여준다. 이 메서드가 결과를 리턴할 때까지 실행을 멈춘다. await: 코드가 실행을 멈출 수 있음을 보여준다. async 메서드가 리턴할 때까지 기다린다. Task: 비동기 작업의 단위. 작업이 끝나거나 취소되는 것을 기다릴 수 있다. 🧪 completion handler → async 메서드로 변경해보기 // escaping closure func fetchStatus(completion: @escaping (String) -> Void) { URLSession.shared.dataTask( with: URL(string: "")! ) { data, response, error in guard let data = data else { return } co..