์ ์ฒด ๊ธ
-
[SE-0507] Borrow and Mutate AccessorsSwift 2026. 2. 8. 08:14
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SE-0507 Borrow and Mutate Accessors์ ๋ํด ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค ๐๐ปIntroSwift์ property accessor๋ ๊ณ์ ๋ฐ์ ์ค์ ๋๋ค.๊ธฐ์กด์๋ get, set, ๊ทธ๋ฆฌ๊ณ ์ต๊ทผ ์ถ๊ฐ๋ yielding borrow, yielding mutate๊ฐ ์์๋๋ฐ์. ์ด๋ฒ SE-0507์ ์๋ก์ด borrow์ mutate accessor๋ฅผ ์ ์ํฉ๋๋ค. ์๋ค๋ค์ borrowing semantics๋ฅผ ์ฌ์ฉํด์ ๋ณต์ฌ ์ค๋ฒํค๋ ์์ด ๊ฐ์ ์ ๊ทผํ ์ ์๊ณ , yielding accessor๋ณด๋ค ์ฑ๋ฅ์ด ์ข์ต๋๋ค.ํนํ non-copyable ํ์ ์ ๋ค๋ฃจ๋ collection์ด๋ ์ฑ๋ฅ์ด ์ค์ํ ์ ์์ค ๋ฐ์ดํฐ ๊ตฌ์กฐ์ ์ ์ฉํ ๊ฑฐ์์ ๐ ํ์ฌ 2026๋ 2์ ..
-
[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 // ๐..