iOS환경에서 비동기 작업을 관리하는 두 가지 핵심 기술이 있는데요. GCD(Grand Central Dispatch)와 Swift Concurrency의 작업단위인 Task입니다.이들은 내부적으로 QoS(Quality of Service)라는 통일된 시스템을 사용하여 작업의 우선순위를 관리하는데요. 오늘은 이 QoS에 대해서 알아보겠습니다.1. Task와 GCD의 우선순위 연관 관계GCD와 Task 모두 QoS(Quality of Service)를 통해 시스템에 작업의 중요도를 알립니다. GCD의 DispatchQueue와 Swift Concurrency의 Task를 사용할때 시스템은 설정된 QoS 정보를 기반으로 스레드 풀에서 작업을 스케줄링하고, 필요한 CPU 및 리소스 할당을 결정합니다.비동기 작..
문제 링크: LeetCode 198. House Robber유형: Dynamic Programming (DP) 문제 요약도둑이 일렬로 늘어선 집들을 털려고 합니다.단, 인접한 두 집을 동시에 털 수는 없습니다.각 집마다 돈의 양이 담긴 배열 nums가 주어졌을 때,도둑이 털 수 있는 최대 금액을 반환해야합니다!🔍 예시Input: nums = [2,7,9,3,1]Output: 12// 2 + 9 + 1 = 12💡 접근 방법이 문제는 전형적인 Dynamic Programming(DP) 문제입니다.핵심은 현재 집을 털지, 건너뛸지 선택하는 것인데요. 이를 점화식으로 정리해서 해결할 수 있습니다.점화식 정의dp[i] = 0번째부터 i번째 집까지 털었을 때 얻을 수 있는 최대 금액입니다.이때 점화식에 활용되는..
Swift Concurrency의 핵심: Structured Concurrency로 안전한 비동기 작업 제어하기Swift Concurrency를 활용하여 비동기 처리를 구현하고 계시다면, Structured Concurrency(구조화된 동시성) 형태로 작업을 구성하는 것이 강력하게 권장됩니다. 왜냐하면 이는 작업 간의 부모/자식 관계를 명시적으로 설정하여, 복잡한 비동기 작업을 예측 가능하고 유연하게 제어할 수 있게 하기 때문입니다.오늘은 이 원칙의 가장 큰 장점인 '취소(Cancellation) 전파' 기능을, 중첩된 Task 작업이 있는 상황을 가정해서 코드 작성해보며 실험해보겠습니다.playground 에서 emtpy project를 생성해서 swift concurrency 기반 코드 작성 및 테..
안녕하세요, iOS 개발자 여러분~! 오늘은 iOS 앱의 근간을 이루는 핵심 계층으로, Cocoa Touch라는 개념이있는데요.개발을 하다보면 자주 사용하게 되는 UIKit, Foundation 등의 프레임워크와도 연관이 깊습니다. 오늘은 이것들에 대해서 얘기해봐요.Cocoa Touch: iOS 앱을 만드는 모든 것의 시작가장 먼저, Cocoa Touch가 무엇인지부터 확실히 짚고 넘어가죠. 간단하게 말해, Cocoa Touch는 iOS 앱을 개발하는 데 필요한 대부분의 도구와 기술을 모아놓은 최상위 프레임워크, 최상위 계층입니다. 우리가 만드는 앱의 화면(UI), 사용자와의 상호작용, 데이터 관리 등 앱의 생명주기 전반을 관리하는 강력한 기반이 되는 개념입니다.Mac OS 앱을 만들때에는 Cocoa 프..
- Total
- Today
- Yesterday
- Collection
- uikit
- ios
- 프로그래머스
- swift언어
- createML
- 프로그래머스swift
- swift concurrency
- 컬렉션
- 스위프트
- 자연어처리
- Protocol
- CoreML
- swift
- 부스트코스
- swift reduce
- 백준swift
- SwiftUI
- 알고리즘
- 김프매매
- 백준알고리즘
- swift 기초
- Swift 알고리즘
- swift string
- swift 문자열
- swift문제
- swift알고리즘
- 개발자문서
- 알고리즘문제
- 프로토콜
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |