반응형

Swift 18

8. [Swift] App’s Life Cycle(앱 생명주기)

개요 지난 포스팅에는 뷰의 생명주기에 대해 공부 했었는데 이번에는 App의 생명주기에 대해 공부해보고자 한다. 앱의 생명주기(App’s Life Cycle)이란 App의 실행/종료 및 App이 Foreground/Background 상태에 있을 때 시스템이 발생시키는 이벤트에 의해 App의 상태가 전환되는 일련의 과정을 말한다. ✓ Foreground : 앱이 화면에 올라와 있는 상태 ✓ Background : 앱이 화면상에서 보여지지 않는 상태 앱 상태 앱의 상태는 총 5가지로 구분된다. 1. Not Running 앱이 실행되지 않았거나, 완전히 종료되어 동작하지 않는 상태 2. Inactive(Foreground) 앱이 실행되면서 foreground에 진입하지만, 어떠한 이벤트도 받지 않는 상태이다...

Swift 2022.08.17

7.[Swift] View Life Cycle(UIKit, SwiftUI)

7-1. 개요 View Life Cycle이란 말그대로 뷰의 생명주기라는 뜻인데 뷰가 호출돼서 메모리에 적재되었다가, 뷰가 메모리에서 해제될 때 까지의 과정을 생명주기라고 한다. Swift의 UI 프레임워크인 UIKit과 Swift UI에는 각각 다른 방식의 생명주기를 통해 관리를 하는데 오늘은 이 2가지 프레임워크의 생명주기를 공부하고자 한다. 7-2. UIKit View Life Cycle -loadView 화면의 띄울 View를 만드는 메서드로 View를 만들고 메모리에 올리는 역할을 한다. 일반적으로 사용자는 이 메서드를 직접 호출하면 안된다고 개발 문서에는 나와있다. -viewDidLoad loadView를 통해 메모리에 성공적으로 로드가 되면 호출되는 함수이다. 화면이 처음 만들어질 때 한 번..

Swift 2022.08.09

6. Swift 프로퍼티의 종류

6-1. 개요 Swift에서 프로퍼티는 클래스, 구조체, 열거형 등에서 선언하는 상수/변수를 말한다. 다른 언어에서는 멤버라고도 하는데 Swift에서 프로퍼티는 총 5가지가 존재한다. 저장프로퍼티(Stored Properties) 지연 저장 프로퍼티(Lazy Stored Properties) 연산 프로퍼티(Computed Properties) 프로퍼티 감시자(Properties Observers) 타입 프로퍼티(Type Properties) 6-2. 저장 프로퍼티(Stored Properties) 저장 프로퍼티는 가장 기본적인 프로퍼티로 클래스 또는 구조체의 인스턴스와 연관된 값을 저장하는 프로퍼티이다. let이나 var 키워드를 통해 상수나 변수로 선언할 수 있다. 옵셔널 타입이 아니라면 기본값이 있거..

Swift 2022.08.03

5. iOS 강한참조(strong), 약한 참조(weak), 미소유 참조(unowned

5-1. 개요 저번 포스팅에서는 순환참조가 왜 일어나는지 포스팅을 했었는데 이번에는 순환참조가 일어나지 않게 할려면 어떻게 해야하는지에 대해 포스팅할 예정이다. Swift에서 Reference Type을 선언할 때 변수인지 상수인지를 결정하는 let과 var이란 키워드가 있는건 모두가 알고 있지만 이 키워드 앞에도 어떻게 참조할 것인지에 대해 정의해주는 키워드가 존재한다. 바로 strong과 weak와 unowned이다. 총 3가지인데 오늘은 참조 키워드에 대해 포스팅할 예정이다. 5-2. Strong(강한 참조) 개요에서 총 3개의 키워드가 있다고 했지만 swift에 strong이라는 키워드는 없다. 즉, 아무 키워드도 사용하지 않으면 강한 참조로 인식한다는 이야기이다. 강한 참조로 Reference ..

Swift 2022.07.28

4. iOS GC와 ARC의 차이점, 순환참조

4-1. 개요 iOS 메모리 관리 기법에 ARC가 있다면 타 언어에서는 GC(Garbage Collector)가 있다. 거의 비슷한 방식으로 동작하지만 둘의 차이점은 엄연히 존재한다. 오늘은 이 차이점에 대해 공부하고 순한 참조가 무엇이고 어떤 식으로 발생하는지 알아볼 예정이다. https://daesiker.tistory.com/104 4-2. GC(Garbage Collection) GC방식은 프로그램이 실행 중일 때 Garbage Collector라는 것이 동적으로 감시를 하고 있다가, 더 이상 사용할 필요가 없다고 여겨지는 인스턴스를 메모리에서 해제시키는 방식이다. ARC랑 비슷하지만 여기에는 몇가지 차이점이 있다. GC 참조 계산 시점 런 타임 프로그램을 실행하는 동안 주기적으로 검사하여 사용하..

Swift 2022.07.19

3. iOS 메모리 관리(ARC, MRC)

1. 개요 iOS의 메모리 영역 중 힙영역을 관리하는 방법은 2가지가 있다. ARC와 MRC란 기법이 있는데 Objective-C에서는 프로젝트 설정을 통해 MRC나 ARC 중 선택하여 사용할 수 있고 Swift에서는 ARC만 사용한다. 이번 포스팅에서는 이 2가지 메모리 관리 기법에 대해 알아볼려 한다. 1-1. ARC(Auto Reference Counting) ARC를 알아보기 전에 ARC가 어떤 메모리 영역을 관리하는 지 알아야한다. 바로 힙영역을 관리하는데 힙영역은 참조타입의 데이터를 관리하는 영역이다. 즉 클래스나 클로져를 메모리에 할당, 해제할 때 ARC를 사용한다 참조타입과 값타입 확인하기 ARC는 Auto Reference Counting의 약자로 힙영역에 할당돼있는 데이터를 참조하는 지..

Swift 2022.07.12

2. iOS 값타입(Value Type)과 참조타입(Reference Type)

2-1. 개요 타입은 데이터를 전달하는 방식에 따라 값타입(Value Type)과 참조타입(Reference Type)으로 나뉜다. 값 타입(Value Type) Struct Enum Tuple 참조 타입(Reference Type) Class Closure 대표적인 값타입으로는 구조체, 열거형, 튜플 등이 있고 참조타입은 클래스나 함수 등이 있다. 여기서 Struct와 Class를 이용해서 메모리에 어떻게 할당되고 해제되는지 알아볼 예정이다. 2-2. Class -Source Code class Human { var age:Int var name:String init(_ age: Int, _ name: String) { self.age = age self.name = name print("\(name)..

Swift 2022.07.05

1.iOS 메모리 구조

1. 개요 xCode를 통해 프로젝트를 만들어 시뮬레이터나 실제기기를 통해 실행을 시키면 해당 운영체제(OS)는 메모리(RAM)에 이 프로그램을 위한 공간을 할당해 준다. 총 4가지의 공간으로 나뉘어져 있는데 코드영역, 데이터 영역, 힙 영역, 스택 영역이 존재한다. 각 영역이 어떤 특징을 가지고 있는지 알아보자 ✱ 컴파일 타임(Compiletime) : 우리가 만든 소스코드가 기계어 코드로 변환되어 실행 가능한 프로그램이 되는 과정 ✱ 런 타임(Runtime) : 사용자에 의해 실행되어 지며, 응용프로그램이 동작되어지는 시간 1-1. 코드 영역 코드 영역은 프로그램의 소스코드가 기계어(Binary) 형태로 저장되는 영역이다. 컴파일 타임에 결정되고, 중간에 코드가 바뀌지 않도록 읽기전용(Read-Onl..

Swift 2022.06.28
반응형