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