전체 글 452

Elevating an app with Swift concurrency (Swift 동시성으로 앱 수준 높이기)

Elevating an app with Swift concurrency (Swift 동시성으로 앱 수준 높이기) Asynchronous code: 단일 스레드에서 시작해서 필요에 따라 비동기 코드 도입Parallelism: 앱 성능 개선을 위해 자원이 많이 소모되는 작업을 오프로드하고 병렬로 실행Data-race safety: 일반적인 데이터 경쟁 안전 시나리오와 해결을 위한 접근 방식도 알아봄Structured concurrency: 구조화된 동시성을 살펴보고 동시성 코드를 더 세밀하게 조정하는 TaskGroup 등도 사용 Asynchronous code Xcode에 몇가지 기능이 추가되어 동시성을 더 쉽게 도입할 수 있음.: Approachable Concurrency를 YES로 설정: Def..

apple/WWDC 2025.10.19

Actor에서 Class + OSAllocatedUnfairLock

Actor에서 Class + OSAllocatedUnfairLock 상태 보호를 위해서 actor로 작성된 객체를 class + OSAllocatedUnfairLock으로 변경프로파일링 과정에서 특정 메서드의 호출 빈도가 높아지는 경우 지속적으로 CPU Usage가 높게 잡히는 부분이 있어서 확인 Actor 기반으로 작성한 메서드를 실행했을 때completeTaskClousre로 나타나는 영역에서 Weight를 많이 차지함.해당 메서드의 구현부는 swiftlang / swift에 존재.https://github.com/swiftlang/swift/blob/main/stdlib/public/Concurrency/Task.cpp 간단한 Task를 컨텍스트에 넣어서 클로저로부터 최종 반환을 처리하는 함수 /..

백그라운드에서 작업 완료하기 (Finish tasks in the background) -wwdc25

백그라운드에서 작업 완료하기 (Finish tasks in the background) -wwdc25 사용자가 앱을 나가고도 프로세스가 살아 있으면 앱은 백그라운드로 전환.기본적으로 백그라운드 앱은 Suspended 되어서 CPU를 사용하지 않게 됨. 이는 배터리를 보호하고 개인 정보를 지키며 foreground 앱에 더 많은 리소스를 확보해 줌. 경우에 따라서는 앱은 suspened 전 작업을 마무리 할 수 있도록 백그라운드에 실행을 요청할 수 있음. 백그라운드 런타임을 사용하기 전에 시스템이 리소스를 어떻게 우선순위화 하고 관리하는지 그리고 앱 안에서 무엇을 할 수 있을지 이해하는 것이 좋음. 시스템의 목표는 배터리를 보호하고 개인정보를 지키며 반응성 좋은 앱을 만드는 것임.즉, 백그라운드 실행은..

apple/WWDC 2025.07.30

Swift Concurrency Task weak self 실험 정리

Swift Concurrency Task weak self 실험 정리 Task에서 weak self 사용과 관련해서 실험들을 정리.개념에 대한 부분을 따로 생략함. Swift에서 Task를 사용할 때 self를 강하게 캡처하지만, 클로저가 종료될 때 메모리 Swift의 Task는 기본적으로 self를 강하게 캡처하기 때문에, Task의 수명이 self보다 길어질 경우 retain cycle 없이도 self의 deinit 호출이 지연될 수 있음.따라서 Task가 더 오래 살아 있을 가능성이 있다면 [weak self]를 명시하는 것이 안전.반면, Task의 수명이 self보다 짧고 일회성 작업에 그친다면 굳이 [weak self]를 사용할 필요는 없음. 목차example_1Task에 weak self를 명..

Transactional observation preserves consistency

Transactional observation preserves consistency Transactional observation preserves consistency는 주로 상태 관찰 시스템(ex Swift의 Observable)에서 사용하는 개념 Transactional observation트랜잭션 단위의 관찰 → 일련의 변화(이벤트, 값 변경 등)를 하나의 단위로 관찰한다는 뜻Preserves consistency일관성을 유지한다 → 상태가 중간에 깨지지 않고, 항상 논리적으로 올바른 상태라는 뜻 즉, 여러 상태 변화가 한꺼번에 발생했을 때, 그 중간 과정은 보지 않고 완전히 반영된 상태만 관찰자에게 전달된다는 의미.

Swift의 새로운 기능 (What's new in Swift) - WWDC25

Swift의 새로운 기능 (What's new in Swift) - WWDC25Swift 6.2의 새로운 기능과 개선점 소개 swiftly는 버전 관리자로 원래 Linux상 Swift Toolchain 관리를 간소화하기 위해 오픈소스 커뮤니티에서 개발올해부터 swiftly는 macOS를 지원하고 swift.org에서 1.0 릴리즈를 만나볼 수 있음. `> swiftly install 6.1.3`으로 설치하거나 `>swiftly install main-snapshot`을 통해 깃헙 main 브랜치에서 설치하여 개발중인 기능을 설치할 수 있음. Xcdoe에서 swiftly가 설치한 Toolchain은 메뉴에서 사용할 수 있음.VSCode에서는 Toolchain을 선택할 수 있음. VSCode에서는 올해..

apple/WWDC 2025.07.21

SpeechAnalyzer로 앱에 고급 음성 텍스트 변환 기능 가져오기 (Bring advanced speech-to-text capabilities to your app with SpeechAnalyzer) - WWDC25

SpeechAnalyzer로 앱에 고급 음성 텍스트 변환 기능 가져오기 (Bring advanced speech-to-text capabilities to your app with SpeechAnalyzer) - WWDC25 더욱 발전된 음성 텍스트 변환 API 및 기술인 SpeechAnalyzer가 올해 도입되었음. 이번 세션에서는 SpeechAnalyzer API 및 이와 관련된 핵심 개념을 살펴볼 것API의 기반이 되는 모델에 도입된 새기능에 관해 간단히 설명마지막으로 API 사용 방법과 데모 앱을 만나 볼 예정. 다양한 앱에서 이미 해당 기능을 사용하고 있음.이를 Apple Intelligence와 결합하면 통화 요약과 같은 기능을 구현할 수 있음.해당 API를 활용해서 실시간으로 음성을 ..

apple/WWDC 2025.07.14

온디바이스 기반 모델에 대한 프롬프트 디자인 및 안전성 살펴보기 (Explore prompt design & safety for on-device foundation models) - WWDC25

온디바이스 기반 모델에 대한 프롬프트 디자인 및 안전성 살펴보기 (Explore prompt design & safety for on-device foundation models) - WWDC25 생성형 AI를 매우 흥미로운 기술로 핵심 과제는 다양한 실제 상황에서도 앱 사용자에게 잘 작동하는 강력한 경험을 만드는 것.이번 영상에서는 이런 경험을 만드는데 도움이 되는 가이드라인을 제시함.개발자, 디자이너, 기획자 등 모두에게 도움이 되는 세션 프롬프트는 생성형 AI 모델에 입력해 응답을 이끌어 내기 위한 텍스트 내용자연어로 작성하고, Apple Intelligence에서 지원하는 모든 언어로 입력 가능함. Foundation Models 사용하면 프롬프트가 온디바이스 LLM으로 전송됨.LLM은 추론..

apple/WWDC 2025.07.11