분류 전체보기
-
Swift Closure Capture SemanticsSwift 2025. 11. 15. 09:07
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Swift Closure의 Capture Semantics에 대해 알아보겠습니다 🙋🏻 기본 문법은 모두 알고 계실테니, 실제로 헷갈리는 심화 내용들만 집중적으로 다뤄볼게요!Reference vs Value: 캡처 시점의 차이기본 동작Swift 클로저는 기본적으로 외부 변수에 대한 참조를 캡처하며, 이 참조는 클로저가 실제로 실행되는 시점에 평가됩니다.var counter = 0let closure = { print(counter) }counter = 10closure() // 10 출력 (0이 아님!) 클로저 생성 시점이 아닌 실행 시점의 값이 사용됩니다.Capture List로 값 복사하기캡처 리스트를 사용하면 클로저 생성 시점의 값을 캡처할 수 있습니..
-
WKURLSchemeHandleriOS 2025. 11. 9. 08:37
안녕하세요. 그린입니다 🍏오늘은 iOS 11에서 도입된 WKURLSchemeHandler에 대해 깊이 있게 살펴보려고 합니다.WKWebView에서 커스텀 URL Scheme을 처리하는 방법을 찾고 계셨다면, 도움이 되지 않을까 합니다! 🙋🏻From UIWebView To WKWebView2014년 iOS 8과 함께 WKWebView가 출시되기 전, iOS 개발자들은 UIWebView를 사용했습니다.UIWebView는 NSURLProtocol을 통해 커스텀 URL Scheme 처리가 가능했습니다.NSURLProtocol을 서브클래싱하고 등록하면, 커스텀 스킴(예: myapp://)으로 시작하는 모든 요청을 가로채서 처리할 수 있었죠.// UIWebView 시대의 NSURLProtocol 사용 예시cl..
-
Swift Build TechnologiesSwift 2025. 11. 1. 09:03
안녕하세요. 그린입니다 🍏수백만 개의 App Store 앱과 Apple 자사 운영체제를 빌드하는 데 사용되는 Xcode의 빌드 엔진을 오픈소스로 공개를 2월에 했었죠! 이번 포스팅에서는 Swift Build가 무엇이고, 왜 중요하며, 기존 SwiftPM 빌드 시스템과 어떻게 다른지 자세히 살펴보겠습니다 🙋🏻Swift가 크로스 플랫폼 언어로 성장Swift는 2015년 오픈소스로 공개된 이후 많은 성장을 해왔습니다.2015: iOS/macOS 전용 ↓2017: Linux 지원 ↓2020: Windows 지원 ↓2024: 임베디드 시스템 (마이크로컨트롤러) ↓2025: Android 지원 이제 Swift는⌚️ Wearables (Apple Watch)📱 Mobile (iOS, Android)💻..
-
Swift SDK for Android - Android 앱을 Swift로 개발하기Swift 2025. 10. 26. 09:08
안녕하세요. 그린입니다 🍏드디어 Swift로 Android 앱을 개발할 수 있는 시대가 왔습니다!2015년 오픈소스로 공개된 이후 Darwin 기반 시스템(iOS, macOS 등)에 집중했던 Swift가 이제 Android 앱 개발까지 지원하게 되었습니다. 이번 포스팅에서는 Swift SDK for Android를 시작하는 방법부터 실제로 "Hello World"를 Android 기기에서 실행하는 과정까지 자세히 정리해보겠습니다 🙋🏻Swift의 크로스 플랫폼 여정Swift는 2015년 오픈소스로 공개된 이후, Darwin 기반 시스템에 집중하던 언어에서 Linux, Windows, 그리고 다양한 임베디드 시스템을 지원하는 크로스 플랫폼 개발 언어로 성장했습니다.그리고 이제 Swift SDK for ..
-
Iterate Over Parameter PacksSwift 2025. 10. 18. 09:32
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Swift 6.0에서 도입된 Pack Iteration에 대해 정리해보려 합니다. Swift 5.9에서 도입된 Parameter Packs를 훨씬 더 쉽고 직관적으로 다룰 수 있게 해주는 기능인데요, 실제 코드 예제와 함께 살펴보겠습니다 🙋🏻Parameter Packs Recap먼저 Parameter Packs가 무엇인지 간단히 복습해볼까요?다음 코드를 보겠습니다. let areEqual = (1, true, "hello") == (1, false, "hello")print(areEqual)// false 위 코드는 단순히 두 튜플을 비교합니다. 하지만 이 코드는 튜플에 7개의 요소가 있으면 작동하지 않았습니다! Swift 표준 라이브러리는 오랫동안 최대..
-
Swift Profile RecorderSwift 2025. 10. 12. 08:24
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Apple이 오픈소스로 공개한 Swift Profile Recorder에 대해 정리해보려 합니다. 프로덕션 환경에서 성능 문제를 진단하는 새로운 도구인데요.실제로 Apple이 수년간 대규모 Swift 서비스 운영에 사용해온 도구입니다 🙋🏻Swift Profile Recorder란?Swift Profile Recorder는 Swift 서비스를 위한 인프로세스 샘플링 프로파일러입니다. 이제 오픈소스 프로젝트로 공개되어 누구나 사용할 수 있게 되었습니다.프로파일링은 애플리케이션의 성능, 리소스 사용량, 동작을 이해하기 위한 방법입니다. Swift Profile Recorder를 사용하면 패키지 의존성만 추가하면 되고 추가 설정이 필요 없어요. 주요 특징1. 특별..
-
Swift 6.2Swift 2025. 10. 2. 06:49
안녕하세요. 그린입니다 🍏 조금 전이지만 9월에 Swift 6.2가 출시되었습니다! 이번 릴리즈는 모든 Swift 개발자의 생산성을 향상시키는 데 초점을 맞춘 업데이트입니다. 언어 개선부터 툴링, 라이브러리, 그리고 플랫폼 지원까지 실무 개발에 필요한 광범위한 기능들이 추가되었습니다.이번 포스팅에서는 Swift 6.2의 주요 변경사항들을 하나씩 살펴보려고 합니다 🙋🏻Approachable ConcurrencySwift 6.2에서 가장 눈에 띄는 변화는 동시성 프로그래밍의 진입장벽을 낮춘 것입니다. 이번 업데이트는 보일러플레이트 코드를 줄이고 안전한 동시성 코드를 더 자연스럽게 작성할 수 있도록 설계되었습니다. 기본적으로 싱글 스레드 실행이제 명시적인 @MainActor 어노테이션 없이도 메인 스레드..
-
SwiftUI's diffingSwiftUI 2025. 9. 27. 06:31
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI의 성능에 관련된 핵심 메커니즘인 diffing 알고리즘과 뷰 재생성 최적화에 대해 정리해보려 합니다 🙋🏻SwiftUI's diffingSwiftUI를 사용하면서 이런 궁금증들이 생기지 않나요?"List를 스크롤할 때 왜 이렇게 버벅거리지? 🤔""상태가 조금만 바뀌어도 전체 화면이 다시 그려지는 것 같은데?""ForEach에서 id: .self를 쓰면 안 된다고 하는데 정확히 왜지?""Airbnb에서 15% 성능 개선했다는 방법임 뭘가? 이 부분에서 답을 찾으려면 SwiftUI의 diffing 알고리즘을 이해해야 합니다.Why SwiftUI Diffing Matters More Than Ever?📈 Performance Issues복잡한 리..