목록Swift/스위프트 정리 (19)
study record
Struct 내 Class 프로퍼티는 복사될까? Struct는 값 타입으로 값을 복사한다.그렇다면 Struct 내의 Class 프로퍼티는 복사될까 아니면 참조 주소 값을 공유하게 될까? 정답은 Struct 내의 Class 프로퍼티는 참조 주소 값을 공유한다.이에 다음과 같은 문제가 발생할 수 있다. 📌 "Struct의 class 프로퍼티에서 생길 수 있는 문제?1. 문제 개요Swift에서 struct(값 타입) 내에 클래스(참조 타입) 프로퍼티를 포함할 때, 참조 타입이므로 원본이 공유될 수 있는 문제가 있다.특히 클래스가 상속(subclassing) 될 수 있는 경우, 원치 않는 변경이 발생할 수 있다. 2. 어떤 문제가 발생할 수 있나?만약 struct 내에 참조 타입인 클래스 프로퍼티가 있고, ..
DispatchSemaphoreAn object that controls access to a resource across multiple execution contexts through use of a traditional counting semaphore.전통적인 카운팅 세마포어의 사용을 통해 다양한 실행 컨텍스트들에서의 접근을 통제하는 객체이다.class DispatchSemaphore : DispatchObject 디스패치 세마포어는 전통적인 카운팅 세마포어의 효율적인 구현이다. 디스패치 세마포어는 호출 스레드를 차단해야 할 때만 커널을 호출한다. 호출 세마포어가 차단될 필요가 없으면 커널 호출이 이루어지지 않는다. 세마포어 카운트를 증가시키려면 signal() 메서드를 호출하고, 세마포어 카운트..
큐에 작업들을 넣기 전에, 어떤 큐를 사용할 것이고 사용하기 위한 목적을 결정해야 한다. Dispatch queues는 직렬적으로 또는 병렬적으로 작업을 실행할 수 있다. 게다가, 만약 큐에 특별한 목적을 가진다면 큐의 속성들을 설정할 수 있다. 아래의 글을 통해 어떻게 dispatch queue를 만들고 사용을 위한 설정을 할 수 있는지를 보여준다. Getting the Global Concurrent Dispatch Queues concurrent dispatch queue는 병렬적으로 실행할 다양한 작업들을 가지고 있을 때 유용하다. concurrent queue는 여전히 선입선출로 작동하는 큐이다. 다만, concurrent queue는 이전 작업이 끝나기 전에 추가적 작업이 빠져나올 수 있다. ..
본 글은 해당 링크(공식 사이트) 글을 해석하여 정리한 글입니다. Grand Central Dispatch (GCD) dispatch queues는 테스크들을 수행하는 데에 강력한 툴이다. Dispatch queues는 호출자를 존중하며 비동기적으로나 동기적으로 코드의 블록들을 실행하게 한다. dispatch queues를 분리된 스레드에 수행하게끔 사용할 수 있다. dispatch queues의 장점은 사용하기에 단순하고 효율적이라는 것이다. 이 챕터에서는 dispatch queues에 소개와 어플리케이션에서 일반적인 테스크를 실행하고자 할 때 어떻게 사용하는지를 담고 있다. 만약 존재하는 스레드 코드를 dispatch queues로 바꾸고 싶다면, 추가적인 팁을 Migrating Away from T..