[1] 용어정리 (출처: 이펙티브 코틀린) 애플 문서(Sequence and Collection)에 'eager' 이라는 단어가 나오는 데 이것을 이해하기 위해 이펙티브 코틀린 책내용을 가져왔습니다! ✔️ eager order (step-by-step) - 요소 전체를 대상으로 연산을 차근차근 적용한다. - 각 단계에서 연산이 이루어져 새로운 컬렉션을 만들어낸다. ✔️ lazy order (element-by-element) - 요소 하나하나에 지정한 연산을 한꺼번에 적용한다. - 최종 연산이 이루어지기 전까지는 각 단계에서 연산이 일어나지 않는다. ==> 사전적 의미로 lazy = 게으른, eager = 열렬한(열심인) 이기 때문에 저 두단어가 같이 쓰이는 것 같아요! [ eager vs lazy ] ..
Swift Docs > Attribute 를 보면, Swift의 inline 관련 attribute 로 inlinable과 usableFromInline 가 있습니다. [1] inline 한정자란? 우선 이펙티브 코틀린 책 내용을 통해 inline 개념을 먼저 알아봅시다! inline 한정자의 역할은 컴파일 시점에 '함수를 호출하는 부분'을 '함수의 본문' 으로 대체하는 것입니다. 일반적인 함수를 호출하면 함수 분문으로 점프하고, 본문의 모든 문장을 호출한 뒤에 함수를 호출했던 위치로 다시 점프하는 과정을 거칩니다. 하지만 inline 한정자를 붙여 함수를 만드면, 이러한 점프가 일어나지 않습니다. # 장점 모든 함수는 inline 한정자를 붙이면 조금 더 빠르게 동작합니다. 함수 호출과 리턴을 위해 점..
Swift Docs > Advanced Operators > Operator Methods, Custom Operators 내용을 기반으로 하고 있습니다. [1] Operator Methods Class와 Structure은 existing operators 에 대해 그들 자신의 구현을 제공할 수 있습니다. 이것은 'existing operators 를 overloading 한다' 라고 말할 수 있습니다. existing operators 목록은 Operator Declarations 문서에서 볼 수 있습니다. 하지만 모든 operator을 overload 할 수 있는 것은 아닙니다. 1️⃣ default assignment operator (=) 2️⃣ ternary conditional operato..
Swift Docs의 - Advanced Operators > Result Builders - Attributes > resultBuilder 를 기반으로 하는 내용입니다. [1] Result Builder 란? A result builder is a type you define that adds syntax for creating nested data, like a list or tree, in a natural, declarative way. A result builder is a type that builds a nested data structure step by step. result builder 는 선언적인 방식 (step by step으로 코드를 작성할 수 있는 방식) 으로 nested d..
10진수가 2진수로 어떻게 표현되는 지 확인하고 싶을 때 유용한 String 이니셜라이저가 있습니다. init(_:radix:uppercase:) 입니다. radix 기본 값이 10인데 2~36 까지 원하는 값을 넣어주며 사용할 수 있습니다. 저는 2진수로 변환하고 싶어서 radix를 2로 설정해주고 사용하겠습니다. ➕ 참고로 String뿐만아니라 Int도 radix를 받을 수 있는 이니셜라이저를 가지고 있습니다. (참고: init(_:radix:)) # Positive 4를 이진수로 출력해볼까요? 8-bit unsigned integer 타입인 UInt8을 사용해주었습니다. let positiveValue: UInt8 = 4 print(String(positiveValue, radix: 2)) // 1..
Swift Docs의 Implicitly Unwrapped Optionals 와 Unowned References and Implicitly Unwrapped Optional Properties 에 나오는 내용을 기반으로 하고 있습니다. [1] Implicitly Unwrapped Optional 이란? '암묵적으로(암시적으로) 언래핑한 옵셔널' 이라는 용어그대로 옵셔널이지만 언래핑하지 않고 사용할 수 있는 옵셔널을 말합니다. Optional을 만들 때 question mark(물음표)를 사용했다면 (ex. String?) Implicitly Unwrapped Optional을 만들 때는 exclamation point(느낌표) 를 사용해주면 됩니다. (ex. String!) 아래의 예제는 optiona..
Swift Docs > Opaque Types 에 나오는 내용입니다! Shape 라는 프로토콜이 있다고 해봅시다! protocol Shape { func draw() -> String } Triangle, Square처럼 이 프로토콜을 컨펌하는 타입을 만들 수 있습니다. struct Triangle: Shape { var size: Int func draw() -> String { var result: [String] = [] for length in 1...size { result.append(String(repeating: "*", count: length)) } return result.joined(separator: "\n") } } let triangle = Triangle(size: 3) pr..
Swift Docs > Protocol > Protocol Composition 을 읽다가 새로 알게된 내용! protocol composition 은 one class type 을 포함할 수 있다고 합니다 😲 이는 required superclass를 명시할 때, 사용할 수 있습니다. In addition to its list of protocols, a protocol composition can also contain one class type, which you can use to specify a required superclass. protocol Named { var name: String { get } } class Location { var latitude: Double var longi..
Swift Docs의 Initialization 과 Extensions을 읽으며 알게 된 내용이다. Swift의 Structure은 자동으로 default initializer와 memberwise initializer를 가지게 된다. 다만 custom initializer를 따로 정의하지 않았을 때만!! 예제를 통해 살펴보자. struct Size { var width = 0.0, height = 0.0 } struct Point { var x = 0.0, y = 0.0 } struct Rect { var origin = Point() var size = Size() } let defaultRect = Rect() let memberwiseRect = Rect(origin: Point(x: 2.0, y..
[DI] DI Container, IOC Container 개념과 예제 에서 간단하게 Property Wrapper 를 사용했었는데요, Swift Docs > Properties > Property Wrappers 에서 더 자세한 내용들을 알게 되어서 정리합니다 ✏️ # Property Wrapper 전제조건 Property Wrapper 는 Swift 5.1 에 추가되었고 local stored variable 에만 사용가능합니다 (global variable 또는 computed variable 에서 사용불가) # Property Wrapper 정의하기 Property Wrapper 를 정의하려면 wrappedValue property 를 정의한 structure, enumeration, class ..
- Total
- Today
- Yesterday
- SerializerMethodField
- Flutter 로딩
- Watch App for iOS App vs Watch App
- github actions
- 장고 Custom Management Command
- 플러터 싱글톤
- Flutter getter setter
- 장고 URL querystring
- cocoapod
- Dart Factory
- ribs
- Django Heroku Scheduler
- Flutter Clipboard
- flutter 앱 출시
- flutter build mode
- DRF APIException
- Django Firebase Cloud Messaging
- drf custom error
- flutter dynamic link
- Flutter Spacer
- Django FCM
- 구글 Geocoding API
- METAL
- 플러터 얼럿
- Flutter Text Gradient
- Python Type Hint
- flutter deep link
- Sketch 누끼
- PencilKit
- ipad multitasking
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |