Swift์ ๋ํด์ ์์๋ณด์!
Swift ์ธ์ด๋ ์ ํ์ด ๊ฐ๋ฐํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค.
iOS, macOS, watchOS, TV OS ๋ฑ
์ ํ ์ํ๊ณ์์ ์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์๋ค.
iOS ์ฑ ๊ฐ๋ฐ์ ์ํด์ ๋ฐ๋์ ์์์ผ ํ๋ ๊ฒ์ด ๋ฐ๋ก '์ค์ํํธ(Swift)' ์ธ์ด์ด๋ค.
Objective-C๋ณด๋ค ๊ฐ๊ฒฐํ๊ณ , ํจ์จ์ ์ธ ์ฝ๋ ์์ฑ์ด ๊ฐ๋ฅํ๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๊ฐ์ํํ์ฌ
๊ฐ๋ฐ์๋ค์ด ๋ ์ฝ๊ฒ ๊ฐ๋ฐํ ์ ์๋๋ก ๋์์ ์ฃผ๊ณ ์๋ค.
Swift ์ธ์ด ํน์ง
Swift๋ ๋ค์ํ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ค.
Objective-C๋ณด๋ค ์ฝ๊ฒ ๋ฐฐ์ธ ์ ์์ผ๋ฉฐ, ๋น ๋ฅธ ๊ฐ๋ฐ์ด ๊ฐ๋ฅํ๋ค.
๋ฌด์๋ณด๋ค ์ ํ์์ ์ ๊ณตํ๋
๋ค์ํ ํ๋ ์์ํฌ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ค๊ณผ์ ์ฐ๋์ฑ์ด ๋ฐ์ด๋์
๋์ฑ ์์ ์ ์ธ ์ดํ๋ฆฌ์ผ์ด์ ์ ๊ฐ๋ฐํ ์ ์๋ค.
Swift ์ธ์ด์ ์ฅ์
1. ๊ฐ๋ ์ฑ
swift๋ ์ฒด๊ณ์ ์ด๊ณ ๊ฐ๊ฒฐํ ๋ฌธ๋ฒ์ด ํน์ง์ด๋ค.
๊ทธ๋์ ์ฝ๋์ ๊ฐ๋ ์ฑ์ด ๋ฐ์ด๋๋ค.
ํจ์๋ ๋ณ์๋ช ์ ๋ช ํํ ์๋ฏธ๋ฅผ ๋ถ์ฌํ ์ ์์ด์
์ฝ๋๋ฅผ ์ฝ๊ณ ์ดํดํ๊ธฐ ์ฝ๋ค.
๋ฐ๋ผ์ ๊ฐ๋ฐ์๋ค์ด ๋์ฑ ๋น ๋ฅธ ๊ฐ๋ฐ๊ณผ ์ ์ง๋ณด์๋ฅผ ๊ฐ๋ฅํ๊ฒ ํ์ฌ,
๋ณด๋ค ํจ์จ์ ์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋๋ก ๋์์ ์ค๋ค.
2. ์์ ์ฑ
์ ํ์ Swift ์ธ์ด๋ฅผ ๊ฐ๋ฐํ๋ฉด์
์์ ์ฑ์ ๋งค์ฐ ํ์ํ ์ญํ ์ ๋ถ์ฌํ๋ค.
์ด์ ๋ฐ๋ผ ๋ณ์๋ฅผ ์ ์ธํ ๋,
์ด๊ธฐ๊ฐ์ ์ง์ ํ๊ฑฐ๋ ์ต์ ๋ ํ์ ์ผ๋ก ์ ์ธํด์ผ ํ๋ค.
์ด๊ฒ ์ ์ฅ์ ์ด๋?๐ค
์ด๊ธฐ๊ฐ์ ์ง์ ํ๋ฉด ๋ณ์๊ฐ ์ฌ์ฉ๋๊ธฐ ์ ์
๋ฏธ๋ฆฌ ์ ์๋ ๊ฐ์ผ๋ก ์ด๊ธฐํ๋๋ฏ๋ก
๋ฐํ์ ์์ ๋ถํ์ํ ์์ธ ์ํฉ์ ๋ฐฉ์งํ ์ ์๋ค.
๋ํ,
๋ณ์๋ฅผ ์ต์ ๋ ํ์ ์ผ๋ก ์ ์ธํ๋ฉด
๊ฐ์ด ์๋ ์ํฉ์ ๋ฏธ๋ฆฌ ์ฒ๋ฆฌํ ์ ์์ด ๋ฐํ์ ์๋ฌ๋ฅผ ์ค์ผ ์ ์๋ค.
3. ์ฑ๋ฅ
Swift๋ ์ต์ ํ๋ ์ปดํ์ผ๋ฌ๋ฅผ ์ฌ์ฉํ์ฌ
๊ณ ์ฑ๋ฅ ์ฝ๋๋ฅผ ์์ฑํ๋ค.
๊ทธ๋์ ๊ฐ๋ฐ์๋ ๋น ๋ฅธ ์คํ ์๋์ ๋ ๋์ ์ฑ๋ฅ์ ๊ฒฝํํ ์ ์๋ค.
LLVM์ ๊ธฐ๋ฐ์ผ๋ก ํ์ฌ ์คํ ์๋๊ฐ ๋น ๋ฅด๋ฉฐ,
์ต์ ํ๋์จ์ด์ ํน์ฑ์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํ์ฌ
ํจ์จ์ ์ธ ํ๋ก๊ทธ๋จ ์คํ์ ๊ฐ๋ฅํ๊ฒ ํ๋ค.
์ด๋ ๋์ฑ ๋์ ์์ฐ์ฑ๊ณผ ๊ฐ๋ฐ ํจ์จ์ฑ์ ์ ๊ณตํ๊ฒ ํ๋ค.
4. ์ค์๊ฐ ํผ๋๋ฐฑ
ํ๋ ์ด๊ทธ๋ผ์ด๋(Playground) ๊ธฐ๋ฅ์
Swift ์ธ์ด๋ฅผ ํ์ฉํ ๊ฐ๋ฐ์ ํฐ ์ฅ์ ์ค ํ๋์ด๋ค.
์ฝ๋๋ฅผ ์์ฑํ๋ฉด์ ๊ฒฐ๊ณผ๋ฅผ ์ฆ์ ํ์ธํ ์ ์์ด์
๊ฐ๋ฐ์๋ค์ ์ค์๊ฐ ํผ๋๋ฐฑ์ ๋ฐ์ผ๋ฉฐ ๋น ๋ฅด๊ฒ ์ฝ๋๋ฅผ ์์ ํ๊ณ ๊ฐ๋ฐํ ์ ์๋ค.
๋ํ, Playground ๊ธฐ๋ฅ์ ํตํด ์ฝ๋์ ์คํ ๊ฒฐ๊ณผ๋ฅผ ์๊ฐ์ ์ผ๋ก ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ์
๊ฐ๋ฐ์๋ค์ ์คํ๊ณผ ํ์ต์ ํ๊ฒฝ์ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ๊ณผ์ ์ ์ํํ๊ฒ ํ๋ค.
5. ์ด๋์ฑ
Swift๋ ๋ค์ํ ํ๋ซํผ์์ ์ฝ๊ฒ ํ์ฅํ ์ ์๋ ์ธ์ด์ด๋ค.
iOS, macOS, watchOS, TV OS ๋ฑ
์ ํ ํ๋ซํผ์์ ๋ชจ๋ ์ง์๋๋ ์ธ์ด์ด๋ฉฐ,
๋ ๋์๊ฐ ๋ฆฌ๋ ์ค, Windows ๋ฑ ๋ค์ํ ํ๋ซํผ์์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค.
์ด๋ฅผ ํตํด ๊ฐ๋ฐ์๋ค์ ๋์ฑ ์ ์ฐํ๊ฒ ๋ค์ํ ํ๋ซํผ์ ๋์ํ ์ ์๋ค.
๋ํ, Swift๋ Objective-C์ ํธํ๋์ด
๊ธฐ์กด ์ ํ ์ฑ์ ์ ๊ทธ๋ ์ด๋ํ๊ฑฐ๋
์๋ก์ด ํ๋ซํผ์ ์ฑ์ ๋ฐฐํฌํ๋ ๋ฐ ํฐ ์ฅ์ ์ ์ ๊ณตํ๋ค.
๊ทธ๋์ ๊ฐ๋ฐ์๋ค์ด ๊ธฐ์กด ์ฑ์ ์ฝ๋๋ฅผ ์ฌ์ฌ์ฉํ๊ณ ๊ฐํธํ๊ฒ ์ ๊ทธ๋ ์ด๋ํ ์ ์๋ค.
์ด๋ ๊ฐ๋ฐ์ ๋๋ ์๊ฐ๊ณผ ๋น์ฉ์ ์ค์ฌ์ฃผ๊ณ , ์ถ์ ์๊ฐ์ ๋จ์ถ์ํจ๋ค.
6. ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
Swift๋ ์ ํต์ ์ธ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ๋ฟ๋ง ์๋๋ผ
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ๋ชจ๋ ์ง์ํ๋ค.
์ด๋ ๊ฐ๋ฐ์๋ค์ด ์ฝ๋ ์์ฑ ์คํ์ผ์ ์ ํํ ์ ์๋ ๋ค์ํ ์ต์ ์ ์ ๊ณตํ๋ค.
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ํน์ง์ ํ์ฉํ์ฌ
๋ณด๋ค ๋ชจ๋ํ๋๊ณ ์ ์ง๋ณด์๊ฐ ์ฌ์ด ์ฝ๋๋ฅผ ์์ฑํ ์ ์๋ค.
ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ฅผ ์ ์ฐํ๊ฒ ํ ์ ์์ด
๋๊ท๋ชจ ์๋ฃ ์ฒ๋ฆฌ์ ๊ฐ์ ์์ ์์ ๋ฐ์ด๋ ์ฑ๋ฅ์ ๋ณด์ธ๋ค.
๊ทธ๋ฆฌ๊ณ ์ฌํ์ฉ์ฑ์ด ๋์ ์ฝ๋์ ์ค๋ณต์ ์ค์ด๊ณ ํ๋ก๊ทธ๋จ์ ์์ฐ์ฑ์ ๋์ธ๋ค.
7. ์คํ ์์ค
Swift๋ ์คํ ์์ค ํ๋ก์ ํธ๋ก ์งํํ๊ณ ์์ด
๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ํจ๊ป ๋ฐ์ ํ๋ ํฐ ์ฅ์ ์ ๊ฐ์ง๊ณ ์๋ค.
์ด ํ๋ก์ ํธ๋ ๋ง์ ๊ฐ๋ฐ์๋ค์ด ์ฐธ์ฌํ์ฌ
์ธ์ด์ ์งํ์ ๋ฐ์ ์ ์ด๋์ด ๋๊ฐ ์ ์๋ค.
์ด๋ฅผ ํตํด Swift๋ ๋์ฑ ๋น ๋ฅด๊ณ ๊ฐ๋ ฅํ ์ธ์ด๋ก ์ฑ์ฅํ ๊ฒ์ด๋ฉฐ,
๊ฐ๋ฐ์๋ค์ ๋์ฑ ๋ค์ํ ๊ธฐ๋ฅ๊ณผ ํจ์จ์ฑ์ ๊ฐ์ง ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์๊ฒ ๋๋ค.
'Swift' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] CoreData - ๊ณต์๋ฌธ์ ํํค์น๊ธฐ (4) | 2024.12.01 |
---|---|
[Swift] ํ๋กํผํฐ(Property) โก - ํ์ (0) | 2024.06.04 |
[Swift] AutomaticDimension (0) | 2024.06.03 |
[Swift] ํ๋กํผํฐ(Property) โ - ์ ์ฅ, ์ฐ์ฐ (0) | 2024.05.28 |
[Swift] for-in ๊ณผ forEach (0) | 2024.05.21 |