swift

·iOS/Swift
안녕하세요, 루피입니다! 오늘은 Dispatch Work Item에 대해 정리해 보는 시간을 가져보도록 하겠습니다. 바로 시작합니다.Dispatch Work Item 이란?수행하고 싶은 작업을 캡슐화해서, 완료 핸들러나 실행 의존성을 붙일 수 있게 해주는 도구입니다.Dispatch Work Item은 디스패치 큐나 디스패치 그룹에서 실행할 작업을 깔끔하게 묶어 놓은 것이라고 생각하면 편합니다..init { qos: DispatchQoS = .unspecified, flags: DispatchWorkItemFlags = [], block: @escaping () -> Void}매개변수 (Parameters)qos : 작업 아이템의 실행 우선순위를 정할 때 쓰이는 클래스예요. 이 작업이 얼마나 급한지 시스템..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 Dispatch Group에 대해 공부해 보겠습니다. 바로 시작합니다.Dispatch Group 이란?여러 작업을 하나의 단위로 묶어서 관리하고 모니터링할 수 있게 해 주는 도구입니다. 쉽게 말해, 여러 작업이 모두 끝날 때까지 기다리거나 그 진행 상황을 한꺼번에 파악하고 싶을 때 사용할 수 있는 기능입니다. 순서를 간략하게 정리해 보겠습니다!!그룹은 여러 작업을 하나로 묶어서 관리하고, 그 그룹에 맞춰 동작을 동기화할 수 있게 해 줍니다.여러 개의 작업 항목을 그룹에 추가한 뒤, 같은 큐나 서로 다른 큐에서 비동기적으로 실행되도록 설정해 줍니다. 모든 작업 항목이 실행을 마치면 그룹은 완료 핸들러를 실행합니다. 또는 그룹 내 모든 작업이 끝날 때까지 동기적으로 기다릴 수..
·iOS/Swift
안녕하세요, 루피입니다! 오늘은 Dispatch Queue의 종류에 대해 정리해 보겠습니다. 바로 시작합니다.시작하기 전에..많은 분들이 큐의 종류를 헷갈려 하십니다. 이렇게 정리하면 쉽습니다! Dispatch Queue라는 큰 우산 아래, 작업 처리 방식에 따라 Serial Queue와 Concurrent Queue로 나뉩니다.Serial Queue: 한 번에 하나의 작업만 순서대로 처리합니다.Concurrent Queue: 여러 작업을 동시에 처리할 수 있습니다. 그리고 이 기본적인 두 특성을 바탕으로 시스템이 제공하는 큐와 우리가 직접 만드는 큐가 있습니다.시스템 제공 큐:Main Queue: 시스템이 기본으로 제공하는 Serial Queue.Global Queue: 시스템이 기본으로 제공하는 Co..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 지난 글을 작성하면서 생겼던 궁금증을 해결해보는 시간을 가져보도록 하겠습니다. 바로 시작합니다.궁금증 발생Dispatch Queue에 대해 공부하면서 Concurrent + Sync 형태의 동작에 대해 의문을 가지게 되었습니다.Button("concurrent - sync") { print("A") concurrentQueue.sync { sleep(3) print("B") } print("C")}문제의 그 코드입니다.❓저의 생각은 이렇습니다. (처음 생각)❓Concurrent는 단일 Thread가 아닌 여러 Thread에 작업을 할당하는 Queue의 종류입니다. 즉, 직렬의 방식이 아닌 병렬의 방식으로 작업을 분배합니다. Sync는 등록한 ..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 저번 시간에 이어 DispatchQueue에 대해 공부해 보도록 하겠습니다. 만약에 이해가 잘 가지 않는다면, 저번 글 을참고하시면 좋을 거 같습니다! 바로 시작하겠습니다.DispatchQueue란?DispatchQueue가 무엇인지에 대해 작성하기에 앞서 저번 글에 있던 내용을 상기시켜 보도록 하겠습니다.GCD(Grand Central Dispatch)는 멀티코어 하드웨어의 자원을 효율적으로 활용할 수 있게 도와주는 시스템 수준의 기술입니다. 간단하게 말해, GCD를 사용하면 여러 코어에 걸쳐 작업을 병렬 처리할 수 있습니다. 우리는 GCD 덕분에 Thread 관리나 스케줄링에 대한 고민을 줄이고 DispatchQueue에 작업을 할당하면 GCD가 알아서 동시성 프로그..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 GCD에 대해 공부해 보겠습니다. 바로 시작합니다.GCD가 무엇인가?GCD(Grand Central Dispatch)는 멀티코어 하드웨어의 자원을 효율적으로 활용할 수 있게 도와주는 시스템 수준의 기술입니다. 간단하게 말해, GCD를 사용하면 여러 코어에 걸쳐 작업을 병렬 처리할 수 있습니다. 많은 분들이 GCD와 Dispatch라는 용어를 같은 맥락으로 이해하는데, 공식 문서에서도 그렇게 설명하고 있네요.GCD를 우리는 왜 알아야 하는가?만약 우리가 오직 메인 스레드만을 이용해 앱을 만든다면 어떨까요? 간단한 앱에서는 큰 문제가 없을 수 있지만, 네트워크 통신이나 여러 Task를 동시에 처리해야 하는 복잡한 앱에서는 상황이 달라지게 되는데요!메인 스레드가 모든 업무를 ..
·iOS/Swift
안녕하세요, 루피입니다. 오늘은 DispatchObject에 대해 공부 해보도록 하겠습니다. 바로 시작합니다.DispatchObjectDispatch Type의 가장 기본적인 Class 입니다. 설명에 따르면 DispatchQueue, DispatchGroup 그리고 DispatchSource를 포함하여 많은 Dispatch Object 타입이 있다고 합니다. 또한, 이 기본 Dispatch Object 인터페이스들은 iOS 앱 개발 시, 실제 작업의 흐름과 리소스 관리를 보다 세밀하게 제어할 수 있도록 도와준다고 하는데요. 예를 들면, 메모리 관리는 물론, 작업 실행을 일시 중지하고 재개하는 기능, 객체에 관련된 추가 정보를 설정하는 기능, 작업 중 발생한 데이터를 로깅하는 등의 다양한 작업을 수행..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다! 오늘은 Swift 프로토콜에 대해 정리해 보도록 하겠습니다. 바로 시작합니다.1. 프로토콜이란?특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다. 쉽게 생각하면 프로토콜이란 일종의 약속입니다. 프로토콜은 직접 구현하지 않고 약속만 합니다.너는 나를 채택하면 이런 변수를 가지고 있어야!너는 나를 채택하면 이런 메서드를 가지고 있어야 해!라고 약속을 하는 건데요. 이때 약속에 대한 직접 구현은 구조체, 클래스, 열거형 등을 통해 이루어져야 합니다.  즉, 프로토콜은 정의를 하고 제시를 할 뿐이지 스스로 기능을 구현하지는 않습니다!!! 우선 프로토콜을 사용하는 방식에 대해서 먼저 살펴 보도록 하겠습니다.1)  프로토콜 선언protocol..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다! 오늘은 Swift 공식문서를 바탕으로 Where 에 대해 공부해 보겠습니다. 바로 시작합니다.Where 절 이란?where 절은 특정 패턴과 경합하여 조건을 추가하는 역할을 합니다. 우리는 특히 크게 두 가지 용도로 사용할 수 있습니다.패턴과 결합하여 조건 추가타입에 대한 제약 추가쉽게 말해 특정 패턴에 Bool 타입 조건을 지정하거나 어떤 타입의 특정 프로토콜 준수 조건을 추가하는 등의 기능이 있습니다.예제 코드로 알아보기글을 적는 거보다 아무래도 코드 몇 줄 적어보는게 더 이해가 빠르지 않을까요??? 바로 코드로 알아보겠습니다.1. 값 바인딩에서let tuples: [(Int, Int)] = [(1, 2), (1, -1), (1, 0), (0, 2)]for t..
·iOS/Swift
안녕하세요, iOS 개발하는 루피입니다! 오늘은 Swift 공식문서를 바탕으로 제네릭에 대해 공부해 보겠습니다. 바로 시작합니다.제네릭이란?제네릭은 쉽게 말해 모든 타입에 동작할 수 있는 유연하고 재사용 가능한 함수와 타입을 작성할 수 있도록 돕는 Swift의 강력한 도구입니다. Swift 표준 라이브러리 대부분은 제네릭 코드로 되어 있다고 합니다. 예를 들어, 우리가 자주 사용하는 Array, Dictionary, Set 등의 타입은 모두 제네릭 컬렉션입니다. 우리가 Int 나 String 타입의 요소를 갖는 배열을 갖는다고 해서 그에 맞게 컬렉션을 새롭게 만드는 게 아니라 우리는 타입만 정해주면 되지 않나요?? 이게 제네릭이 가져다 주는 강력함입니다! 코드를 통해 보겠습니다.func swapTwoIn..
kimsangjunzzang
'swift' 태그의 글 목록 (3 Page)