swift 191

UNUserNotificationCenter `requestAuthorization`에서 발생하는 희귀한 버그 현상 분석

UNUserNotificationCenter `requestAuthorization`에서 발생하는 희귀한 버그 현상 분석 사내에 2021년에 작성된 코드에서 앱이 멈추는 상황이 발생해서 사례 분석앱 시작 직후가 아닌, 사용자에게 별도 페이지에서 안내 후 버튼 클릭을 통한 권한 요청의 동선 상세한 분석 링크https://github.com/lgvv/unusernotificationcenter-requestauthorization-blocking-simulation GitHub - lgvv/unusernotificationcenter-requestauthorization-blocking-simulation: Investigating Rare Bugs in UNUserNotificationCeInvestiga..

ARC in Swift: Basics and beyond - WWDC21

ARC in Swift: Basics and beyond - WWDC21 Swift에서는 가능하다면 Value Type 사용하는게 더 좋은데 Reference Type을 사용해서 의도치 않은 데이터 공유에 따른 오류를 피할 수 있음.그럼에도 불구하고 class와 같은 Reference Type을 사용해야 한다면 Swif에서 ARC를 통해 메모리를 관리하고 효과적으로 코드를 작성하기 위해서는 ARC의 동작 방식을 이해하는게 도움이 됨. Object lifetimes and ARC: Swift에서 객체 수명과 ARC에 대한 리뷰Observable object lifetimes: 관찰 가능한 객체의 수명이 무엇인지 설명: 관찰 가능하게 만드는 언어적 특징과 관촬된 객체 수명에 의조낳는 것의 결과와 이를..

apple/WWDC 2025.10.23

Secure your app with Memory integrity Enforcement (메모리 무결성 강화로 앱 보호하기)

Secure your app with Memory integrity Enforcement (메모리 무결성 강화로 앱 보호하기) 메모리 무결성 강화를 통해 앱을 보호하는 방법. Memory corruption: Most common vulnerability (메모리 손상) > 공격자는 메모리 버그를 이용해 앱의 제어권을 장악하고 사용자의 민감한 데이터를 훔칠 수 있음. 예를 들어 버퍼 오버플로우는 버퍼의 경계를 넘어 다른 할당의 메모리를 손상시킴.: 이런 경우에 다른 포인터가 메모리를 읽을 때 데이터 손상과 재현하기 어려운 충돌이 발생할 수 있음. Use-after-free memory corruption 앱이 메모리 chunk를 할당 해제했지만 해당 메모리에 dangling pointer가 남아 있는..

apple/WWDC 2025.10.19

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

백그라운드에서 작업 완료하기 (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를 명..

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