DB없이 원하는 값을 앱에 Key-Value 형식으로 저장
Swift에서 함수는 일급 객체로, 함수를 다른 함수의 전달 인자로 사용하는 것이 가능하다.
Unicode Transformation Format유니코드 변환 형식 특정 코드를 사용해 문자나 이모티콘 등을 나타내는 국제 표준(약속) 문자표. 이 코드는 결과적으로 0과 1로 변환됨.
어떤 앱을 실행했다고 가정했을 때, 그 앱은 아이폰 메모리의 일부를 앱의 메모리로 사용할 것이다.그리고 그 프로젝트의 ViewController 내부에 myLabel이 있다면, 이들 각각은 해당 앱 메모리의 일부를 사용할 것이다. 즉 클래스 등의 인스턴스를 생성할 때마
메모리에는 코드(프로그램), 데이터, 힙, 스택의 4가지 영역이 존재한다.
ARC는 Automatic Reference Counting의 약자로, Swift에서 메모리를 관리하는 방법이다. Reference Counting이란 참조 숫자 카운팅으로 메모리를 관리한다.
강한 참조 사이클 강한 참조 사이클이란 객체(클래스 인스턴스)가 서로를 참조하는 경우를 말한다. 이 경우 변수의 참조에 nil을 할당해도 메모리가 해제되지 않는 메모리 누수 현상이 발생하게 된다.
Protocols 다른 클래스 및 구조체에 포함할 속성과 함수의 청사진을 만드는 방법. 일관성과 예측가능성이 있다는 장점이 있다. 프로토콜은 단순히 속성과 기능을 정의할 뿐이다. 그 자체로는 아무것도 하지 않고, 논리를 포함하지 않는다. 여기서 PersonStruc
weak(약한 참조)unowned(비소유 참조)약한 참조와 비소유 참조 모두 참조는 하되, 가리키는 인스턴스의 숫자(RC)를 올라가지 않게 하는 방법.
클로저에서는 weak와 unowned를 통해 강한 참조 사이클(Strong Reference Cycle) 문제를 해결한다. 캡처현상이란 클로저를 변수에 할당 혹은 클로저를 호출하는 순간, 지속적으로 외부 변수를 사용해야 하는 클로저가 자신이 참조하는 외부 변수를 캡처하
클로저 내부에서 외부 변수들을 캡처할 때 strong, weak, unowned 등의 참조 강도를 명시해 캡처해오는 방식으로, 클로저 내부에서 캡처현상으로 인한 강한 참조 사이클 문제 해결을 위해 사용한다.
인스턴스의 메모리 주소를 캡처한다는 의미 일반적으로 클로저는 외부에 따로 존재하는 경우보다 클래스 내부에 존재하는 경우가 더 많다.이 때 중요한 것은, 클로저 내에서 객체의 속성 및 메서드 접근 시 반드시 self키워드를 사용해야 한다는 것.
타입에 의존하지 않는 범용 코드 작성시 사용. 중복을 피하고 유연한 코드 작성이 가능.Swift는 강타입 언어로 변수 및 파라미터에 대한 타입을 지정해야 한다. 하지만 제네릭을 사용하면 하나의 함수로도 원하는 타입을 지정해 사용할 수 있다.
구조체나 클래스에서처럼 제네릭으로 프로토콜을 선언할 수는 없다. 시도하면 "프로토콜은 제네릭 파라미터를 허용하지 않는다"는 에러가 표시된다. 이 때에는 associatedtype 키워드를 사용하면 된다.
참조(Reference) 타입: 인스턴스 할당시 해당 인스턴스에 대한 참조 생성. 참조 타입은 메모리 주소를 통해 값을 공유하기 때문에, 여러 변수 또는 상수가 동일한 인스턴스를 참조할 수 있음
값(Value) 타입인스턴스 할당시 해당 값이 복사되어 새로운 인스턴스 생성. 즉 원본 인스턴스와 독립적으로 동작한다는 뜻.따라서 속성을 변경해도 원본에 영향을 주지 않음. 값을 공유하는 참조 타입인 클래스와 달리 독립적인 속성값 가짐.스택(Stack)영역에 저장스택은
객체 지향 프로그래밍에서 클래스(Class)또는 구조체(Struct)를 기반으로 생성된 실제 데이터클래스와 구조체설계도와 같은 역할.쉽게 말하면, 붕어빵을 찍어내는데 필요한 '붕어빵 틀'.