Community

Swift Language Project in 2023๐Ÿ‘€

2019๋…„๋„์— Swift 5.0์ด ๋ฆด๋ฆฌ์ฆˆ ๋˜๊ณ  ๋‚˜์„œ๋ถ€ํ„ฐ ํ˜„์žฌ 5.7๊นŒ์ง€ ๋ฆด๋ฆฌ์ฆˆ๊ฐ€ ๋์Šต๋‹ˆ๋‹ค. 2023๋…„์— Swift 6.0์ด ๋ฆด๋ฆฌ์ฆˆ ๋  ํ…๋ฐ 2023๋…„ Swift ๊ทธ๋ฃน์˜ ์ดˆ์ ์€ ๋ฌด์—‡์ด๋ฉฐ ์ƒˆ ๋ฆด๋ฆฌ์ฆˆ์—์„œ ๊ธฐ๋Œ€ํ•  ์ˆ˜ ์žˆ๋Š” ์–ธ์–ด ๊ธฐ๋Šฅ์€ ๋ฌด์—‡์ธ์ง€ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค! 1๏ธโƒฃ ๋™์‹œ์„ฑ(Concurrency) Swift ํŒ€์€ Sendable ํ”„๋กœํ† ์ฝœ, Actor, async/await์˜ ํ˜•ํƒœ๋กœ Swift 5.5์™€ ํ•จ๊ป˜ Swift์— ์ œ๊ณต๋˜๋Š” Concurrency์— ๋Œ€ํ•œ ์–ธ์–ด ์ง€์›์„ ์™„๋ฃŒํ•˜๊ธฐ ์œ„ํ•ด ๋…ธ๋ ฅํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ์ดˆ์ ์„ ๋งž์ถ”๋Š” ๋ถ€๋ถ„์€ - Fixing thread-safety holes(์Šค๋ ˆ๋“œ ์•ˆ์ „์— ๋Œ€ํ•œ ์ˆ˜์ •) - Fixing Cross-actor calls bugs(๊ต์ฐจ ์•กํ„ฐ ํ˜ธ์ถœ ๋ฒ„๊ทธ ์ˆ˜์ •) - Possibility of allowing non-Sendable values to move between isolated layers (๊ฒฉ๋ฆฌ๋œ ๋ ˆ์ด์–ด ๊ฐ„์— ์ด๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅ์„ฑ์— ๋Œ€ํ•œ ๋ฌธ์ œ) ๋“ฑ์ด ์ฃผ๊ฐ€ ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค. 2๏ธโƒฃ ์ œ๋„ค๋ฆญ(Generics) Swift 6.0 ์ดํ›„์— ๊พธ์ค€ํžˆ ์ง„ํ–‰๋  ํ”„๋กœ์„ธ์Šค์ง€๋งŒ ์ œ๋„ค๋ฆญ์ด ๋” ์ง„ํ™”ํ•  ๊ฒƒ์œผ๋กœ ๋ณด์ž…๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ œ๋„ค๋ฆญ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•ด ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ ๋Ÿฐํƒ€์ž„์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ๊ตฌํ˜„์„ ์ถ”๊ฐ€ํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํŠœํ”Œ์ด ์กฐ๊ฑด๋ถ€๋กœ ํ”„๋กœํ† ์ฝœ์„ ์ค€์ˆ˜ํ•˜๋„๋ก ํ—ˆ์šฉํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. 3๏ธโƒฃ ๋งคํฌ๋กœ(Macros) ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋งคํฌ๋กœ์— ์ต์ˆ™ํ•˜์ง€ ์•Š์€ ์‚ฌ์šฉ์ž๋ฅผ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ๋†’์€ ์ˆ˜์ค€์˜ ๋งคํฌ๋กœ๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์— ํ”„๋กœ๊ทธ๋žจ ์†Œ์Šค ์ฝ”๋“œ์˜ ์ผ๋ถ€๋ฅผ ๊ฐ€์ ธ์™€ ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ ์ปดํŒŒ์ผ๋˜๋Š” ๋‹ค๋ฅธ ์†Œ์Šค ์ฝ”๋“œ๋กœ ๋ณ€ํ™ฅํ•ฉ๋‹ˆ๋‹ค. 2023๋…„์— Swift ํŒ€์ด ๋งŒ๋“ค์–ด ๋‚ผ ์ž‘ํ’ˆ์ด ์ •๋ง ๊ธฐ๋Œ€๊ฐ€ ๋ฉ๋‹ˆ๋‹ค! 4๏ธโƒฃ. C++ C++๋Š” ์—ฌ์ „ํžˆ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ์‹œ์Šคํ…œ ์–ธ์–ด ์ค‘ ํ•˜๋‚˜์ด๋ฏ€๋กœ Swift ํŒ€์ด C++๊ณผ Swift์˜ ๊ฐ„๋‹จํ•œ ํ†ตํ•ฉ์„ ์œ„ํ•ด ํž˜์“ฐ๋Š” ๊ฒƒ์€ ๋‹น์—ฐํ•ฉ๋‹ˆ๋‹ค. C++ API๋ฅผ Swift๋กœ ํ†ตํ•ฉํ•œ๋‹ค๋ฉด ์ข€ ๋” ๋งŽ์€ Objective-C ์ฝ”๋“œ๊ฐ€ Swift๋กœ ๊ฐœ๋ฐœ์ด ๊ฐ€๋Šฅํ•ด์ง€๊ณ  ํ–ฅํ›„์—๋Š” Swift๋กœ ๋งŒ๋“ค์–ด์ง„ Swift ์ปดํŒŒ์ผ๋Ÿฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค! 5๏ธโƒฃ ํŒจํ‚ค์ง€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ(Package Registry) Swift ํŒ€์€ SPM์„ ์†Œ์Šค ์ œ์–ด ์ƒํƒœ๊ณ„์—์„œ Cargo, NPM ๋˜๋Š” Maven๊ณผ ๊ฐ™์€ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ ๊ธฐ๋ฐ˜ ์ƒํƒœ๊ณ„๋กœ ์ „ํ™˜ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ๊ธฐ์ˆ  ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋งŒ๋“œ๋Š” ์ž‘์—…์— ์ง‘์ค‘ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. https://itnext.io/swift-language-project-in-2023-b964515f4764

์•Œ๋ฆผ

์•Œ๋ฆผ์ด ์—†์Šต๋‹ˆ๋‹ค