분류 전체보기
-
[SE-0530] Async Result SupportSwift 2026. 6. 7. 15:09
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0530 — Result 타입의 async 이니셜라이저 추가에 대해 정리해보겠습니다 🙋🏻IntroProposal: SE-0530Authors: Konrad 'ktoso' Malawski, Matt MassicotteReview Manager: Doug GregorStatus: Implemented (Swift 6.4)MotivationSwift의 Result 타입은 throwing 코드를 다룰 때 굉장히 유용한 도구입니다.기존의 Result.init(catching:)은 throwing 클로저를 Result 인스턴스로 변환해주는 편리한 이니셜라이저예요.// 기존: 동기 버전은 있음let result = Result { try syncWork() }그런..
-
[SE-0528] Continuation — Safe and Performant Async ContinuationsSwift 2026. 5. 30. 11:19
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0528 — 안전하고 성능 좋은 Async Continuation, Continuation 타입 도입에 대해 정리해보겠습니다 🙋🏻IntroProposal: SE-0528Authors: Fabian Fett, Konrad MalawskiReview Manager: Joe GroffStatus: Accepted with revisionsMotivationContinuation은 콜백 기반 API를 Swift Structured Concurrency로 연결하는 핵심 메커니즘입니다. 그런데 현재 개발자는 두 가지 옵션 중 하나를 골라야 하는 불편한 선택을 강요받고 있어요.UnsafeContinuation — 오버헤드는 없지만, 두 번 resume하면 unde..
-
[SE-0522] Source-Level Control Over Compiler WarningsSwift 2026. 5. 23. 08:45
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0522 — 소스 레벨에서의 컴파일러 경고 제어에 대해 정리해보겠습니다 🙋🏻IntroProposal: SE-0522Authors: Artem Chikin, Doug Gregor, Holly BorlaReview Manager: Tony AllevatoStatus: AcceptedMotivationSE-0443에서는 커맨드라인 플래그로 컴파일러 경고를 제어할 수 있게 되었습니다. 예를 들어 -Werror DeprecatedDeclaration을 사용하면 Deprecated 경고를 에러로 격상시킬 수 있죠.하지만 이 방식은 모듈 전체에 적용되는 블런트한 수단이에요. 특정 선언에서만 예외를 두고 싶은 경우에는 대응할 방법이 없었습니다.// 모듈 전체에 -W..
-
[SE-0523] Hashable conformance for UnownedTaskExecutorSwift 2026. 5. 15. 03:53
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0523 — UnownedTaskExecutor의 Hashable 채택에 대해 정리해보겠습니다 🙋🏻IntroProposal: SE-0523Authors: Fabian Fett, Konrad MalawskiReview Manager: John McCallStatus: Implemented (Swift 6.4)MotivationSE-0417에서 도입된 task executor preferences는 현재 실행 중인 task의 unownedTaskExecutor를 노출해, 성능에 민감한 코드가 executor 기반으로 스케줄링 결정을 내릴 수 있게 해줍니다.UnownedTaskExecutor는 이미 Equatable을 채택하고 있어요. 그런데 Hashabl..
-
[SE-0524] Add withTemporaryAllocation using Output(Raw)SpanSwift 2026. 5. 9. 13:50
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0524 — OutputSpan을 활용한 withTemporaryAllocation 추가에 대해 정리해보겠습니다 🙋🏻IntroProposal: SE-0524Author: Max DesiatovReview Manager: Doug GregorStatus: Implemented (Swift 6.4)MotivationSE-0322와 SE-0437에서 도입된 withUnsafeTemporaryAllocation은 스택에 임시 메모리를 할당할 수 있는 유용한 API입니다.하지만 이 함수는 UnsafeMutableBufferPointer 또는 UnsafeMutableRawBufferPointer를 yield하기 때문에, 초기화와 해제를 개발자가 직접 관리해야 했..
-
[SE-0521] Improved Syntax for Optionals of Opaque and Existential TypesSwift 2026. 5. 1. 06:51
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0521 — Opaque 및 Existential 타입의 Optional 문법 개선에 대해 정리해보겠습니다 🙋🏻IntroProposal: SE-0521Author: Tony AllevatoReview Manager: Frederick Kellison-LinnStatus: Accepted with modificationsMotivationSwift에서 some P와 any P는 이미 익숙한 문법이죠.개발자들은 자연스럽게 Int?, String?처럼 some P? 또는 any P?라고 쓰고 싶어 합니다. 그런데 현재 이 코드는 컴파일 에러가 발생합니다 🐛func fetchUser() -> some Identifiable? // ❌ errorvar ha..
-
[SE-0520] Discardable result use in Task initializersSwift 2026. 4. 25. 09:58
안녕하세요. 그린입니다 🍏이번 포스팅에서는 SE-0520 — Task 이니셜라이저에서의 Discardable result 처리에 대해 정리해보겠습니다 🙋🏻 IntroProposal: SE-0520Author: Konrad 'ktoso' MalawskiStatus: AcceptedMotivation현재 아래 코드는 아무런 경고 없이 컴파일됩니다.Task { // no warning try boom() }print("Yay!") 간단한 예시에서는 에러를 놓쳤다는 게 명확하지만, 실제 코드베이스에서는 노이즈가 많아서 에러를 조용히 무시했다는 사실을 놓치기 쉽거든요. 이 문제는 Swift 커뮤니티에서 여러 차례 제기되었습니다.Task initializer with throwing closure swall..
-
[SE-0519] Borrow and Inout types for safe, first-class referencesSwift 2026. 4. 11. 09:55
안녕하세요. 그린입니다 🍏이번 포스팅에서는 안전한 first-class 참조를 위한 Borrow와 Inout 타입에 대해 정리해보겠습니다 🙋🏻IntroProposal: SE-0519Authors: Joe Groff, Alejandro AlonsoStatus: Active review (March 4...17, 2026)MotivationSwift는 함수 호출의 일부로 값에 대한 임시 접근을 제공할 수 있습니다.inout 파라미터: 호출자가 소유한 값에 대한 임시 독점(exclusive) 접근을 받습니다. 호출된 쪽에서 파라미터를 수정하거나 현재 값을 소비(consume)할 수 있고, 호출자는 함수가 반환되면 소유권을 다시 가져옵니다.borrowing 파라미터: 호출자로부터 값에 대한 임시 공유(sh..