Sendable 프로토콜 개요Sendable이 뭐길래 Swift 6에서 강조될까?Swift를 쓰는 개발자라면, 최근 자주 보게 되는 키워드 중 하나가 Sendable 프로토콜일 거예요. 애플 공식 문서에서는 Sendable을 이렇게 설명하고 있습니다:Sendable 프로토콜은 데이터 레이스 없이 다양한 컨텍스트에서 안전하게 전달될 수 있는 타입을 나타낸다.즉, 여러 스레드나 Task 간에 데이터를 주고받을 때 충돌 없이 안전하게 다룰 수 있는 타입인지를 보장해주는 약속 같은 개념입니다.Swift6부터는 이 개념이 더 엄격하고 자주 쓰이게 되니, 지금 정확히 이해해두는 것이 앞으로의 개발에 큰 도움이 될 거예요! 개념이 어렵게 느껴지신다고요? 괜찮아요. 지금부터 하나하나 아주 쉽게 설명드릴게요 🙂 왜 ..
안녕하세요~ 개발자 멍구입니다! 오늘은 Swift6, Swift concurrency 런타임 동작 관련 내용을 번역한 내용을 정리해서 공유드립니다. Swift Concurrency, 런타임 동작(Runtime Behavior)Swift의 동시성 모델은 async/await, actor, task 등에 초점을 맞추고 있습니다. 기존의 동시성 라이브러리나 런타임이 Swift의 새로운 동시성 모델로 직접 변환되지 않을 수도 있습니다. 이번 글에서는 런타임 동작에서 주의해야 할 공통 패턴과 차이점을 살펴보고, 기존 코드를 Swift Concurrency로 마이그레이션할 때 이를 어떻게 해결할 수 있는지 알아보겠습니다.Task Group을 사용한 동시성 제한많은 양의 작업을 처리해야 하는 상황에서 아래와 같이 ..
AsyncStream structure 정의 swift 5.5 부터 소개된 Swift Conrreucy의 개념으로 AsyncStream이 있습니다. iOS13부터 지원을 하고 있습니다. AsyncStream은 클로저를 통해 생성된 비동기 시퀀스를 정의합니다. AsyncStream을 통해 제공되는 closure 내에서 continuation을 통해 다수의 새로운 값을 생산하고, 이를 async 하게 처리할 수 있습니다. AsyncStream은 구조체로 정의되어 있으며, Element라는 제네릭 타입을 갖고 있습니다. Overview AsyncStream은 기본적으로 AsyncSequence를 준수하고 있습니다. AsyncSequence를 준수하기 위해서는 몇가지 사항을 준수해야하는데, 이를 수동적으로 준수..
스레드의 동시 접근으로 생기는 문제점인 Data Races 문제를 해결하기 위해서 사용할 수 있는 프로토콜이 있습니다. Swift Concurrency 관련해서 생긴 새로운 타입인 Actor도 이 protocol을 채택하고 있는데요. 오늘은 Sendable protocol 문서를 읽어보고자 합니다. Sendable protocol의 요약 설명을 보면, 복사에 의해 Concurrency 도메인 간에 값을 안전하게 전달할 수 있도록 한다고 하는데, 문서를 보도록 하겠습니다. 동시성 문제를 해결하는 Actor와 Sendable protocol의 관계 하나의 스레드에서 동시 접근을 해버리면 예기치못한 동작을 야기할 수 있습니다. 대표적인 예사가 은행송금 문제입니다. 만약에 잔고가 100만원이 있는데, 동시에 ..
- Total
- Today
- Yesterday
- swift
- swift string
- Swift 알고리즘
- 알고리즘
- ios
- 프로그래머스
- 부스트코스
- swift문제
- swift 기초
- 김프매매
- swift언어
- createML
- swift concurrency
- CoreML
- Protocol
- 프로그래머스swift
- Collection
- swift 문자열
- swift알고리즘
- 컬렉션
- swift reduce
- 알고리즘문제
- 스위프트
- SwiftUI
- 백준알고리즘
- 프로토콜
- uikit
- 백준swift
- 개발자문서
- 자연어처리
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |