Swift๋Š” Apple Inc.์—์„œ ๊ฐœ๋ฐœํ•œ ๊ฐ•๋ ฅํ•˜๊ณ  ํ‘œํ˜„๋ ฅ์ด ํ’๋ถ€ํ•˜๋ฉฐ ๋‹ค์žฌ๋‹ค๋Šฅํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ, 2014๋…„ WWDC(World Wide Developers Conference)์—์„œ ์†Œ๊ฐœ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Swift๋Š” ์ฃผ๋กœ iOS, macOS, watchOS ๋ฐ tvOS ํ”Œ๋žซํผ์šฉ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“œ๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•˜๊ณ  ๊น”๋”ํ•œ ๊ตฌ๋ฌธ์„ ๊ฐ–์ถ˜ Swift๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ์ž๋Š” ์ฝ๊ธฐ ์‰ฝ๊ณ  ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ณ ์„ฑ๋Šฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Swift๋Š” ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ๋ฐฐ์šธ ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋˜์—ˆ์œผ๋ฉฐ ์ˆ™๋ จ๋œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ ํ•„์š”ํ•œ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ๋„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์˜คํ”ˆ ์†Œ์Šค ์–ธ์–ด์ธ Swift๋Š” AppMasterno-code ํ”Œ๋žซํผ์„ ํฌํ•จํ•˜์—ฌ ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋„๋ฉ”์ธ์— ๊ฑธ์ณ ๊ฐœ๋ฐœ์ž๋“ค์ด ๋น ๋ฅด๊ฒŒ ์ฑ„ํƒํ•˜๊ณ  ๋„๋ฆฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

Swift๋Š” ์œ ํ˜• ์•ˆ์ „์„ฑ, ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๋ฐ ๋ณด๋‹ค ๊ฐ„๊ฒฐํ•œ ๊ตฌ๋ฌธ๊ณผ ๊ฐ™์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜์—ฌ ์ด์ „ ๋ฒ„์ „์ธ Objective-C์˜ ๋‹จ์ ์„ ๊ฐœ์„ ํ•ฉ๋‹ˆ๋‹ค. Swift์˜ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๋ชจ๋ธ์ธ ARC(Automatic Reference Counting)๋Š” ์ˆ˜๋™ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ์˜ ํ•„์š”์„ฑ์„ ์ œ๊ฑฐํ•˜์—ฌ ๋ฉ”๋ชจ๋ฆฌ ๋ˆ„์ˆ˜ ๋ฐœ์ƒ ์œ„ํ—˜์„ ํฌ๊ฒŒ ์ค„์ด๊ณ  ์ „๋ฐ˜์ ์ธ ํ”„๋กœ๊ทธ๋žจ ์•ˆ์ •์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋˜ํ•œ Swift์˜ ์„ฑ๋Šฅ์€ C++ ๋ฐ Java์™€ ๊ฐ™์€ ์–ธ์–ด์™€ ๋™๋“ฑํ•˜๊ฑฐ๋‚˜ ๋•Œ๋กœ๋Š” ๋Šฅ๊ฐ€ํ•˜๋ฏ€๋กœ ๊ณ ์„ฑ๋Šฅ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ํƒ์›”ํ•œ ์„ ํƒ์ž…๋‹ˆ๋‹ค.

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

AppMasterno-code ํ”Œ๋žซํผ๊ณผ Swift์˜ ํ˜ธํ™˜์„ฑ์€ ์ค‘์š”ํ•œ ์žฅ์  ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. AppMaster ์‚ฌ์šฉํ•˜๋ฉด ๊ณ ๊ฐ์€ iOS ๊ฐœ๋ฐœ์šฉ Swift ๊ธฐ๋ฐ˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์šฉ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์•„๋‹ˆ๋”๋ผ๋„ ์ตœ์ฒจ๋‹จ ๊ธฐ๋Šฅ์„ ๊ฐ–์ถ˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์†์‰ฝ๊ฒŒ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. AppMaster Swift๋ฅผ ํ”Œ๋žซํผ์— ํ†ตํ•ฉํ•จ์œผ๋กœ์จ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ, ๊ณ ์„ฑ๋Šฅ ๋ฐ ์†์‰ฌ์šด ์œ ์ง€ ๊ด€๋ฆฌ ํŠน์„ฑ์„ ๊ฐ–์ถ˜ ์•ฑ์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ๋„๋ก ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

Swift์—๋Š” ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์™€ ์ฐจ๋ณ„ํ™”๋˜๋Š” ๋ช‡ ๊ฐ€์ง€ ํ•„์ˆ˜ ๊ธฐ๋Šฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ์œ ํ˜• ์•ˆ์ „์„ฑ: Swift์—๋Š” ์ปดํŒŒ์ผ ํƒ€์ž„์— ์˜ค๋ฅ˜์™€ ๋ถˆ์ผ์น˜๋ฅผ ํฌ์ฐฉํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋˜๋Š” ๊ฐ•๋ ฅํ•œ ์ •์  ์œ ํ˜• ์‹œ์Šคํ…œ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋” ์˜ˆ์ธก ๊ฐ€๋Šฅํ•˜๊ณ  ์•ˆ์ „ํ•œ ์ฝ”๋“œ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ์˜ต์…˜๊ณผ ์ œ๋„ค๋ฆญ์„ ์‚ฌ์šฉํ•˜์—ฌ null ์•ˆ์ „ํ•˜๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  2. ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ: Swift๋Š” 'throws', 'try', 'catch' ๋ฐ 'defer' ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์˜ค๋ฅ˜๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ๊น”๋”ํ•˜๊ณ  ํ‘œํ˜„๋ ฅ ์žˆ๋Š” ๊ตฌ๋ฌธ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋” ์‰ฝ๊ฒŒ ๋‚ด๊ฒฐํ•จ์„ฑ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ , ์˜ˆ์™ธ๋ฅผ ํฌ์ฐฉํ•˜๊ณ , ์‚ฌ์šฉ์ž์—๊ฒŒ ๋ช…ํ™•ํ•œ ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ: Swift๋Š” ์ผ๊ธ‰ ํ•จ์ˆ˜, ํด๋กœ์ €, ๋งต, ํ•„ํ„ฐ, ์ถ•์†Œ ๋“ฑ์„ ํฌํ•จํ•œ ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋Š” ๋ถˆ๋ณ€์„ฑ์„ ์ด‰์ง„ํ•˜๊ณ  ๋ถ€์ž‘์šฉ์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋”์šฑ ํ‘œํ˜„์ ์ด๊ณ  ๊ฐ„๊ฒฐํ•˜๋ฉฐ ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  4. ํ”„๋กœํ† ์ฝœ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ: Swift๋Š” ํด๋ž˜์Šค ์ƒ์†์—๋งŒ ์˜์กดํ•˜๋Š” ๋Œ€์‹  ํ”„๋กœํ† ์ฝœ ๋ฐ ํ”„๋กœํ† ์ฝœ ํ™•์žฅ์˜ ์‚ฌ์šฉ์„ ์ด‰์ง„ํ•˜์—ฌ ๋ณด๋‹ค ์œ ์—ฐํ•˜๊ณ  ๋ชจ๋“ˆํ™”๋œ ๊ฐ์ฒด ์ง€ํ–ฅ ์ฝ”๋“œ ๊ตฌ์กฐ๋ฅผ ์ด‰์ง„ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋กœํ† ์ฝœ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์€ ๊ธด๋ฐ€ํ•œ ๊ฒฐํ•ฉ ๋ฐ ์ทจ์•ฝํ•œ ๊ธฐ๋ณธ ํด๋ž˜์Šค ๋ฌธ์ œ์™€ ๊ฐ™์€ ์ƒ์†๊ณผ ๊ด€๋ จ๋œ ์ผ๋ฐ˜์ ์ธ ํ•จ์ •์„ ๋ฐฉ์ง€ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค.

Swift์˜ ๊ด‘๋ฒ”์œ„ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€ ๋ฐ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํฌํŠธํด๋ฆฌ์˜ค๋Š” iOS์šฉ ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ์„ ๋„˜์–ด ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. ์ด์ œ Swift Server๋ฅผ ์‚ฌ์šฉํ•œ ์„œ๋ฒ„์ธก ๊ฐœ๋ฐœ, ์Šคํฌ๋ฆฝํŒ…, ์‹ฌ์ง€์–ด Swift for TensorFlow๋ฅผ ์‚ฌ์šฉํ•œ ๊ธฐ๊ณ„ ํ•™์Šต๊ณผ ๊ฐ™์€ ๋‹ค์–‘ํ•œ ๋ถ„์•ผ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์ ์œผ๋กœ Swift๋Š” iOS ์•ฑ ๊ฐœ๋ฐœ์— ํ•„์ˆ˜์ ์ธ ๊ธฐ์ˆ ์ด์ž AppMasterno-code ํ”Œ๋žซํผ์„ ์œ„ํ•œ ๊ท€์ค‘ํ•œ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๊น”๋”ํ•œ ๊ตฌ๋ฌธ, ๋›ฐ์–ด๋‚œ ์„ฑ๋Šฅ ๋ฐ ๊ณ ๊ธ‰ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด Apple ์ƒํƒœ๊ณ„๋ฅผ ์œ„ํ•œ ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ๊ณ ํ’ˆ์งˆ ์•ฑ์„ ๋งŒ๋“œ๋Š” ๋ฐ ํƒ์›”ํ•œ ์„ ํƒ์ด ๋ฉ๋‹ˆ๋‹ค. AppMaster ์‚ฌ์šฉ์ž๋Š” Swift์˜ ๊ธฐ๋Šฅ์„ ํ™œ์šฉํ•˜์—ฌ ํ’๋ถ€ํ•œ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๊ณ  ๋Œ€์ƒ ๊ณ ๊ฐ์˜ ๋‹ค์–‘ํ•œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.