본문 바로가기

IOS 개발지식/iOS

[iOS] 앱 생명주기(App Life Cycle)

 

 

처음 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