분류 전체보기
-
[SE-0506] Advanced Observation TrackingSwift 2026. 2. 1. 06:46
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0506 Advanced Observation Tracking에 대해 정리해보겠습니다 🙋🏻IntroSwift의 Observation 프레임워크는 @Observable 매크로로 간단하게 변화를 추적할 수 있게 해줍니다.하지만 기존 withObservationTracking은 비동기 환경에 최적화되어 있어서, 동기 시스템과 연동하거나 더 세밀한 제어가 필요한 경우에는 한계가 있었습니다. SE-0506은 이런 케이스를 위한 새로운 도구를 제공합니다.대부분의 개발자는 기존 @Observable과 Observations로 충분하지만, 미들웨어 인프라나 위젯 시스템을 개발하는 경우라면 이번 제안이 꼭 필요할 거예요 🚀 현재 2026년 2월 3일까지 리뷰가 진행..
-
[SE-0493] defer support asyncSwift 2026. 1. 24. 12:54
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0493 Support async calls in defer bodies에 대해 정리해보겠습니다 🙋🏻IntroSwift의 defer는 정말 유용한 기능이죠.scope를 벗어날 때 반드시 실행되어야 하는 cleanup 코드를 깔끔하게 작성할 수 있게 해줍니다. 그런데 문제는 defer 블록 안에서는 async 함수를 호출할 수 없다는 점입니다.async context에 있어도 await를 쓰면 에러가 나거든요. 이번 SE-0493은 바로 이 제약을 풀어주는 제안입니다. 이미 Accepted 상태이고 구현도 완료되었으니, 곧 실무에서도 쓸 수 있을 것 같습니다 🚀 왜 필요한가?defer는 Swift 2에서 도입된 기능으로, scope 기반 cleanup..
-
[SE-0504] Task Cancellation ShieldsSwift 2026. 1. 17. 09:03
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0504 Task Cancellation Shields에 대해 정리해보겠습니다 🙋🏻여기서는 제가 이해한걸 바탕으로 요약하고 나름대로 정리한것으로 전체 요약없이 디테일한 부분까지도 원본이 궁금하시면 아래 원문을 참고해주세요!IntroSwift Concurrency 환경에서 Task 취소는 협력적(cooperative)으로 동작합니다.한번 취소되면 되돌릴 수 없고, 자식 Task까지 전파되죠. 그런데 문제는 리소스 정리 같은 코드는 취소 여부와 상관없이 반드시 실행되어야 한다는 점입니다. 지금까지는 이를 해결하기 위해 unstructured task를 생성하는 꼼수를 써야 했는데, 이번 SE-0504는 이 문제를 정면으로 해결하는 제안입니다. 최근 승인된..
-
[SE-0502] Exclude private initialized properties from memberwise initializerSwift 2026. 1. 11. 09:51
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0502 Exclude private initialized properties from memberwise initializer에 대해 정리해보겠습니다 🙋🏻IntroSwift에서 struct를 사용하다 보면, 의식하지 않아도 자연스럽게 활용하게 되는 기능 중 하나가 바로 memberwise initializer입니다. 저장 프로퍼티를 선언하기만 하면, 컴파일러가 알아서 이니셜라이저를 만들어 주는 기능이죠. 하지만 이 편리한 기능은, 접근 제어자(private, fileprivate)와 엮이기 시작하면 생각보다 많은 불편함과 함정을 드러냅니다. 이번 글에서는 Swift Evolution Proposal SE-0502 – Exclude private in..
-
Recap 2025회고 2026. 1. 3. 11:16
안녕하세요. 그린입니다 🍏 이번 포스팅은 2025년도 회고 결산 포스팅입니다 😃 다들 새해는 보고 오셨나요?저도 떠오르는 태양을 바라보면서 다시 올해 다짐을 하는 시간을 가지려고 일출 스팟으로 갔는데 너무 춥더라구요 🥲그래서 태양이 떠오르는걸 다 보지 못하고 찍먹하듯이 보면서 와서 다짐은 지금 이걸 쓰면서 해보게 되었습니다ㅎㅎ..그래도 어그제가 새해 였으니 올해는 늦지 않게 회고를 해보는것 같아요. 작년까지는 사실상 회고 때 뭔가 쓸만한 포인트들이 정말 많았는데 올해는 업무에 거의 올인을 하여 아이템은 이전보다는 몇개 없지만 한번 정리해보려 합니다 😃 당연하게도 늘 그랬듯이 이번 2025년 회고도 무형식 & 무근본 회고입니다. 어떻게 회고를 해볼까? 🤔1️⃣ 2025년 목표 달성 체크2️⃣ 20..
-
Embedded Swift Improvements Coming in Swift 6.3Swift 2025. 12. 26. 08:56
안녕하세요. 그린입니다 🍏이번 포스팅에서는 Swift 6.3의 Embedded Swift 개선 사항에 대해 알아보겠습니다 🙋🏻(지금은 아직 Swift 6.3 릴리즈 전입니다 😁)Swift 6.3에서 Embedded Swift가 대폭 업그레이드됩니다.마이크로컨트롤러 개발이 더욱 편해질 예정이에요!Embedded Swift?Embedded Swift는 마이크로컨트롤러처럼 리소스가 제한된 환경에서 동작하도록 설계된 Swift의 부분 집합입니다.특별한 컴파일 모드를 사용해서 일반 Swift보다 훨씬 작은 바이너리를 생성하죠.Swift 언어의 대부분은 Embedded Swift에서도 똑같이 동작하구요. 지난 몇 달간 C 상호운용성부터 디버깅, 링키지 모델까지 다양한 개선이 이루어졌는데 하나씩 살펴볼게요. ..
-
Nonexhaustive enums - Swift 6.2.3Swift 2025. 12. 20. 10:08
안녕하세요! 그린입니다 🍏이번 포스팅에서는 Nonexhaustive enums에 대해 알아보겠습니다 🙋🏻 Swift 6.2.3에 정말 중요한 기능이 추가됩니다. SE-0487: Extensible Enums! 지금까지 Swift 패키지를 만들 때 enum에 case를 추가하면 breaking change가 발생하죠?이제 그 문제가 해결될 수 있습니다. AS-IS Problem// Version 1.0public enum HTTPStatus { case ok, notFound, serverError}// Version 1.1 - 새 case 추가public enum HTTPStatus { case ok, notFound, serverError case earlyHints // 🆕..
-
SwiftUI View hierarchy DebuggingSwiftUI 2025. 12. 13. 07:42
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SwiftUI View hiearchy Debugging에 대해 알아보겠습니다 🙋🏻Xcode View Debugging우선, Xcode에는 ViewDebug를 할 수 있게 View Hiearchy를 해볼 수 있어요. 많이 사용하고 계실 이 기능이죠.물론, Reveal, Lookin, Rocketsim 등 요새는 다양하게 뷰 디버깅을 위한 툴이 나와서 더 잘 쓸 수 있지만 핵심 본질을 같긴합니다. 여기서 뭐가 중요하냐하면, 이 계층 구조가 어떤 컴포넌트로 이뤄졌는지를 볼때에요. 좌측 계층 구조 스택을 보면 여기서 SwiftUI로 그려진 ContentView가 호스팅되어서 나타나죠.제가 코드에서 사실 ContentView에 ChildView라는 컴포넌트로 ..