일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드
- weak
- observable
- 해시
- 옵셔널
- concurrency
- 풀이
- 생명주기
- 이스케이핑
- 자바
- 리스트뷰
- 프로퍼티
- 구조체
- 프래그먼트
- ios
- Self
- async
- rx
- 백준
- View
- 차이
- Swift
- 프로그래머스
- 알고리즘
- Subject
- RxSwift
- 스위프트
- noncopyable
- 클로저
- 연산자
- Today
- Total
목록분류 전체보기 (183)
study record

Swift Concurrency Instruments 사용하는 법1. Xcode > Open Developer Tool > Instruments > Swift Concurrency2. Command + i (컴파일, 빌드, Instruments 켜기까지 한 번에 해줌) Swift TasksRunning Tasks : 동시에 실행 중인 작업 수Alive Tasks : 특정 시점에 얼마나 많은 작업이 있는지 Total Tasks : 해당 시점까지 생성된 작업의 총 개수 Task ForestsStructured Concurrency 작업 간의 상하위 관계 그래픽으로 표현 Summary > Task State다양한 상태에서 각 테스크에 소요된 시간을 보여주는 것 선택한 작업에 대한 모든 정보가..

IntroductionSwift Concurrency란?Swift 5.5부터 도입된 비동기 프로그래밍 모델async/await, Task, actor 등을 통해 동시성 프로그래밍을 쉽게, 그리고 안전하게 작성할 수 있도록 지원목적: 성능 향상 + 코드 안전성 강화(Data Race 제거) 핵심 기법: Sendable checking 및 actor 기반 상태 격리 Problem기존 코드와의 호환성 문제Concurrency 도입 전, Swift 생태계에는 이미 수많은 코드가 존재이러한 기존 코드는:Sendable, @MainActor 같은 동시성 어노테이션이 없음동시성 도입 시 오류가 발생하거나 빌드가 막힘Sendable, @MainActor 같은 동시성 어노테이션 누락에 따른 오류나 진단은Swift 5에서..
💫 SE-0390Noncopyable structs and enums Motivation현재 Swift에서 존재하는 모든 타입은 복사 가능(copyable) 하므로, 해당 타입의 값에 대해 여러 개의 동일하고 교환 가능한 표현을 생성할 수 있습니다.하지만, 복사 가능한 구조체(struct)와 열거형(enum)은 고유한 자원(unique resource)을 모델링하는 데 적합하지 않습니다.반면, 클래스(class)는 객체가 한 번 초기화되면 고유한 정체성(unique identity)을 가지므로 고유한 자원을 표현할 수 있습니다. 하지만 클래스의 참조(reference)는 여전히 복사 가능하기 때문에, 클래스는 항상 자원의 공유 소유권(shared ownership)을 요구합니다.이러한 공유 소유권은 다..
1️⃣ SE-0366 consume operator to end the lifetime of a variable binding값을 복사하거나 참조를 넘기는 형태가 아닌, 값의 소유권을 이전키워드 consumeSwift5.9에서 적용값의 소유권을 이전하여 값을 복사하거나 참조를 전달하는 방법을 사용하지 않도록 하는 성능 최적화 방법ex) consume 키워드를 프로퍼티 앞에 사용하면, 해당 소유권을 이전하여 consume 키워드를 쓴 프로퍼티는 앞으로 사용 불가 (컴파일 에러)useX(x)// do some stuff with local variable x// Ends lifetime of x, y's lifetime begins.let y = consume x// [1]useY(y)// do some s..