처음 iOS 시작했을 때 부터 면접 기본 질문이자 기초 개념이라고 들어왔는데 계속 두루뭉실하게 알고 있어서 정리하려고 한다.
최대한 간단하게,, 머리속에 남은 지식으로만 작성 시작!
앱 생명주기 Life Cycle 단어 그대로 앱의 처음 시작부터 끝날 때까지의 상태를 나타낸다.
Not Running > Inactive > Active > Background > Suspended
한국어로 다시 이야기 하면,
실행되지 않았을 때 > 비활성 상태 > 활성 상태 > 백그라운드 실행 > 멈춤 상태
끄읏 0.0

.
.
.
조금 더 들어가자면, 각 상태에 따라 앱이 할 수 있는 일은 다음과 같다.
Not Running
앱이 실행되지 않았거나, 시스템에 의해서 종료된 상태
앱이 메모리에 존재하지 않기에 어떠한 작업도 수행할 수 없다
Inative
앱이 화면에는 표시되지만 사용자와 상호작용할 수 없는 상태
ex. 전화수신, 긴급 알림 발송
일반적으로 짧은 시간 동안만 유지되며, Active 또는 Background 상태로 전환시에 거쳐간다
거의 아무 작업도 수행하지 않고, 주로 상태 전환을 준비하는데 사용된다
Active
앱이 화면에 표시되고 사용자와 상호작용할 수 있는 상태
대부분의 로직이 이 상태에서 진행된다
Background
사용자에게 앱이 보이지 않고 백그라운드에서 실행 중인 상태
ex. '음악' 앱을 나가도 음악이 나오는 것
일정한 작업만 수행 가능한 상태이며, iOS는 특정 작업만 허용한다.
대부분의 경우 일정 시간 내 작업을 완료 한 후 Suspended 상태로 전환한다.
Suspended
앱이 백그라운드에 있지만 실행되지 않는 상태
메모리만 차지하고 있는 경우로 필요시 시스템에 의해 종료될 수 있다.
새로운 작업을 수행할 수 없지만, 메모리에 유지되어 있으므로 빠르게 재개할 수 있다.
---
앱 상태주기와 뗄 수 없는 파일이 AppDelegate와 SceneDelegate인데,
그 둘의 특징과 차이점은 내일 정리해야겠다.
너무 진지하게 블로그 작성하려니까 꾸준히 안써지는 거 같아서,,
조금은 얕은 지식일 수 있지만 하나씩 공부하고 끄적여보면서 지식을 확장하고자 한다.
머든 꾸준히 하는게 힘들다 ㅠㅠ
'IOS 개발지식 > iOS' 카테고리의 다른 글
| [iOS] XCTest를 활용한 UnitTest (1) | 2024.11.13 |
|---|---|
| [iOS] RxSwift와 Combine (2) | 2024.11.11 |
| [iOS] 클린 아키텍처 (0) | 2024.11.10 |
| [iOS] AppDelegate와 SceneDelegate (2) | 2024.11.08 |