Swift
-
Swift Thread 처리에 대해 (Operation Queue vs Dispatch Queue)Swift 2021. 7. 7. 11:05
Thread 처리의 기본 개념 Serial(직렬) vs Concurrent (병렬) / sync(동기) vs async (비동기) Serial은 직렬, 앞 작업이 끝날때까지 뒤 작업을 실행하지 않죠. Concurrent 병렬적으로 여러개의 작업을 동시에 실행해요 여기서 하나, 먼저온 작업을 순서대로 실행한다는것입니다. 단지 동시에 여러개를 실행, 하나의 작업이 끝날때까지 기다리지 않는것이다. Sync 해당 작업이 끝날때까지 기다린다. Async 해당 작업이 하는 동안 다른걸 할 수 있다. 같은듯 다르게 들리는 두 개념은 Serial 과 Concurrent는 Thread의 수와 관련된 개념이고 Async와 Sync 는 Thread 위의 작업 흐름을 말한다고 보면됩니다. -> 직렬인데 비동기일수 있고, 병렬..
-
URL Session 에 대해서Swift 2021. 7. 6. 21:05
https://developer.apple.com/documentation/foundation/urlsession : Apple에서 제공하는 서버와 통신하기 위한 api Request와 Response 형식은 동일 URLSessionDelegate, URLSessionTaskDelegate 제공 Types of URL Sessions URLSession은 4가지 종류의 Session을 지원합니다. Default Session: shared session처럼 행동하지만 직접 구성할 수 있다. 또한 data를 점진적으로 획득할 수 있도록 delegate를 할당할 수 있다. 기본적인 Session으로 디스크 기반 캐싱을 지원합니다. Ephemeral Session: 임시 세션, 어떠한 데이터도 저장하지 않는다..
-
Swinject 사용, DI란?Swift 2021. 6. 30. 13:20
DI : Dependency Injection 즉, 의존성 주입. 객체 자체가 아니라 Freamework에 의해 객체의 의존성이 주입되는 설계 패턴이다. 즉 디자인 패턴중에 하나인셈. * 그걸 Swift에서는 어떤식으로 적용하고, 활용할 수 있을까? 기본 내용을 알고 있다면 바로 아래쪽 Swinject로 이동하길 바란다... 의존성 먼저, 짧게 의존성이란 무엇일까? final class AClass { var test: Int = 0 } final class BClass { var instance = AClass() } // B에서 A를 내부 변수로 사용한다? -> B틀래스는 A클래스와 의존관계가 생깁니다. 위의 예제는 B에 A에대한 의존 관계가 생기는것이다. 주입 바로 내부가 아닌 외부에서 객체를 생성..
-
xcode 오류 nw_connection_copy_protocol_metadata [C20] Client called nw_connection_copy_protocol_metadata on unconnected nw_connectionSwift 2021. 6. 29. 14:05
nw_connection_copy_protocol_metadata [C20] Client called nw_connection_copy_protocol_metadata on unconnected nw_connection 위 로그는 찾아보니, 시뮬레이터에서 출력하는 로그고 아래와 같이 하면, 로그가 뜨지 않는다..! Edit Scheme에서, Run 모드일때 argument로 OS_ACTIVITY_MODE 를 선언하고 값을 disable로 선언한다.
-
weak self 에 대해서 (언제나 하는걸까?)Swift 2021. 6. 18. 16:26
메모리 누수를 막기 위한 weak self는 언제 써야되는것일까? 일단 아래 얘기를 하고 싶어서 쓰게되었다. (You don't always need [weak self]) 하지만 결론은 아니다. https://medium.com/flawless-app-stories/you-dont-always-need-weak-self-a778bec505ef You don’t (always) need [weak self] We will talk about weak self inside of Swift closures to avoid retain cycles & explore cases where it may not be necessary to capture self weakly. medium.com 위의 글에서 핵심인..
-
ReactorKitSwift/아키텍쳐 2021. 6. 18. 15:42
ReactorKit으로 단방향 반응형 앱 만들기 - 전수열 를 보고 정리 및 사용해보겠습니다. https://www.youtube.com/watch?v=ASwBnMJNUK4 새로운 앱 구조를 위해 고민하고 있는 만큼 이 부분을 꼭 확인하고 넘어가고 싶었다. (Clean Architecture가 곧 정리해서 글이 올라올 예정) 예시로 들어주신 부분이 바로 스크롤 내렸을때 다음 화면으로 이동하면서 이전 통신의 데이터를 다음 통신에 사용하고, 이런 의존성이 생기는 부분 View 위의 protocol을 상속받아서 사용하는 식이다. 구조화가 되는 느낌이 있다. ViewController는 rendering만(bind), ViewReactor를 위처럼 만든다. 위처럼 assgin을 하고 ViewController에..
-
Operation QueueSwift 2021. 5. 26. 10:56
공식문서 https://developer.apple.com/documentation/foundation/operationqueue Apple Developer Documentation developer.apple.com 기능 일단 세가지를 제공한다. Interoperation Dependencied : 순서 Cancellation : 취소 Completion Handler: 완료 Read -> Excuting -> Finished / Cancelled (single short 이기때문에 단방향) Operation을 OperationQueue에서 관리한다. 정상적으로 실행된 operation은 큐에서 자동으로 제거됨, 끝나지 않으면 제거되지 않음(이 때문에 취소 기능을 구현) QueuePriority Qu..