ARC (Automatic Reference Counting) 자동으로 메모리 관리해주는 방식으로 필요하지 않는 클래스 인스턴스 를 참조 카운팅을 통해 관리 해주는 기법 더 이상 필요하지 않는 클래스 인스턴스를 메모리에서 해제해준다. 강한 참조 참조의 기본은 강한참조로 별도의 식별자를 명시하지 않으면 강한 참조이다. class Person { var name: String var weight: Double init(name: String, weight: Double) { self.name = name self.weight = weight } deinit { print("\(name) 메모리 해제") } } var kk: Person? = Person(name: "kk", weight: 60) // RC:..
Method Dispatch 스위프트가 어떻게 해당 메소드를 실행할지 정하는 것 Direct, Table, Message Dispatch 3가지 방식이 있다. Direct Dispatch (Static) 컴파일 타임에 결정이 되며 가장 빠르고 밸류 타입 (구조체/ 열거형) 에 사용된다. 하지만 다형성을 활용하기가 어렵다. Table Dispatch (Dynamic) 런타임 타임에 결정이 되며 중간 속도로 클래스 / 프로토콜 에 사용된다. Message Dispatch 런타임 타임에 결정이 되며 , 가장 느리고 Objective-C 클래스 에서 사용된다. 성능 최적화를 위해 direct dispatch 사용 1. 오버라이드 될 필요 없는 요소들에는 final 키워드 사용 ex) final class 2. ..
Optional 값이 있을 수도 있고, 없을 수도 있는 경우를 포함하는 임시적 타입 값을 안전하게 꺼낼 수 있게 하여 런타임 오류를 피할 수 있다. 옵셔널은 타입 어노테이션에 ? 를 붙여 표기한다. var name: String? = "jmkim" print(name) // Optional("jmkim") 옵셔널을 추출하는 4가지 방법 1) 강제 추출 : 값이 있다는 것이 확실할 때 사용 var name: String? = "jmkim" print(name!) // jmkim 2) if 문으로 nil 이 아니라는 것 확인 후 해제 var name: String? = "jmkim" if name != nil { print(name!) // jmkim } 3) 옵셔널 바인딩 if let var name: S..
Codable 자신을 외부 표현(JSON) 으로 변환(Encode) 하거나 외부 표현(JSON) 으로부터 변환(Decode) 할 수 있는 타입으로 Encodable & Decodable 로 구성된 유니온 타입 프로토콜 Encoding Person 객체를 Codable 채택 후 JSON 으로 인코딩 struct Person: Codable { let name: String let age: Int } let a = Person(name: "kim", age: 19) do { let encoder = JSONEncoder() encoder.outputFormatting = .prettyPrinted let data = try encoder.encode(a) if let jsonString = String(da..
- Total
- Today
- Yesterday
- flask
- MYSQL
- ElasticSearch
- 도커
- docker
- 리눅스
- network
- 네트워크
- pytest
- ios
- WEB
- spark
- linux
- SWIFT
- 로그
- nginx
- logstash
- SQL
- BigData
- python
- 엘라스틱서치
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |