์์ํ๋ฉฐ
๋น์จ์นด๋์์ ์ธํด์ ํ๋ฉด์ ๋ด๊ฐ ์ง์ App์ ๊ฐ๋ฐํ๊ณ ์ถ๋ค๋ ์๊ฐ์ ์ฒ์์ผ๋ก ํ๊ฒ ๋์๋ค. ์ฌํ๊ป ๋จธ์ ๋ฌ๋, ๋ฐ์ดํฐ ๊ธฐ๋ฐ์ผ๋ก ๊ณต๋ถ๋ฅผ ํด์์ง๋ง, ์ด๋ฅผ ์ ์ฉํ ๋๋ง์ App์ ์ง์ ๊ฐ๋ฐํ๊ณ ์ถ์ด์ก๋ฌ๊น? ๋๋ Apple ๊ธฐ๊ธฐ๋ฅผ ์ ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์์๊ธฐ์ ์์ฐ์ค๋ฝ๊ฒ IOS Developer๋ก ๊ฟ์ ๊พธ๊ฒ ๋์๋ค. ๋ฐ๋ผ์ 2022.1.2 ์ํด ๋ถํฐ Swift๋ฅผ ๊ณต๋ถํด๋ณด๊ธฐ๋ก ๋ค์งํ๋ค.
์ iOS Develper?
๋๋ ์น๊ตฌ๋ค์๊ฒ ์๋ฌธ๋ ์ฑ๋ฑ์ด๋ค. ํธํ์ฑ์ด ํธํด์, ๊ทธ๋ฆฌ๊ณ ์ง๊ธ๊น์ง ๊พธ๋ ค๋์ ์ ํ ์ํ๊ณ๊ฐ ๋๋ฌด ์๊น์์.. ๋ฑ๋ฑ์ ์ด์ ๋ก ์ ํ ๊ธฐ๊ธฐ๋ง์ ๊ณ ์งํด์๋ค. ๋ฐ๋ผ์ ์์ฐ์ค๋ฝ๊ฒ ์๋๋ก์ด๋๋ณด๋ค๋, iOS ๊ฐ๋ฐ์๋ก์ ๊ฟ์ ๊พธ๊ฒ ๋์๋ค. ๊ทธ๋ฆฌ๊ณ ๋ ๋ค๋ฅธ ์ด์ ๊ฐ ์๋ค.
์ฒซ์งธ, ๋์ด๋๋ IT ์์ง๋์ด ์์ฅ ์์์, ์๋๋ก์ด๋๋ ์น ๊ฐ๋ฐ์์ ์๋ ์ ์ ์ผ๋ก ๋๊ณ ์์ง๋ง, iOS ๊ฐ๋ฐ์๋ ์๋์ ์ผ๋ก ์๊ฐ ๋ถ์กฑํ๋ค๊ณ ํ๋ค. ๋ฐ๋ผ์ ๋๋ง์ ๊ฒฝ์๋ ฅ์ ๊ธฐ๋ฅด๊ณ ์ iOS ๊ฐ๋ฐ์๋ก ๋ฐฉํฅ์ ์ ํ๋ค.
๋์งธ, ๋ง๊ทธ๋๋ก ๋ด๊ฐ ์ํ๋ ์ฑ์ ๋ด ํธ๋ํฐ์ ๋ฃ์ด๋ณด๋ฉด์ ์ฑ์ ๋ง๋ค์ด๋ณด๊ณ ์ถ๋ค. ์ฌ๋ฌ๊ฐ์ง ์ธํด, ํ๋ก์ ํธ๋ฅผ ์งํํ๋ฉด์ ์ฑ๊ฐ๋ฐ์ ์ฐธ์ฌํ์ ๋, ํญ์ ์๋๋ก์ด๋ ๊ธฐ์ค์ผ๋ก ๊ฐ๋ฐ์ ์งํํ๊ธฐ์ ํญ์ ์๋ธ ํฐ์ ๋ค๊ณ ๋ค๋๋ฉฐ ํ ์คํธ๋ฅผ ์งํํ๋ค. ๋ด ํธ๋ํฐ์ ์ต์ ํ๋ ์ฑ์ด ์๋๊ณ ๊ณต๊ธฐ๊ณ๋ฅผ ์ํ ์ฑ์ ๋ง๋ ๋ค๋ ๊ทธ ๊ณตํํจ..?๋๋ฌธ์ ๋ณ ์ฌ๋ฏธ๋ฅผ ๋๋ผ์ง ๋ชปํ๋ค. ์ง์ง ๋ด๊ฐ ์ํ๋ ์ฑ์ ๊ฐ๋ฐํ๊ณ ์ถ๋ค!!
iOS ๊ฐ๋ฐ์๊ฐ ๋๊ธฐ ์ํด์๋ SIWFT์ธ์ด๋ฅผ ๊ณต๋ถํด์ผํ๋ค. ์ค๋ 1์2์ผ,, ๋๋์ด ์์ํ๋ค!
SWIFT๋?
https://developer.apple.com/kr/swift/
์ค์ํํธ๋ ์ ํ์ iOS์ macOS๋ฅผ ์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก, 2014๋ 6์ 2์ผ ์ ํ ์ธ๊ณ ๊ฐ๋ฐ์ ํ์์์ ์ฒ์ ์๊ฐ๋์๋ค๊ณ ํ๋ค. ์ค์ํํธ ์ธ์ด์ ๋ฌธ๋ฒ์ ํ์ด์ฌ ์ธ์ด๋ผ๊ณ ๋ฐํ ์ด์ฐฝ๊ธฐ์ ์๋ ค ์ก์๋ค. ๊ธฐ์กด์ ์ ํ ์ด์์ฒด์ ์ฉ ์ธ์ด์ธ Objective-C์ ํจ๊ป ๊ณต์กดํ ๋ชฉ์ ์ผ๋ก ๋ง๋ค์ด์ก๋ค๊ณ ํ๋ค!
SWIFT์ธ์ด์ ํน์ง
์ ํ์์ ์ค์ํํธ ์ธ์ด๋ ๋ค์๊ณผ ๊ฐ์ด ์ค๋ช ํ๋ค.
A Powerful open language that lets everyone build amazing apps
(๋๊ตฌ๋ ๋๋ผ์ด ์ฑ์ ๋ง๋ค ์ ์๊ฒ ํด์ฃผ๋ ๊ฐ๋ ฅํ ๊ฐ๋ฐฉํ ์ธ์ด)
๋๋ถ์ด ์ ํ์ด ๋ฐํํ ์๋ฃ์ ์ํด์ ์ค์ํํธ์ ํน์ง์ ์๋ 3๊ฐ์ง๋ก ์์ฝ์ ๋ฆฌ ํ ์ ์๋ค.
1. ์์ ์ค์ฌ ์ค๊ณ SAFE
- ์ค์ํํธ๋ ์์ ํ ํ๋ก๊ทธ๋๋ฐ์ ์งํฅํ๊ธฐ ๋๋ฌธ์ ํ๋ก๊ทธ๋๋จธ๊ฐ ์ ์ง๋ฅผ ์ ์๋ ์ค์๋ฅผ ์๊ฒฉํ ๋ฌธ๋ฒ์ ํตํ์ฌ ๋ฒ๊ทธ๋ฅผ ๋น์ฐ์ ๋ฐฉ์งํ๊ณ ์ ๋ ธ๋ ฅํ๋ค.
- ๋๋ก๋ ๊ฐ์ ์ ์ด๋ผ๊ณ ๋๊ปด์ง ์ ์์ง๋ง ๋ฌธ๋ฒ์ ์ ์ฌ๋ ์ค์๋ฅผ ์ค์ด๋๋ฐ ๋์์ด ๋๋ค.
- ์ต์ ๋์ด๋ผ๋ ๊ธฐ๋ฅ์ ๋น๋กฏํ์ฌ Guard๊ตฌ๋ฌธ, ์ค๋ฅ์ฒ๋ฆฌ, ๊ฐ๋ ฅํ ํ์ ํต์ ๋ฑ์ ํตํด ์์ ํ ํ๋ก๊ทธ๋๋ฐ์ ๊ตฌํํ๋ค.
- ๋ถ์์ ํ ์ฝ๋์ ์ ์ฒด ํด๋์ค๋ฅผ ์ ๊ฑฐํจ์ผ๋ก์จ, ๋ณ์๋ ์ฌ์ฉ์ ์ ํญ์ ์ด๊ธฐํํ๊ณ , ๋ฐฐ์ด ๋ฐ ์ ์์ ๋ํ ์ค๋ฒํ๋ก์ฐ ๊ฒ์ฌ๊ฐ ์ํ๋๊ณ , ๋ฉ๋ชจ๋ฆฌ๋ ์๋์ผ๋ก ๊ด๋ฆฌ๋๋ค.
2. ๋น ๋ฅด๊ณ ๊ฐ๋ ฅํ ์ฑ๋ฅ FAST
- ์ค์ํํธ๋ C์ธ์ด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ํ C++, Objective-C์ ๊ฐ์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋์ฒดํ๋ ค๋ ๋ชฉ์ ์ผ๋ก ๊ฐ๋ฐ๋์๋ค.
- ์ ์ด์ ์ฑ๋ฅ์ ์ต๋ํํ C์ธ์ด์ ๊ฐ๊น๊ฒ ๋ง์ถ๋ ค๊ณ ํ๋ค.
- ์คํ์๋์ ์ต์ ํ ๋ฟ๋ง์๋๋ผ ์ปดํ์ผ๋ฌ์ ์ง์๋ ๊ฐ๋์ ํตํด ๋ ๋น ๋ฅธ ์ปดํ์ผ ์ฑ๋ฅ์ ๊ตฌํํ๋ค.
3. ๋ ๋์ ํํ์ฑ EXPRESSIVE
- ์ค์ํํธ๋ ๊ทธ๊ฐ ๋ฐ์ ๋ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ฅผ ๋ชจ๋ ์ฐธ๊ณ ํ์ฌ ์ฌ์ฉํ๊ธฐ ํธํ๊ณ ๋ณด๊ธฐ ์ข์ ๋ฌธ๋ฒ์ ๊ตฌ์ฌํ๋ ค ๋ ธ๋ ฅํ๋ค.
- ๊ฐ๋ฐ์๋ค์ด ์ํ๋ ํ๋์ ์ด๊ณ ์ธ๋ จ๋ ๋ฌธ๋ฒ์ ๊ตฌํํ๋ค. (์ธ๋ จ๋ ํํ๋ ํ๋์ ํน์ง์ผ๋ก ๊ผฝ๋๋ค)
- ์ค์ํํธ๋ ๋ค์ค ํ๋ก๊ทธ๋๋ฐ ํจ๋ฌ๋ค์์ ์ฑ์ฉํ ๋ค์ค ํจ๋ฌ๋ค์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ด๋ค.
- ๋ค์ค ํจ๋ฌ๋ค์ ์์๋ ํฌ๊ฒ 3๊ฐ์ง๊ฐ ์๋ค.
- ๋ช ๋ นํ ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ์๋ฃ ์ฒ๋ฆฌ๋ฅผ ์ํ์ ํจ์์ ๊ณ์ฐ์ผ๋ก ์ทจ๊ธํ๊ณ ์ํ์ ๊ฐ๋ณ ๋ฐ์ดํฐ๋ฅผ ๋ฉ๋ฆฌํ๋ ํ๋ก๊ทธ๋๋ฐ์ผ๋ก์ ๊ธฐ์กด ๋ช ๋ นํ, ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ด ํ๋ก๊ทธ๋จ์์ ๊ฐ์ด๋ ์ํ์ ๋ณํ๋ฅผ ์ค์์ ์ฌ๊ธฐ๋ ๊ฒ๊ณผ ๋ฌ๋ฆฌ ํจ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์์ํ๊ฒ ํจ์์ ์ ๋ฌ๋ ์ธ์ ๊ฐ๋ง ๊ฒฐ๊ณผ์ ์ํฅ์ ์ฃผ๊ณ ์ํ๊ฐ์ ๊ฐ์ง์ง ์๋๋ค. ๋ฐ๋ผ์ ๋ค์๊ณผ ๊ฐ์ ์ฅ์ ๋ค์ ๊ฐ์ง๋ค.
- ์ด๋ค ์ํฉ์์ ํ๋ก๊ทธ๋จ์ ์คํํ๋๋ผ๋ ์ผ์ ํ๊ฒ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ๋์ถํ ์ ์๋ค.
- ๊ฐ ๋ณํ๋ฅผ ๋ฉ๋ฆฌํ๋ฏ๋ก ํจ์ ํธ์ถ์ด ๊ฐ๊ฐ ์ํธ ๊ฐ์ ๋ฐฐํ์ ์ผ๋ก ์คํ๋๊ณ ๋ณ๋ ฌ์ฒ๋ฆฌ์ ์ ๋ฆฌํ๋ค.
- ๋๊ท๋ชจ ๋ณ๋ ฌ์ฒ๋ฆฌ, ๋ฉํฐ ์ฝ์ด์ ํ๊ฒฝ์์ ํจ์จ์ ์ธ ํ๋ก๊ทธ๋๋ฐ์ด ๊ฐ๋ฅํ๋ค.
- ํ๋กํ ์ฝ ์งํฅ ํ๋ก๊ทธ๋๋ฐ
- 2015๋
WWDC์์ Swift 2.0 ๋ฒ์ ์ ๋ฐํ์ ํจ๊ป Swift์ ํ๋กํ ์ฝ๊ณผ ์ต์คํ
์
์ด ์ถ๊ฐ๋์ด ํ๋กํ ์ฝ ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋์์ต๋๋ค. Swift๋ ๋๋ถ๋ถ์ ํ์
์ด ํด๋์ค(์ฐธ์กฐ ํ์
)๊ฐ ์๋ ๊ตฌ์กฐ์ฒด(๊ฐ ํ์
)๋ก ๊ตฌํ๋์ด ์์ต๋๋ค. ์ด ์์์ด ๋ถ๊ฐ๋ฅํ ๊ตฌ์กฐ์ฒด๋ก ๊ณตํต ๊ธฐ๋ฅ์ ๊ฐ์ง ์ ์๊ฒ ํ๋ ๋ฐฉ๋ฒ์ด ํ๋กํ ์ฝ๊ณผ ์ต์คํ
์
์
๋๋ค.
๊ธฐ์กด ํด๋์ค์์ ๊ตฌํํ ์ ์์๋ ์บก์ํ, ์ถ์ํ, ์ ๊ทผ ์ ์ด๋ฑ์ ๊ธฐ๋ฅ๋ค์ ๊ตฌ์กฐ์ฒด์ ์ด๊ฑฐํ์์ ๊ตฌํํ ์ ์๊ฒ๋์๊ณ ํด๋์ค์ ์ธ์คํด์ค๋ณด๋ค ๊ฐ ํ์ ์ ์ฌ์ฉํจ์ผ๋ก์ ๋ ๋์ ํจ์จ์ฑ๊ณผ ์ค๋ฅ ์ต์ํ, ์ฐธ์กฐ๋ก ๋ถํฐ ์์ ๋ก์, ๋ ๋์ ์ถ์ํ ๋ฉ์ปค๋์ฆ์ ์ถ๊ตฌํ๋ค๋ ๊ฒ์ ๋๋ค.
- 2015๋
WWDC์์ Swift 2.0 ๋ฒ์ ์ ๋ฐํ์ ํจ๊ป Swift์ ํ๋กํ ์ฝ๊ณผ ์ต์คํ
์
์ด ์ถ๊ฐ๋์ด ํ๋กํ ์ฝ ์งํฅ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๊ฐ ๋์์ต๋๋ค. Swift๋ ๋๋ถ๋ถ์ ํ์
์ด ํด๋์ค(์ฐธ์กฐ ํ์
)๊ฐ ์๋ ๊ตฌ์กฐ์ฒด(๊ฐ ํ์
)๋ก ๊ตฌํ๋์ด ์์ต๋๋ค. ์ด ์์์ด ๋ถ๊ฐ๋ฅํ ๊ตฌ์กฐ์ฒด๋ก ๊ณตํต ๊ธฐ๋ฅ์ ๊ฐ์ง ์ ์๊ฒ ํ๋ ๋ฐฉ๋ฒ์ด ํ๋กํ ์ฝ๊ณผ ์ต์คํ
์
์
๋๋ค.
๊ทธ ์ธ ๋ ๋ค๋ฅธ ํน์ง
1. ARC ( Automatic Reference Couting : ์๋ ์ฐธ์กฐ ํ์ ๊ณ์ฐ)
Swift๋ ARC๋ฅผ ์ง์ํ์ฌ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฝ๊ฒ ๊ด๋ฆฌ ํ ์ ์์ต๋๋ค. ARC๊ฐ ํด๋์ค ์ธ์คํด์ค๊ฐ ๋ ์ด์ ํ์ํ์ง ์์ ๋ ์ธ์คํด์ค๊ฐ ์ฌ์ฉํ๋ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ๋น์๋๋ค (๋ฉ๋ชจ๋ฆฌ๋ฅผ ์๋์ผ๋ก ๊ด๋ฆฌ). ์ด ARC๋ ๋ง๊ทธ๋๋ก ์ฐธ์กฐ ํ์ ์ธ ํด๋์ค์ ์ธ์คํด์ค์๋ง ์ ์ฉ๋๋ฉฐ ๊ฐ ํ์ ์ธ ๊ตฌ์กฐ์ฒด, ์ด๊ฑฐํ์ ํด๋น ๋์ง ์์ต๋๋ค.
2. REPL (Read-Eval-Pring-Loop : ๋ก๋ ์ฝ๋๋ฅผ ์คํ ๊ฐ๋ฅ)
๊ฐ๋จํ ์ฝ๋๋ฅผ ์ ๋ ฅํ์ฌ ๋ฐ๋ก๋ฐ๋ก ๊ฒฐ๊ณผ๋ฅผ ๋ณผ ์ ์๊ฒ ํด์ฃผ๋ ๊ธฐ๋ฅ์ด ์๋ค.
๋ง์น๋ฉฐ
์ด์ iOS๊ฐ๋ฐ์๋ก์์ ์ทจ์ ์ ์ํด ๊พธ์คํ Documents๋ฅผ ์ ๋ฆฌํ๊ณ , ์ฝ๋ฉ์ค๋ ฅ๋ ํค์ฐ๋ฉฐ, ๊ฐ๋ ์ ๊ณต๋ถํ๋ ์๊ฐ์ ๊ฐ์ง ๊ฒ ์ด๋ค. ๋ด ๋ชฉํ๋ 3์ ๋ง ๊น์ง ๋ชจ๋ ๊ธฐ๋ณธ๋ถ๋ฒ, ํด๋ก ์ฝ๋ฉ์ ์๋ฃํ๊ณ , 4์์๋ ๋ด ๊ฐ์ธ Toy PJT๋ฅผ ์งํํด๋ณด๋ ๊ฒ์ด ๋ชฉํ์ด๋ค! ๊ธฐ์ด๋ถํฐ ์ฐจ๊ทผ์ฐจ๊ทผ, ์ฑ์คํ๊ฒ ๊ณต๋ถํด๋ณด์.
1,2,3์ → SWIFT ์ธ์ด ์ตํ๊ธฐ, ํ๋ก์ ํธ ํด๋ก ์ฝ๋ฉ ์งํ
4,5์ → ๊ฐ์ธ Toy PJT ์งํ, ์ฑ ๋ฐฐํฌ ํด๋ณด๊ธฐ
6,7์ → ์ฝํ
๊ณต๋ถ์ ๋งค์งํ๊ณ IT๊ธฐ์
์ฌ๋ฆ์ธํด, ์ฑ์ฉ ์ค๋นํ๊ธฐ :) ํ์ดํ
!
'Swift > Swift BASIC' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ์กฐ๊ฑด๋ฌธ (if, switch ๊ตฌ๋ฌธ) (0) | 2022.01.14 |
---|---|
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ํจ์ ์ ์ (0) | 2022.01.12 |
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - Collection types (Array, Dictionary, Set) (0) | 2022.01.11 |
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ๋ฐ์ดํฐ ํ์ ์ข ๋ฅ (0) | 2022.01.11 |
[Swift] ๊ธฐ์ด ๋ฌธ๋ฒ - ์์์ ๋ณ์ ์ ์ธํ๊ธฐ (let, var ์ฐจ์ด์ ) (0) | 2022.01.11 |