Swift
Swift is a general-purpose programming language that's approachable for newcomers and powerful for experts.
It is fast, modern, safe, and a joy to write.
์ ๊ธ์ Swift.org์์ ๊ฐ์ฅ ๋จผ์ ๋ณผ ์ ์๋ Swift ์๊ฐ๊ธ์ด๋ค. Swift๋ ์ ๊ทผ์ฑ์ด ์ข๊ณ ๊ฐ๋ ฅํ ๋ฒ์ฉ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ฉฐ, ๋น ๋ฅด๋ฉฐ ํ๋์ ์ด๊ณ ์์ ํ์ฌ ์ฆ๊ฒ๊ฒ ํ๋ก๊ทธ๋๋ฐํ ์ ์๋ค๊ณ ํ๋ค.
interactive programming language
Swift์์ ๊ฐ์กฐ๋๋ ๋ค๋ฅธ ํ๋๋ ์ํธ์์ฉ์ด๋ค. ์ปดํ์ผ ์ธ์ด์์๋, ์ปดํ์ผ๋ฌ๊ฐ ์ต์ ํ๋์ด์์ด ๋ง์น ์คํฌ๋ฆฝํธ ์ธ์ด์ฒ๋ผ ์ค์๊ฐ์ผ๋ก ์ํธ์์ฉํ๋ฉฐ ํ๋ก๊ทธ๋๋ฐํ ์ ์๋ค.
์ปดํ์ผ ์ธ์ด | ์ปดํ์ผ์ ํตํด ์ฝ๋๋ฅผ ๊ธฐ๊ณ์ด๋ก ๋ณํํ์ฌ ํ์ผ์ ์์ฑํ๊ณ ์ด ํ์ผ์ ์คํ์ํจ๋ค. ์คํ ์๋๊ฐ ๋น ๋ฅด๊ณ , ์ค๋ฅ ๋ฐ์ ์ ์ปดํ์ผ ์๋ฌ๋ฅผ ๊ฑฐ์น๊ธฐ ๋๋ฌธ์ ์ค๋ฅ ํ์ธ์ด ์ฝ๋ค. (์: C, C++) |
์คํฌ๋ฆฝํธ ์ธ์ด: | ๋ณ๋์ ํ์ผ ์์ฑ์์ด ์ฝ๋ ์์ฑ ์ ๋ฐ๋ก ๊ธฐ๊ณ์ด๋ก ๋ฒ์ญ๋์ด ์คํํ๋ค. (์: Python, Javascript) |
์์ ํ๊ณ ๋น ๋ฅด๋ฉฐ, ํ๋ถํ๊ณ ๊ฐ๊ฒฐํ ์ฝ๋ ํํ์ ๊ฐ์ง Swift๋ ๊ฒฐ๊ณผ์ ์ผ๋ก ์์ฑํ๊ธฐ ์ฌ์ธ ๋ฟ๋ง ์๋๋ผ ์ฝ๊ณ ์ ์งํ๊ธฐ๋ ์ฝ๋ค.
๊ทธ๋์ Apple์ Swift๋ฅผ ๋ค์๊ณผ ๊ฐ์ด ์๊ฐํ๋ค.
The powerful programming language thatโs also easy to learn.
์์ฝ๊ฒ ํ์ตํ ์ ์๋ ๊ฐ๋ ฅํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด
General-Purpose Programming Language
๋ชจ๋ฐ์ผ, ๋ฐ์คํฌํ ์ฑ, ํด๋ผ์ฐ๋ ์๋น์ค, ์๋ฒ ๋ฑ ๋ชจ๋ ์์คํ
ํ๋ก๊ทธ๋๋ฐ์ ์ ํฉํ๋ค. ๋ํ iOS, macOS, watchOS, visionOS ๋ฑ ๋ชจ๋ Apple ํ๋ซํผ์ ์ง์ํ๋ค.
Modern
Swift๋ ๊ฐ๊ฒฐํ๋ฉด์๋ ํํ๋ ฅ์ด ํ๋ถํ ๊ตฌ๋ฌธ๊ณผ ํ๋์ ์ธ ๊ธฐ๋ฅ์ผ๋ก ์ฌ์ฉํ๊ธฐ ๊ฐํธํ๋ค.
- ์ธ๋ฏธ์ฝ๋ก ์๋ต, ํ์ ์ถ๋ก ๋ฑ์ ์ง์ํ์ฌ ๊ฐํธํ๊ณ ์ค์์๋ ๊ฐ๋ฐ์ ๋๋๋ค.
- ์๋์ผ๋ก ์ฐธ์กฐ๋ฅผ ๊ด๋ฆฌํ๋ ARC(Automatic Reference Counting)์ ํตํด ๊ฐ๋น์ง ์ปฌ๋ ์ ์์ ๋ฐ์ํ ์ ์๋ ์ค๋ฒํค๋ ์์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ์ต์ํ์ ํฌ๊ธฐ๋ก ์ ์ง๋๋๋ก ์๊ฒฉํ๊ฒ ๊ด๋ฆฌ๋๋ค.
- String์ ํ๊ตญ์ด๋ฅผ ํฌํจํ ๋ค๊ตญ์ด ๋ฐ ์ด๋ชจํฐ์ฝ ์ง์์ ์ํด ์ ๋์ฝ๋ ํ์ค์ ๋ฐ๋ฅด๋ฉฐ ์ฑ๋ฅ ์ต์ ํ๋ฅผ ํตํด UTF-8 ๊ธฐ๋ฐ์ ์ธ์ฝ๋ฉ์ ์ฌ์ฉํ๋ค.
- built-in๋ ํค์๋๋ฅผ ํตํด ๋์์ฑ ์ฝ๋๋ฅผ ์์ฑํ ์ ์์ด ๊ฐ๋ ์ฑ์ด ๋๊ณ ์ค๋ฅ ๋ฐ์ ๊ฐ๋ฅ์ฑ์ด ๋ฎ๋ค
- ๊ตฌ์กฐ์ฒด๋ฅผ ํตํด ๊ฐ๊ฒฐํ ํ๋์ ๊ตฌ๋ฌธ์ผ๋ก ์๋ก์ด ํ์ ์ ์ ์ธํ ์ ์๋ค. ์ธ์คํด์ค ์์ฑ์ ๊ธฐ๋ณธ ๊ฐ์ ์ ๊ณตํ๊ณ custom ์ด๋์ ๋ผ์ด์ ๋ฅผ ์ ์ํ ์ ์๋ค.
- extension์ด๋ผ๋ ํค์๋๋ก ํ์ฅ ํ๋ก๊ทธ๋จ์ ์ฌ์ฉํ์ฌ ๊ธฐ์กด ํ์ ์ ๊ธฐ๋ฅ์ฑ์ ๋ํ ์ ์๋ค. (์: JSON ์ธ์ฝ๋ฉ โข ๋์ฝ๋ฉ)
- ๊ฐ๋ ฅํ๊ณ ์ฌ์ฉ์ด ๊ฐํธํ ์ ๋ค๋ฆญ
- ํ๋กํ ์ฝ ํ์ฅ ํ๋ก๊ทธ๋จ์ผ๋ก ๋ณด๋ค ์ฌ์ด์ง ์ ๋ค๋ฆญ ์ฝ๋ ์์ฑ
- ์ผ๊ธํจ์(ํจ์๋ฅผ ํ์ ์ผ๋ก ์ฌ์ฉ ๊ฐ๋ฅ) ๋ฐ ๊ฐ๋ฒผ์ด ํด๋ก์ ๊ตฌ๋ฌธ
- range ๋๋ collection์์์ ๋น ๋ฅด๊ณ ๊ฐ๊ฒฐํ ๋ฐ๋ณต(iterate)
- ํํ ๋ฐ ๋ฉํฐํ ๋ฐํ ๊ฐ
- ๋ฉ์๋, ํ์ฅ ํ๋ก๊ทธ๋จ ๋ฐ ํ๋กํ ์ฝ์ ์ง์ํ๋ ๊ตฌ์กฐ
- ํ์ด๋ก๋(raw value)๋ฅผ ํฌํจํ ์ ์์ผ๋ฉฐ ํจํด ์ผ์น๋ฅผ ์ง์ํ๋ enum
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจํด(์: map, filter ๋ฑ)
- try, catch, throw๋ฅผ ์ฌ์ฉํ built-in ์ค๋ฅ ์ฒ๋ฆฌ
Safe
swift๋ ์์ ์ค์ฌ ์ค๊ณ๋ก ๋์ด ์๋ค. ์ ํํ ์ ์๋ ๋์๊ณผ ์คํ ์ ์ปดํ์ผ์ ํตํ ์ค๋ฅ ํ์ ์ผ๋ก ์์ ์ฑ์ ํ๋ณดํ๋ค
- ๋ณ์๋ ์ฌ์ฉ ์ ์ ํญ์ ์ด๊ธฐํ๋๊ณ , ๋ฐฐ์ด ๋ฐ ์ ์์ ๋ํ ์ค๋ฒํ๋ก์ฐ ๊ฒ์ฌ๊ฐ ์ํ๋๋ค.
- ARC๋ฅผ ํตํด ๋ฉ๋ชจ๋ฆฌ๋ ์๋์ผ๋ก ๊ด๋ฆฌ๋๋ค. ๊ทธ๋ฆฌ๊ณ ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ๋ ์ ์ ์ธ ์ ๊ทผ์ผ๋ก ํ๋ก๊ทธ๋๋ฐ ์ค์๊ฐ ๋ฐ์ํ์ง ์๋๋ก ๋ณดํธํ๋ค.
- ๋ณ์ var, ์์ let๊ณผ ๊ฐ์ด ์ธ๊ธ์์ ๊ฐ๋จํ ํค์๋๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ๋ฐ์์ ์๋๋ฅผ ์ฝ๊ฒ ์ ์ํ ์ ์๊ฒ ์ ๊ณตํ๋ค. ๊ฐ๊ฒฐํ์ง๋ง ํ์คํ ๊ตฌ๋ฌธ์ ์ค์๋ฅผ ์ค์ผ ์ ์๋ค.
- ๋ฐฐ์ด, ๋์ ๋๋ฆฌ ๋ฑ ๊ธฐ๋ณธ ํ์ ์ ๊ฐํ์ ์ผ๋ก ๋์ด์์ด, ์ฌ๋ณธ์ ๋ง๋ค์์ด๋ ๋ค๋ฅธ ๊ณณ์์ ์๋ณธ์ ์์ ํ ์ ์๋ค.
- swift ๊ฐ์ฒด๋ ์ ๋ nil์ด ๋ ์ ์๋ค. ์ปดํ์ผ๋ฌ๋ ์ปดํ์ผ์, ์ค๋ฅ๊ฐ ์๋ nil ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ฑฐ๋ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ค. ์ด๋ฅผ ํตํด ๊น๋ํ๊ณ ์์ ํ ์ฝ๋ ์์ฑ์ ํ ์ ์์ผ๋ฉฐ ์ฑ์์ ๋ฐํ์ ์ถฉ๋์ ๋ฐฉ์ง ํ ์ ์๋ค.
- ๋ก์ง ์ nil์ด ์ ํจํ๊ณ ์ ์ ํ ๊ฒฝ์ฐ, Swift์์๋ Optional์ ์ ๊ณตํด ์ฌ์ฉํ ๋ก ํ๋ค. ? ๊ตฌ๋ฌธ์ ํตํด ๊ฐ๋ฐ์๋ ์ปดํ์ผ๋ฌ์๊ฒ nil์ ํฌํจํ ๋์์ด ์์ ํ๊ฒ ์ฒ๋ฆฌ๋ ๊ฒ์์ ์๋ฆด ์ ์๋ค.
- ์ด๋ฌํ ์ต์ ๋์ ์ต์ ๋ ๋ฐ์ธ๋ฉ๊ณผ ์ต์ ๋ ์ฒด์ด๋์ ํตํด ์์ ํ๊ณ ํจ์จ์ ์ผ๋ก ์์ ํ ์ ์๋ค.
Fast
Swift๋ ์ต์ด ๊ฐ๋
์ค์ ์์ ๋ถํฐ ๋น ๋ฅด๊ฒ ๋์ํ๋๋ก ๋ง๋ค์ด์ก๋ค. Swift ์ฝ๋๋ ๊ณ ์ฑ๋ฅ LLVM ์ปดํ์ผ๋ฌ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ชจ๋ ํ๋์จ์ด๋ฅผ ์ต๋ํ ํ์ฉํ ์ ์๋๋ก ์ต์ ํ๋ ๊ธฐ๊ณ์ด ์ฝ๋๋ก ๋ณํ๋๋ค. ๋ํ ๊ตฌ๋ฌธ ๋ฐ ํ์ค ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋ฐ์ผ์์ ์๋ฒ๊น์ง ์ฌ์ฉ์ด ์ฝ๊ณ ์ต๊ณ ์ ์ฑ๋ฅ์ด ๋ฐํ๋๋๋ก ๋ง๋ค์ด์ก๋ค.
C, C++, Object-C์ ํ์์ธ์ด๋ก, ํ์
, ํ๋ฆ์ ์ด, ์ฐ์ฐ์์ ๊ฐ์ ๊ฐ์ฅ ๊ธฐ๋ณธ ๊ธฐ๋ฅ๋ถํฐ ํด๋์ค, ํ๋กํ ์ฝ, ์ ๋ค๋ฆญ๊ณผ ๊ฐ์ ๊ฐ์ฒด ์งํฅ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ฌ Cocoa ๋ฐ Cocoa Touch ๊ฐ๋ฐ์์๊ฒ ํ์ํ ์ฑ๋ฅ๊ณผ ํ์๋ฅผ ์ ๊ณตํ๋ค.
๋ฐฐ์์ ์ค๋ ์๊ฐ์ ์ฌ์ฉํ์ง ์์๋ c์ธ์ด ๊ธฐ๋ฐ ์ธ์ด์ ๋๋ฑํ ์์ธก๊ฐ๋ฅํ๋ฉฐ ์ผ๊ด์ฑ์๋ ์ํ์ ํ๋ค
Approachable
swift๋ ์ ๊ทผ์ฑ์ด ์ข๊ณ ๊ฐ๋ ฅํ๋ค. ์ฑ์ ๊ท๋ชจ์ ์๊ด์์ด ์ฌ์ฉํ ์ ์์ผ๋ฉฐ ํ์ฅ์ฑ์ด ์๋ค.
์ฒซ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ๋ฐฐ์ธ ์ ์๊ฒ ๊ฐ๋ฐ๋์์ผ๋ฉฐ ์คํ์์ค๋ก ์ ๊ณต๋์ด ๋ชจ๋ ์ฌ๋๋ค์ด ์ด์ฉํ๊ณ ๊ฐ๋ฐ์ ์ฐธ์ฌํ ์ ์๋ค.
Swift.org
Swift.org About
Apple Swfit
About Swift
'Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ Swift ] zip(_:_:) (1) | 2023.10.08 |
---|---|
[ Swift ] isCase | isLowercase | isUppercase (0) | 2023.10.04 |
[ Swift ] print(_:separator:terminator:) (0) | 2023.10.04 |
[ Swift ] ํ๋กํ ์ฝ ์งํฅ ํ๋ก๊ทธ๋๋ฐ (0) | 2023.09.24 |
[ Swift ] Serialization์ด๋? (0) | 2023.01.18 |