본문 바로가기

iOS24

[iOS] URLSession URLSession이란 ? 앱과 서버간의 데이터를 주고받기 위해서는 HTTP 프로토콜을 이용해서 데이터를 주고 받아야합니다. URLSession이란 앱에서 서버와 통신하기 위해 애플이 제공하는 API로 HTTP를 포함한 몇가지 프로토콜을 지원하고, 인증 / 쿠키 관리 / 캐시 관리 등을 지원합니다. 즉, iOS 앱에서 네트워킹을 하기 위해 필요한 API입니다. URLSession 사용 순서 Configuration 결정 Session 생성 Request에 사용할 url 설정 Task 결정 및 작성 URLSessionConfiguration URLSession을 생성하기 위해 필요한 요소입니다. Configuration을 생성할 때는 URLSession 정책에 따라 Default, Ephemeral, Ba.. 2022. 9. 13.
[iOS] strong / weak / unowned / 순환 참조 strong (강한 참조) 인스턴스의 주소값이 변수에 할당될 때, RC가 증가하면 strong(강한 참조)입니다. default값이 strong이므로 지금까지 우리는 자연스럽게 인스턴스를 생성하고 사용하던 것이 전부 strong이었던 것입니다. 이러한 strong에도 문제점이 있는데 그것이 바로 순환 참조입니다. 순환 참조 순환 참조가 발생할 경우, 영구적으로 메모리가 해제되지 않을 수 있습니다. 예시로 순환 참조의 경우에 대해 알아봅시다. class Student { var name: String var teacher: Teacher? init(name: String) { self.name = name } } class Teacher { var name: String var student: Studen.. 2022. 9. 8.
[iOS] ARC (Automatic Reference Counting) ARC란 ? ARC는 클래스 인스턴스가 더 이상 필요하지 않을 때 메모리를 자동으로 해제합니다. 즉, 힙(Heap)에 할당된 인스턴스의 메모리를 알아서 관리해줍니다. 참조타입(Reference)과 힙(Heap) 인스턴스, 클로저 등의 참조 타입은 자동으로 힙에 할당됩니다. 예를 들어, ImClass라는 클래스가 있고, student1이라는 인스턴스를 생성해봅시다. class ImClass { var name: String? init(name: String?) { self.name = name } } var student1 = ImClass(name: "0inn") var student2 = student1 그러면 스택영역에는 student1(주소값)가 할당되고, 힙에는 실제 ImClass의 인스턴스(na.. 2022. 9. 8.
[Swift] Class vs. Struct vs. Enum Class와 Struct의 공통점 값 저장할 프로퍼티 선언 가능 함수적 기능을 하는 메서드 선언 가능 생성자 사용해 초기 상태 설정 가능 extension 사용해 기능 확장 가능 protocol 채택해 기능 설정 가능 Class와 Struct의 차이점 Class 참조 타입 (객체를 가리키고 있는 메모리 주소값만 복사) heap memory 영역에 할당 (속도 느림) ARC로 메모리 관리 같은 클래스 인스턴스를 여러 개의 변수에 할당한 뒤 값을 변경시키면 할당한 모든 변수에 영향을 준다. 상속 가능 deinit을 사용해 클래스 인스턴스 메모리 할당 해제 가능 Struct 값 타입 (value copy가 발생) stack memory 영역에 할당 (속도 빠름) 상속 불가능 (protocol은 가능) 구조체 .. 2022. 9. 6.