@main์ ํ๋ก๊ทธ๋จ ์คํ ์์ ์ ์ง์ ์ ์ผ๋ก ํ์ ์ ์ง์ ํ๊ธฐ ์ํ Swift ์ธ์ด์ ๊ธฐ๋ฅ์ด๋ค.
์ฌ์ฉ์๋ ํ ๋ ๋ฒจ์ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋์ @main๋จ์ผ ์ ํ์ ์์ฑ์ ์ฌ์ฉํ ์ ์๊ณ , ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ํ๋ ์์ํฌ๋ ํ๋กํ ์ฝ์ด๋ ํด๋์ค ์์์ ํตํด ๋ง์ถคํ ์ง์ ์ ๋์์ ์ ๊ณตํ ์ ์๋ค.
** AppDelegate์์ ๋ณผ ์ ์๋ค.
@main vs @UIApplicationMain
1. ๊ตฌ์กฐ์ฒด์์ @main ๋์ @UIApplicationMain๋ฅผ ์ด๋ค๋ฉด class ์ ์ธ์๋ง ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค๋ ์ค๋ฅ๊ฐ ๋ฐ์!
2. @UIApplicationMain ๋์ @main์ ์ฌ์ฉํจ์ผ๋ก ํ์ ๊ธฐ๋ฐ์ ์ค์ํํธ ์ฝ๋์์ ์ด์์ ์ธ ์ง์ ์ ์ ์๋ ค์ฃผ๋ฉฐ main() ํจ์๋ ์ผ๋ฐ ์ ์ ๋ฉ์๋์ด๋ฏ๋ก ํ๋กํ ์ฝ์์ ํ์ฅ ๋ฉ์๋ ๋๋ ๊ธฐ๋ณธ ํด๋์ค๋ก ์ ๊ณต ํ ์ ์๋ค. -> ์์ ๋กญ๊ฒ Entry Point ์ง์ ๊ฐ๋ฅ!
3. ํด๋์ค๋ ๊ตฌ์กฐ์ฒด์ @main์ด ๋ช ์๋ ๊ฒฝ์ฐ๋ผ๋ฉด static func main() ๋ฉ์๋๊ฐ ์ค์ ์ง์ ์ ์ด ๋๋ค! -> ์์ ๋กญ๊ฒ Entry Point ์ง์ ๊ฐ๋ฅ!
4. @main, @UIApplicationMain, ๋ฐ @NSApplicationMain๋ ์ปดํ์ผ๋ฌ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ง์ ์ ์ ํฉ์ฑํ๊ณ "main.swift" ํ์ผ์ด ํ์ ์๋๋ก ํ๋ ์์ฑ!
์ฐธ๊ณ