์ ์ฒด ๊ธ
-
[SE-0514] Hashable Conformance for Dictionary.Keys, CollectionOfOne and EmptyCollectionSwift 2026. 3. 2. 09:14
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SE-0514 Hashable Conformance for Dictionary.Keys, CollectionOfOne and EmptyCollection์ ๋ํด ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค ๐๐ปIntroSwift ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋ช๋ช collection ํ์ ๋ค์ด Hashable์ conformํ์ง ์๋ ๊ฒ ์์ต๋๋ค.Dictionary.Keys, CollectionOfOne, EmptyCollection์ด ๋ฐ๋ก ๊ทธ๊ฒ๋ค์ธ๋ฐ์. ์ด๋ฒ SE-0514๋ ์ด ์ธ ํ์ ์ Hashable conformance๋ฅผ ์ถ๊ฐํ๋ ์ ์์ ๋๋ค. ํนํ Dictionary.Keys๋ ๋ชจ๋ key๊ฐ ์ด๋ฏธ Hashable์ธ๋ฐ keys view ์์ฒด๋ Hashable์ด ์๋ ๊ฒ ์ข ์ด์ํ์ฃ .๊ฐ๋จํ์ง๋ง ..
-
[SE-0510] Introduce Dictionary.mapValuesWithKeysSwift 2026. 2. 21. 00:45
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SE-0510 Introduce Dictionary.mapValuesWithKeys์ ๋ํด ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค ๐๐ปIntroDictionary์ ๊ฐ์ ๋ณํํ ๋ key ์ ๋ณด๋ ํจ๊ป ํ์ํ ๊ฒฝ์ฐ๊ฐ ์ข ์ข ์์ต๋๋ค.ํ์ง๋ง ํ์ฌ๋ ์ด๋ฐ ์์ ์ ํ๋ ค๋ฉด init(uniqueKeysWithValues:)๋ reduce(into:)๋ฅผ ์จ์ผ ํ๋๋ฐ, ์ด๋ค์ ๋ถํ์ํ๊ฒ dictionary๋ฅผ rehashingํ๊ฑฐ๋ ์ฌํ ๋นํ๋ ๋น์ฉ์ด ๋ฐ์ํฉ๋๋ค. SE-0510์ ์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด mapValuesWithKeys๋ผ๋ ์๋ก์ด ๋ฉ์๋๋ฅผ ์ ์ํฉ๋๋ค.Key ์ ๋ณด๋ฅผ transformation closure์ ์ ๋ฌํ๋ฉด์๋ ์ฑ๋ฅ ์ค๋ฒํค๋ ์์ด ๊ฐ๋ง ๋ณํํ ์ ์์ต๋๋ค ๐ ํ์ฌ ์์ ์์๋..
-
[SE-0508] Array expression trailing closuresSwift 2026. 2. 14. 15:44
์๋ ํ์ธ์. ๊ทธ๋ฆฐ์ ๋๋ค ๐์ด๋ฒ ํฌ์คํ ์์๋ SE-0508 Array expression trailing closures์ ๋ํด ์ ๋ฆฌํด๋ณด๊ฒ ์ต๋๋ค ๐๐ปIntroSwift์์ trailing closure๋ ์ ๋ง ์์ฃผ ์ฐ๋ ๋ฌธ๋ฒ์ด์ฃ . ๊ทธ๋ฐ๋ฐ array๋ dictionary ํ์ ๋ค์๋ trailing closure๋ฅผ ์ธ ์ ์๋ค๋ ๊ฑธ ์์ จ๋์?[String] ๊ฐ์ ํ์ ๋ค์ ์ค๊ดํธ๋ฅผ ์ฐ๋ฉด ํ์๊ฐ ์ ๋๋ก ์ธ์ํ์ง ๋ชปํด์ ์๋ฌ๊ฐ ๋ฐ์ํฉ๋๋ค.์ด๋ฒ SE-0508์ ๋ฐ๋ก ์ด ์ ์ฝ์ ํ์ด์ฃผ๋ ์ ์์ ๋๋ค.์ด๋ฏธ Accepted ์ํ์ด๊ณ ๊ตฌํ๋ ์๋ฃ๋์์ผ๋, ๊ณง ์ค์ ๋ก ํ์ฉํ ์ ์์๊ฑฐ์์ ๐ ์ ํ์ํ๊ฐ?Array์ trailing closure๋ฅผ ๋ฐ๋ init์ ์ ์ํ๋ ๊ฑด ๊ฝค ํฉ๋ฆฌ์ ์ธ ๋์์ธ์ ๋๋ค. ์๋ฅผ ๋ค์ด @..
-
[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..