분류 전체보기42 [Swift] DispatchQueue의 qos 사용하기 GCD에서 global큐나 커스텀 큐를 사용할 때 qos(quality of service)를 사용해 작업의 중요도를 결정할 수 있습니다. 그렇기 때문에 작업의 우선순위를 결정하기 위해서는 qos의 우선순위가 어떻게 되는지 알고 어떤 때 사용하는지 구체적으로 생각해두고자 이번 글에서 이것저것 보면서 정리해두고자 합니다. 1. qos는 왜 사용하는가? 애플의 문서 Prioritize Work with Quality of Service Classes에 보면 qos를 왜 사용해야 하는지 잘 나와 있습니다. 빠르게 처리해야 하는 작업은 더 느리게 처리해도 되는 낮은 우선순위의 작업보다도 자원과 에너지를 더 많이 사용하게 됩니다. 따라서 한정된 자원과 에너지를 효율적으로 사용하기 위해서는 빠른 수행이 필요한 작업.. 2021. 11. 15. [UIKit] Storyboard 탈출기 (3편) - Then 라이브러리를 사용해보자 이번 글에서는 Swift에서 종종 쓰이는 오픈소스 라이브러리 Then 에 대해 간단히 이야기해보려 합니다. 이 시리즈에 Then 관련 내용을 넣을지 고민을 잠깐 했습니다. Then 라이브러리가 없으면 코드로 UI를 못 짜는 것도 아니기 때문에 꼭 알아야 하는 부분은 아닙니다. 그러나 코드로 UI를 짜면 관련된 속성을 계속 쓸 수밖에 없는데 Then 은 이걸 간편하게 쓰도록 도와주기 때문에 이번 시리즈에 포함시켰습니다. Then 라이브러리가 무엇인고? iOS 네임드 개발자이신 전수열님의 아주 유명한 오픈소스 라이브러리입니다. => Then 라이브러리 깃헙 바로가기 문서가 잘 되어있어 읽으면 어떤 점이 유용한지 한 눈에 아실 것이라고 생각합니다. 그래서 간단하게 이야기하자면 NSObject 의 subclas.. 2021. 11. 3. 삽입정렬(Insertion sort) 개념 이해하고 구현하기 정렬 시리즈를 다시 공부하면서 공부했던 내용을 간단히 블로그에 업로드해보려 합니다. 이번 글에서는 삽입정렬을 다루어 보도록 하겠습니다. 삽입정렬(Insertion sort)은 무엇인가? 삽입정렬은 간단히 말하자면 i 번째 요소를 정렬하기 위해 i-1번째부터 1번째까지 순차적으로 탐색하면서 자신에게 맞는 위치를 찾는 방식으로 정렬하는 알고리즘입니다. 두 번째 수부터 시작해 같은 작업을 반복하기 때문에 i번째 수를 삽입하고자 할 때는 첫 번째부터 i-1번째는 수가 정렬된 상태이므로 정렬된 상태에 i번째 수를 넣는 위치를 찾을 수 있는 것이죠. 삽입정렬을 구현하는 간단한 수도코드를 작성해보았습니다. for i in (2번째 요소부터 끝까지) j = i -1로 시작해 현재 삽입하고자 하는 값보다 작거나 같은 값.. 2021. 11. 2. [UIKit] Storyboard 탈출기 (2편) - 스토리보드 대신 SwiftUI의 프리뷰 사용하기 스토리보드를 없애면서 관리해야 할 부분이 코드로 집중돼 편하기도 하지만 뷰를 제대로 만들었는지 확인하려면 매번 시뮬레이터를 돌려봐야 한다는 점은 불편했습니다. 그래서 이번 글에서는 스토리보드 대신 SwiftUI의 프리뷰를 사용하여 매번 시뮬레이터를 돌리지 않고도 뷰를 미리보기하면서 개발하는 방법을 알아보도록 하겠습니다. 주의사항 SwiftUI를 사용해야 하므로 Deployment target이 iOS 13.0 이상은 되어야 합니다. (작성 시 Xcode 버전: 12.5.1) 1. 사용법 결론부터 간단히 말하자면 ViewController() 라는 뷰컨트롤러의 미리보기를 추가하고 싶다면 다음과 같은 코드를 해당 파일이 제일 밑에 추가해주면 됩니다. #if DEBUG import SwiftUI struct .. 2021. 10. 28. [Swift] lazy 프로퍼티 알아보기 이번 글에서는 Swift의 lazy 프로퍼티에 대해 알아보겠습니다. lazy property란 무엇인가? lazy property, 정확히 지연 저장 프로퍼티(lazy stored property)는 처음 사용되기 전까지 초기값이 계산되지 않는 프로퍼티를 의미합니다. 간단히 말해, 내가 만든 프로퍼티를 사용하기 전까지 메모리에 올려두지 않겠다는 의미입니다. lazy property는 프로퍼티의 초기값이 초기화가 끝나기 전까지 알 수 없는 외부 값에 의존적인 경우 유용합니다. 또한 초기값이 복잡한 계산나 셋업이 필요하지만 필요할 때까지 실행되지 않아야 할 때에도 유용합니다. 주의할 점 lazy 키워드가 붙어있다고 해서 해당 프로퍼티가 한 번만 초기화된다는 것을 보장하는 것은 아닙니다. 만일 멀티스레드환경에.. 2021. 10. 26. 이전 1 2 3 4 5 6 ··· 9 다음