Apple, Swift 5.3 ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฐ ์˜คํ”ˆ ์†Œ์Šค Swift ์‹œ์Šคํ…œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถœ์‹œ

์‚ฌ๊ณผ ๋ฐœํ‘œํ–ˆ๋‹ค. ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์—ฌ๋Š” ๋ฐฉ๋ฒ• ์Šค์œ„ํ”„ํŠธ ์‹œ์Šคํ…œ, ์‹œ์Šคํ…œ ํ˜ธ์ถœ ๋ฐ ํ•˜์œ„ ์ˆ˜์ค€ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ๋Œ€ํ•œ ๊ด€์šฉ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ธํ„ฐํŽ˜์ด์Šค ์„ธํŠธ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Swift System์€ ์›๋ž˜ Apple ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์‹œ์Šคํ…œ ํ˜ธ์ถœ๋งŒ ์ง€์›ํ–ˆ์ง€๋งŒ ์ด์ œ๋Š” Linux๋กœ ํฌํŒ…๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Swift ์‹œ์Šคํ…œ ์ฝ”๋“œ๋Š” Swift ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ ๋ฐฐํฌ์ž Apache 2.0์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Swift System์€ Swift ํ”„๋กœ๊ทธ๋žจ์˜ ํŠน์ • C ํ”„๋ ˆ์ž„์›Œํฌ ์—†์ด๋„ ์ง€์›๋˜๋Š” ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ์Šคํ…œ ์ธํ„ฐํŽ˜์ด์Šค์— ๋Œ€ํ•œ ๋‹จ์ผ ์•ก์„ธ์Šค ์ง€์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๋™์‹œ์— Swift System์€ ์‹œ์Šคํ…œ ํ˜ธ์ถœ ์ž์ฒด๋ฅผ ํ†ตํ•ฉํ•˜์ง€ ์•Š์ง€๋งŒ ์ง€์›๋˜๋Š” ๊ฐ ํ”Œ๋žซํผ์— ๋Œ€ํ•ด ๋ณ„๋„์˜ API ํ•˜์œ„ ์ง‘ํ•ฉ์„ ์ œ๊ณตํ•˜์—ฌ ์ด ํ”Œ๋žซํผ์˜ ๋™์ž‘์„ ๊ณ ๋ คํ•˜๊ณ  ์šด์˜ ์ฒด์ œ์˜ ํ•˜์œ„ ์ˆ˜์ค€ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋ฐ˜์˜ํ•ฉ๋‹ˆ๋‹ค. Swift System์„ ๋งŒ๋“œ๋Š” ์ฃผ์š” ๋ชฉํ‘œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํฌ๋กœ์Šค ํ”Œ๋žซํผ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐœ๋ฐœ์„ ๋‹จ์ˆœํ™”ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ๋‹ˆ์˜ค ะธ ์Šค์œ„ํ”„ํŠธPM. Swift ์‹œ์Šคํ…œ์€ ํ•˜์œ„ ์ˆ˜์ค€ ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ์— ์•ก์„ธ์Šคํ•  ๋•Œ "#if os()"๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ถ„๊ธฐํ•  ํ•„์š”์„ฑ์„ ์ œ๊ฑฐํ•˜์ง€ ์•Š์ง€๋งŒ ์ด ์ž‘์—…์„ ๋” ์•ˆ์ „ํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค.
ํŽธ์•ˆํ•œ.

์ฐธ๊ณ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค ์ถœํŒ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ๋ฆด๋ฆฌ์Šค ์Šค์œ„ํ”„ํŠธ 5.3. ๊ณต์‹ ๋นŒ๋“œ ์ค€๋น„๋œ Linux(Ubuntu 16.04/18.04/20.04, CentOS 7/8), macOS(Xcode 12) ๋ฐ Windows 10์šฉ. ์†Œ์Šค ํ…์ŠคํŠธ ํ™•์‚ฐ Apache 2.0์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—๋Š” Windows ํ”Œ๋žซํผ์— ๋Œ€ํ•œ ์ดˆ๊ธฐ ์ง€์›์ด ์ถ”๊ฐ€๋˜์—ˆ์œผ๋ฉฐ ์‹œ์ž‘ํ•œ Windows 10์—์„œ Swift ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๊ณ  ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์–ธ์–ด ๊ธฐ๋Šฅ์€ ๊ณ„์†ํ•ด์„œ ๊ฐœ์„ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์—๋Š” ๋ฌธ์ž์—ด ์œ ํ˜•์— ๋Œ€ํ•œ ์ด๋‹ˆ์…œ๋ผ์ด์ € ์ถ”๊ฐ€, "where" ํ‘œํ˜„์‹์˜ ํ™•์žฅ๋œ ์‚ฌ์šฉ, didSet ์˜๋ฏธ ์ฒด๊ณ„ ๋ณ€๊ฒฝ, Catch ํ‘œํ˜„์‹์—์„œ ์—ฌ๋Ÿฌ ํŒจํ„ด ์ง€์ • ์ง€์›, ์œ ํ˜• ์ถ”๊ฐ€๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.
ํ”Œ๋กœํŠธ16, ์›์ž ๋ฉ”๋ชจ๋ฆฌ ์ž‘์—….

๊ฒฐ๊ณผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ํฌ๊ธฐ๊ฐ€ ์ค„์—ˆ์Šต๋‹ˆ๋‹ค. Swift 4์—์„œ ์–ด์…ˆ๋ธ”๋œ ํ”„๋กœ๊ทธ๋žจ์˜ ํฌ๊ธฐ๊ฐ€ Objective-C ๋ฒ„์ „๋ณด๋‹ค 2.3๋ฐฐ ์ปธ๋‹ค๋ฉด ์ด์ œ ๊ฐ„๊ฒฉ์€ 1.5๋ฐฐ๋กœ ์ค„์—ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ๋Š” ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ๊ฐ€์ ธ์˜จ ์ˆ˜๋งŽ์€ ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ์ง„์ ์ธ ๊ฑด๋ฌผ ๋ฐ ๊ฑด๋ฌผ ์ฝ”๋“œ์˜ ์†๋„๋ฅผ ํฌ๊ฒŒ ๋†’์˜€์Šต๋‹ˆ๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ์˜ ์ง„๋‹จ ๋„๊ตฌ์™€ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์˜ ํ’ˆ์งˆ์ด ํ–ฅ์ƒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” ์ด๋ฏธ์ง€์™€ ๊ฐ™์ด ๋Ÿฐํƒ€์ž„์— ํ•„์š”ํ•œ ์ถ”๊ฐ€ ๋ฆฌ์†Œ์Šค๋ฅผ ํŒจํ‚ค์ง€์— ํฌํ•จํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” ์ง€์—ญํ™”๋ฅผ ์œ„ํ•œ ๊ตฌ์„ฑ ์š”์†Œ ์ง€์›๊ณผ ์กฐ๊ฑด๋ถ€ ์ข…์†์„ฑ์„ ์ •์˜ํ•˜๋Š” ๊ธฐ๋Šฅ๋„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

Swift ์–ธ์–ด๋Š” C ๋ฐ Objective-C ์–ธ์–ด์˜ ๊ฐ€์žฅ ์ข‹์€ ์š”์†Œ๋ฅผ ์ƒ์†ํ•˜๊ณ  Objective-C์™€ ํ˜ธํ™˜๋˜๋Š” ๊ฐ์ฒด ๋ชจ๋ธ์„ ์ œ๊ณตํ•˜์ง€๋งŒ(Swift ์ฝ”๋“œ๋Š” C ๋ฐ Objective-C ์ฝ”๋“œ์™€ ํ˜ผํ•ฉ๋  ์ˆ˜ ์žˆ์Œ) ์ž๋™ ์‚ฌ์šฉ ๋ฐฉ์‹์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น๊ณผ ๋ณ€์ˆ˜ ๋ฐ ๋ฐฐ์—ด์˜ โ€‹โ€‹์˜ค๋ฒ„ํ”Œ๋กœ ์ œ์–ด๋ฅผ ํ†ตํ•ด ์ฝ”๋“œ์˜ ์‹ ๋ขฐ์„ฑ๊ณผ ๋ณด์•ˆ์ด ํฌ๊ฒŒ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค. Swift๋Š” ๋˜ํ•œ ํด๋กœ์ €, ์ผ๋ฐ˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ, ๋žŒ๋‹ค ํ‘œํ˜„์‹, ํŠœํ”Œ ๋ฐ ์‚ฌ์ „ ์œ ํ˜•, ๋น ๋ฅธ ์ปฌ๋ ‰์…˜ ์ž‘์—… ๋ฐ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์š”์†Œ์™€ ๊ฐ™์€ ๋งŽ์€ ์ตœ์‹  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ์ˆ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. Linux ๋ฒ„์ „์€ Objective-C ์ง€์›์ด ๋ถ€์กฑํ•œ ํ™˜๊ฒฝ์—์„œ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” Objective-C ๋Ÿฐํƒ€์ž„๊ณผ ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Swift ๊ตฌํ˜„์€ ๋ฌด๋ฃŒ LLVM ํ”„๋กœ์ ํŠธ์˜ ๊ธฐ์ˆ ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๊ณ ์„ฑ๋Šฅ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด Swift ํ”„๋กœ๊ทธ๋žจ์€ Apple ํ…Œ์ŠคํŠธ์—์„œ Objective-C ์ฝ”๋“œ๋ณด๋‹ค 30% ๋” ๋น ๋ฅด๊ฒŒ ์‹คํ–‰๋˜๋Š” ๊ธฐ๋ณธ ์ฝ”๋“œ๋กœ ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ ๋Œ€์‹  Swift๋Š” ๊ฐ์ฒด ์ฐธ์กฐ ๊ณ„์‚ฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŒจํ‚ค์ง€์—๋Š” ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์Šค์œ„ํ”„ํŠธ ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋Š” Swift ์–ธ์–ด์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํ•จ๊ป˜ ๋ชจ๋“ˆ ๋ฐ ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•˜๊ณ  ์ข…์†์„ฑ ๊ด€๋ฆฌ, ์ž๋™ ๋กœ๋”ฉ, ๊ตฌ์„ฑ ์š”์†Œ ๋นŒ๋“œ ๋ฐ ์—ฐ๊ฒฐ์„ ์œ„ํ•œ ๋„๊ตฌ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€