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์๋ ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ฐจ๋ณํ๋๋ ๋ช ๊ฐ์ง ํ์ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
- ์ ํ ์์ ์ฑ: Swift์๋ ์ปดํ์ผ ํ์์ ์ค๋ฅ์ ๋ถ์ผ์น๋ฅผ ํฌ์ฐฉํ๋ ๋ฐ ๋์์ด ๋๋ ๊ฐ๋ ฅํ ์ ์ ์ ํ ์์คํ ์ด ์์ต๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ๋ ์์ธก ๊ฐ๋ฅํ๊ณ ์์ ํ ์ฝ๋๊ฐ ์์ฑ๋ฉ๋๋ค. ๊ฐ๋ฐ์๋ ์ต์ ๊ณผ ์ ๋ค๋ฆญ์ ์ฌ์ฉํ์ฌ null ์์ ํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ์ฝ๋๋ฅผ ์์ฑํ ์๋ ์์ต๋๋ค.
- ์ค๋ฅ ์ฒ๋ฆฌ: Swift๋ 'throws', 'try', 'catch' ๋ฐ 'defer' ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ์ค๋ฅ๋ฅผ ์ฒ๋ฆฌํ๊ธฐ ์ํ ๊น๋ํ๊ณ ํํ๋ ฅ ์๋ ๊ตฌ๋ฌธ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ ์ฝ๊ฒ ๋ด๊ฒฐํจ์ฑ ์ฝ๋๋ฅผ ์์ฑํ๊ณ , ์์ธ๋ฅผ ํฌ์ฐฉํ๊ณ , ์ฌ์ฉ์์๊ฒ ๋ช ํํ ์ค๋ฅ ๋ฉ์์ง๋ฅผ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ: Swift๋ ์ผ๊ธ ํจ์, ํด๋ก์ , ๋งต, ํํฐ, ์ถ์ ๋ฑ์ ํฌํจํ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ ๋ถ๋ณ์ฑ์ ์ด์งํ๊ณ ๋ถ์์ฉ์ ๋ฐฉ์งํ๋ ๋์ฑ ํํ์ ์ด๊ณ ๊ฐ๊ฒฐํ๋ฉฐ ์ฝ๊ธฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ต๋๋ค.
- ํ๋กํ ์ฝ ์งํฅ ํ๋ก๊ทธ๋๋ฐ: Swift๋ ํด๋์ค ์์์๋ง ์์กดํ๋ ๋์ ํ๋กํ ์ฝ ๋ฐ ํ๋กํ ์ฝ ํ์ฅ์ ์ฌ์ฉ์ ์ด์งํ์ฌ ๋ณด๋ค ์ ์ฐํ๊ณ ๋ชจ๋ํ๋ ๊ฐ์ฒด ์งํฅ ์ฝ๋ ๊ตฌ์กฐ๋ฅผ ์ด์งํฉ๋๋ค. ํ๋กํ ์ฝ ์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๊ธด๋ฐํ ๊ฒฐํฉ ๋ฐ ์ทจ์ฝํ ๊ธฐ๋ณธ ํด๋์ค ๋ฌธ์ ์ ๊ฐ์ ์์๊ณผ ๊ด๋ จ๋ ์ผ๋ฐ์ ์ธ ํจ์ ์ ๋ฐฉ์งํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
Swift์ ๊ด๋ฒ์ํ ์ฌ์ฉ ์ฌ๋ก ๋ฐ ์ ํ๋ฆฌ์ผ์ด์ ํฌํธํด๋ฆฌ์ค๋ iOS์ฉ ๋ชจ๋ฐ์ผ ์ฑ ๊ฐ๋ฐ์ ๋์ด ํ์ฅ๋ฉ๋๋ค. ์ด์ Swift Server๋ฅผ ์ฌ์ฉํ ์๋ฒ์ธก ๊ฐ๋ฐ, ์คํฌ๋ฆฝํ , ์ฌ์ง์ด Swift for TensorFlow๋ฅผ ์ฌ์ฉํ ๊ธฐ๊ณ ํ์ต๊ณผ ๊ฐ์ ๋ค์ํ ๋ถ์ผ์์ ์ฌ์ฉ๋ฉ๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก Swift๋ iOS ์ฑ ๊ฐ๋ฐ์ ํ์์ ์ธ ๊ธฐ์ ์ด์ AppMasterno-code ํ๋ซํผ์ ์ํ ๊ท์คํ ์ธ์ด์ ๋๋ค. ๊น๋ํ ๊ตฌ๋ฌธ, ๋ฐ์ด๋ ์ฑ๋ฅ ๋ฐ ๊ณ ๊ธ ๊ธฐ๋ฅ์ ํตํด Apple ์ํ๊ณ๋ฅผ ์ํ ํ์ฅ ๊ฐ๋ฅํ ๊ณ ํ์ง ์ฑ์ ๋ง๋๋ ๋ฐ ํ์ํ ์ ํ์ด ๋ฉ๋๋ค. AppMaster ์ฌ์ฉ์๋ Swift์ ๊ธฐ๋ฅ์ ํ์ฉํ์ฌ ํ๋ถํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ณ ๋์ ๊ณ ๊ฐ์ ๋ค์ํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์์ต๋๋ค.