본문 바로가기

iOS+/Swift

(6)
Swift Concurrency 개요Swift Concurrency는 Apple이 Swift 5.5에서 도입한 현대적인 동시성 모델로, 동시성 코드를 작성하는 데 있어 더욱 간결하고 안전하며 가독성을 높이는 방식을 제공한다이를 통해 개발자는 복잡한 비동기 작업을 보다 쉽게 관리하고, 동시성 문제(예: 데이터 경쟁 및 데드락)를 줄일 수 있다 이전까지는 GCD(Grand Central Dispatch)를 이용하여 애플 플랫폼에서 동시성 프로그래밍을 진행했으나 여러 단점들이 있었는데, Swift Conccurency를 통해 이러한 문제들을 해결하였다 이 글에서는 우선 GCD 방식에 대해 간략하게 알아보고, Swift Concurrecny로 동시성 프로그래밍 코드를 작성하는 방법에 대해 정리한다 GCD(이전 방식)Swift Concurrec..
Codable Protocol 개요Codable 프로토콜은 Swift에서 데이터 타입을 JSON이나 다른 외부 표현으로 인코딩하거나 디코딩할 수 있도록 도와주는 프로토콜이다 이 글에서는 Codable 프로토콜의 기본 개념을 간단하게 알아보고 직렬화(Serialization)와 역직렬화(Deserialization)의 개념을 살펴본다그리고 JSON 역직렬화 과정에서 프로퍼티 값이 다른 경우, CodingKeys를 통해 커스텀한 디코딩 과정을 구현하는 방법에 대해 정리한다 Codable 프로토콜데이터 변환의 기본 개념(직렬화/역직렬화)CodingKeys와 중첩 키 처리 Codable 프로토콜Codable는 Swift에서 데이터를 직렬화와 역직렬화할 수 있도록 제공되는 프로토콜이다이는 아래에서 볼 수 있듯이, Encodable과 Decod..
URLSession을 이용한 네트워킹 작업 개요이 글은 URLSession으로 네트워킹 작업을 수행하는 데 알아야 하는 관련 개념들을 정리한다 간단하게 정리해보면 다음과 같다URLSession을 통해 네트워킹 작업을 수행할 때, URLRequest가 이용된다URLRequest는 요청에 필요한 정보들을 가진 객체인데, URL이 필요하다URL은 URLComponents를 통해 관리될 수 있다 URL, URLComponents, URLRequestURLSession URL과 URLComponents 그리고 URLRequestURL, URLComponents, URLRequest는 전부 Foundation 프레임워크에 포함되어 있고 네트워킹 작업을 수행하는 데 이용된다 URL은 요청에 이용되는 주소를 나타내며, URLComponents를 통해 URL객체..
ARC(Automatic Reference Counting) 개요이 글에서는 Swift에서 사용하는 메모리 관리 기법인 ARC(Automatic Reference Counting)에 대해 알아본다우선, 다른 언어에서 많이 사용되는 GC(Garbage Collection)를 이용한 메모리 관리와 ARC 방식은 어떤 차이가 존재하는지 확인하고,Swift에서 강한 순환 참조 문제를 해결하기 위해 사용되는 다음 키워드들에 대해 알아본다 weakunownedCapture List GC와 ARCC++의 스마트 포인터는 참조 카운팅을 통해 객체가 더 이상 사용되지 않을 때 자동으로 메모리를 해제시킨다.. Swift는 Heap 영역 관리에 ARC 방식을 사용하는데, ARC 방식을 이용하면 언어 차원에서 스마트 포인터처럼 객체 카운팅을 수행하고 관리한다GC(Garbage Coll..
Transferable 개요이 글에서는 Transferable에 대해 자세히 정리한다그리고 Drag&Drop 기능에서 Transferable이 사용되는 예시에 대해 알아본다 TransferableTransfer TypeData TransferFile TransferCustom TransferDrag & Drop TransferableA protocol that describes how a type interacts with transport APIs such as drag and drop or copy and paste Transferable에 대한 문서에서의 설명은 위와 같고, String, Data, URL, Image와 같은 시스템 유형 자체는 이미 Transferable을 준수하고 있다 Transferable 프로토콜을..
Swift 명령어와 Swift Package 개요이 글은 스위프트와 스위프트 패키지에 대한 글이다스위프트는 컴파일러, REPL, 패키지 관련 다양한 기능들을 제공해준다우선은 자주 사용되는 스위프트 명령어를 정리하고, 패키지 구성에 대해 정리한다마지막으로 정리한 내용을 바탕으로, 실제 패키지들을 간단하게 분석해본다 Swift 명령어더 많은 내용은 swift -h로 확인할 수 있고, 다음 요소에 대해서만 정리한다swift와 swiftcswift replswift packageswift run과 swift buildswift sdk installswift와 swiftcswift에 파일명을 전달하면, 컴파일하고 실행한다swift hello.swift이때 swiftc와 옵션을 통해 마치 gcc로 c파일을 컴파일 하듯이 사용할 수 있다swiftc hello...