GPT는 블로그 글도 써준다

iOS 앱 생명주기

JAKE5113 2024. 9. 12. 16:09

iOS 앱의 생명주기(Lifecycle)는 앱이 실행되는 동안 발생하는 다양한 상태 전환을 관리하는 과정입니다. iOS에서는 앱이 실행되거나 종료되는 순간뿐만 아니라 백그라운드에서 실행 중일 때나 일시 정지 상태에서도 다양한 생명주기 메서드가 호출됩니다.

iOS 앱 생명주기의 주요 상태

  1. Not Running: 앱이 실행되지 않았거나, 시스템에서 종료된 상태.
  2. Inactive: 앱이 포그라운드에 있지만, 이벤트를 처리하지 않는 상태. 예를 들어, 전화가 왔을 때.
  3. Active: 앱이 포그라운드에서 실행 중이며, 이벤트를 처리하는 상태.
  4. Background: 앱이 백그라운드에서 실행 중인 상태.
  5. Suspended: 앱이 백그라운드에서 멈춰 있는 상태로, 메모리 부족 시 시스템에 의해 종료될 수 있음.

앱 생명주기 메서드 (AppDelegate)

iOS 앱의 상태 변화에 따라 AppDelegate 클래스에서 제공하는 다양한 생명주기 메서드가 호출됩니다. 각 메서드는 앱의 상태 변화에 맞춰 실행됩니다.

  1. application(_:didFinishLaunchingWithOptions:)
    • 앱이 처음 실행될 때 호출됩니다.
    • 앱이 실행된 후 설정, 초기화 작업을 여기서 처리할 수 있습니다.
    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // 앱이 실행되었을 때 초기 설정을 여기서 처리
        return true
    }
  2. applicationDidBecomeActive(_:)
    • 앱이 활성화(Active) 상태에 들어갈 때 호출됩니다.
    • 앱이 포그라운드에 들어오고, 사용자와 상호작용이 가능해진 시점입니다.
    func applicationDidBecomeActive(_ application: UIApplication) {
        // 앱이 활성화되었을 때의 처리
    }
  3. applicationWillResignActive(_:)
    • 앱이 비활성화(Inactive) 상태로 전환될 때 호출됩니다.
    • 예를 들어, 전화가 오거나, 홈 버튼을 눌러 앱을 최소화할 때 호출됩니다.
    func applicationWillResignActive(_ application: UIApplication) {
        // 앱이 비활성화될 때 처리
    }
  4. applicationDidEnterBackground(_:)
    • 앱이 백그라운드(Background) 상태로 진입할 때 호출됩니다.
    • 데이터를 저장하거나, 작업을 정리할 수 있습니다.
    func applicationDidEnterBackground(_ application: UIApplication) {
        // 백그라운드로 전환될 때 처리
    }
  5. applicationWillEnterForeground(_:)
    • 앱이 백그라운드에서 포그라운드(Foreground)로 돌아올 때 호출됩니다.
    • 앱이 다시 활성화되기 전에 필요한 준비 작업을 할 수 있습니다.
    func applicationWillEnterForeground(_ application: UIApplication) {
        // 포그라운드로 돌아오기 전에 처리
    }
  6. applicationWillTerminate(_:)
    • 앱이 종료되기 직전에 호출됩니다.
    • 앱이 메모리 부족 또는 사용자의 명령에 의해 종료될 때 마지막으로 호출됩니다.
    func applicationWillTerminate(_ application: UIApplication) {
        // 앱이 종료되기 직전에 필요한 작업 처리
    }

ViewController 생명주기

ViewController의 생명주기는 각 뷰의 상태 변화에 따라 발생합니다.

  1. viewDidLoad()
    • 뷰가 처음 로드될 때 호출됩니다.
    • 뷰 초기화 작업을 처리합니다.
  2. viewWillAppear(_:)
    • 뷰가 화면에 나타나기 직전에 호출됩니다.
    • 매번 화면에 나타나기 직전에 호출되므로, 화면을 업데이트해야 할 작업이 있을 때 사용됩니다.
  3. viewDidAppear(_:)
    • 뷰가 화면에 나타난 후 호출됩니다.
    • 애니메이션 작업이나 화면이 완전히 보인 후 실행해야 하는 작업에 사용됩니다.
  4. viewWillDisappear(_:)
    • 뷰가 화면에서 사라지기 직전에 호출됩니다.
  5. viewDidDisappear(_:)
    • 뷰가 화면에서 사라진 후 호출됩니다.

iOS 생명주기 요약

  • AppDelegate는 앱 전체의 상태 변화를 관리하며, 앱의 시작부터 종료까지의 주요 이벤트를 처리합니다.
  • ViewController는 각 화면의 상태 변화를 관리하며, 뷰가 로드되거나 사라질 때 호출되는 생명주기 메서드를 통해 화면별로 필요한 작업을 처리합니다.
반응형