답변
Swift 컴파일러가 @Main 어노테이션을 통해서 AppDelegate에서 전역범위에 있는 코드들을 자동으로 인식하게 하고 실행시킴. → 프로그램을 실행하기 시작하기 위한 진입점의 역할을 함.
- Xcode project는 main.swift 내의 main() 함수를 실행하여 program이 시작되며 이는 @UIApplicationMain에 숨겨져 있습니다.
- Swift 5.3 부터는 program의 Entry point를 알려주는 속성이 @UIApplication에서 @main으로 변경되었습니다.
- @main을 class 혹은 struct에 명시하여 정적 메서드 main()의 구현을 통해 실제 진입점으로써 자유롭게 Entry point를 지정하여 프로그램의 시작점을 지정할 수 있으므로 @UIApplicationMain 보다 더 직관적인 Entry point를 제공합니다.
기존 Xcode 11 에서의 @UIApplication
Xcode 12 부터 적용된 @main 속성