본문 바로가기

iOS와 그 외/Swift16

[Swift] actor도 final 키워드로 최적화 할 수 있을까? 흔히들 class에서 상속 구조가 없으면 swift optimizationTips에서 가이드하는 것처럼 아래와 같이 final 키워드를 명시하여 컴파일러가 최적화를 수행할 수 있도록 해준다. class 뿐만 아니라 메서드, 프로퍼티는 final 키워드를 통해 컴파일러가 최적화가 가능하다.final 키워드는 더 이상 얘는 overriden 되지않아.! 걍 바로 얘 쓰면 돼! 라고 알려주는 것과 같기 때문이다. 그렇다면 swift 5.5에 새롭게 등장한 actor는 어떨까? 그보다 먼저 actor가 뭔지부터 간략하게 끄적여보면actor는 class와 같은 reference type이다. class와 다른 점은 상속이 불가능하고, MT-safe를 기본적으로 보장한다.다른 타입처럼 initializer도 가질 .. 2024. 8. 24.
[Swift] 데이터모델링 Struct와 Class중 어떤 걸 써야할까요 +_+ ? 안녕하세요 로디입니다 🙂 오늘 커뮤니티에서 어떤 분이 Struct와 Class중에 데이터 모델을 어떤 타입으로 정의해야하는지,어떤 케이스에 따라 타입을 구분해서 사용하는지 물으시더라구요.Struct는 값 타입이구, Class는 참조 타입이기 때문에 참조 값을 공유할 필요가 없으면 Struct를 쓰는걸 권장함.! 이라고 말씀드리니그러면 Class로 모델을 정의하는 경우가 보통 언제 있는지 설명해달라고 하시는데,,, 어라라 +_+ 설명하려니깐 명확하게 구분지어 말씀을 못드리겠더라구요. 저도 헤매던 찰나에 다른 분이 공식문서 링크를 따악 공유해주셔서 저도 오늘 문서에서 적힌 내용을 정리해보려고 합니다.그러면 비교 하러가볼까요 ~~? (공식문서는 여기에서 확인할 수 있습니다!) 🤔  Struct와 Class.. 2024. 8. 4.
[Swift] class func vs static func 보호되어 있는 글 입니다. 2024. 7. 31.
[Swift] inout 매개변수 안녕하세요 로디입니다. 오늘은 Swift의 inout 키워드에 대해서 간단하게 정리하겠습니다. Swift에서, 함수의 매개변수(parameter)로 전달되는 "값 타입"은 기본적으로 상수(let)입니다.* 값 타입Swift의 값 타입은 구조체(struct)를 사용하여 표시합니다. 예를 들어 String, Int, Array, Dictionary 등. 그렇기에, 함수의 body 내부에서 매개변수로 전달받은 값을 바꾸는 것은 불가능합니다.아래와 같이 매개변수 값을 바꾸려고하면 컴파일러가 에러를 표시하죠. 그렇다면 함수 내부에서 매개변수의 값을 바꾸는 게 영영 불가능할까요?아뇨, 매개변수를 inout 키워드를 이용해 inout 매개변수로 정의하면 가능합니다. Swift의 인아웃 매개변수(In-Out Param.. 2024. 7. 19.
[Swift] Method Dispatch 란 보호되어 있는 글 입니다. 2024. 7. 15.
[Swift] LazySequence 보호되어 있는 글 입니다. 2024. 7. 8.
[Swift] 문자열 String 보호되어 있는 글 입니다. 2024. 7. 7.
[Swift] EnumeratedSequence https://developer.apple.com/documentation/swift/enumeratedsequence EnumeratedSequence | Apple Developer DocumentationAn enumeration of the elements of a sequence or collection.developer.apple.com 트리거가 된 코테 구문 let dic = friends.enumerated().reduce(into: [String: Int]()) { $0[$1.element] = $1.offset } Swift 공식문서에서는 EnumeratedSequence를 다음과 같이 정의한다. Sequece 또는 Collection의 Element 열거.@frozenstruct En.. 2024. 6. 25.
[Swift] Attribute - @unknown / @frozen ( for 열거형 ) 보호되어 있는 글 입니다. 2024. 1. 28.
[Swift] 메타타입(Metatype) 이란? 보호되어 있는 글 입니다. 2024. 1. 28.
[Swift] Attribute - @discardableResult 보호되어 있는 글 입니다. 2024. 1. 28.
[Swift] GCD와 친해지기 멀티 쓰레딩 (Multi threading)멀티 쓰레딩은 하나의 프로세스 내에서 이루어지던 작업을 다른 쓰레드에서 작업할 수 있도록 분산 처리할 수 있는 방법입니다.동시에 여러 작업을 수행할 수 있어 빠르게 작업을 수행할 수 있지만, 수행 순서를 보장할 수 없습니다  iOS 에서 멀티 쓰레딩을 구현하는 주요 방법은 아래와 같습니다. 1) GCD : 디스패치 큐를 사용하여 작업을 스케쥴링하고 병렬로 실행할 수 있습니다.2) Operation: 오퍼레이션 큐를 사용하여 Operation 객체를 관리합니다. GCD GCD 가 무엇이며 어떤 목적으로 사용되나요? GCD (Grand Central Dispatch) 는 macOS 및 iOS 에서 다중 스레드 및 병렬 프로그래밍을 간단하게 구현할 수 있도록 해주는 .. 2024. 1. 25.