앱 생명주기 (App Lifecycle)

Unattached (= Not Running) : 앱을 실행 중이지 않은 상태.
Foreground Inactive : 앱을 실행했지만 사용자로부터 이벤트를 받을 수 없는 상태. 앱을 완전히 활성화하기 이전 단계.
Foregound Active : 앱을 실행했고 사용자로부터 이벤트를 받을 수 있는 상태. 가장 일반적인 앱을 사용하고 있는 상태.
Background : 앱을 실행한 뒤 백그라운드로 넘어간 상태. 홈버튼을 눌러 밖으로 나갔을 때의 상태. (메모리에는 계속 올라가있는 상태)
ex) 음악 앱이 홈 화면에서도 계속 재생하는 상태.
Suspend : 백그라운드 상태에서 앱이 특별한 작업을 필요로 하지 않을 경우 접어드는 상태. OS가 판단해서 Background → Suspend 상태로 변환.
ex) 게임 앱을 동시에 30개 켜면 (기기 메모리에 부담스러운 상황을 연출하면), 비교적 초반에 실행한 앱들은 백그라운드에서 Suspend 상태로 넘어가, 돌아갔을 때 앱이 재실행되는 경우가 있다.
ViewController 생명주기
