[Swift] 동시성(Concurrency) 톺아보기 (2/2)
·
Apple/Swift
안녕하세요! 피피아노입니다.  이번 포스팅은 저번 포스팅에 이어서 동시성(Concurrency)에 대해서 마저 정리해보겠습니다. 저번 포스팅이 궁금한 분들은 여기를 참고해주세요! 비동기 시퀀스(Asynchronous Sequences)비동기 시퀀스(asynchronous sequence)는 비동기적으로 요소를 하나씩 기다리면서 처리할 수 있는 강력한 도구입니다. Swift의 AsyncSequence 프로토콜을 사용하여 이러한 비동기 시퀀스를 구현할 수 있습니다. 비동기 시퀀스를 사용하면 일반적인 배열이나 컬렉션과 달리, 요소를 순차적으로 비동기적으로 처리할 수 있습니다. 이전 포스팅에서 listPhotos(inGallery:) 함수는 비동기적으로 배열의 모든 요소가 준비된 후에 전체 배열을 한번에 반환합..
[Swift] 동시성(Concurrency) 톺아보기 (1/2)
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서는 동시성(Concurrency) 개념에 대해서 정리를 해보려고 합니다.  동시성(Concurrency)Swift는 비동기(Asynchronous)와 병렬(Parallel) 코드를 구조적으로 작성할 수 있는 강력한 기능을 제공합니다. 이 기능들을 통해 앱의 성능을 최적화하고, 사용자 경험을 향상시킬 수 있습니다. 비동기 코드(Asynchronous Code)비동기 코드는 일시적으로 중단되었다가 다시 실행될 수 있는 코드를 의미합니다. 프로그램의 한 부분만 실행되지만, 실행을 중단하고 다시 시작함으로써 긴 작업(예: 네트워크 요청, 파일 분석)을 수행하는 동안 짧은 작업(예: UI 업데이트)을 계속 진행할 수 있습니다. 이렇게 하면 앱이 사용자에게 더 부드럽고 ..
[Swift] 고차함수(Higher-order function) 이해하기
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 고차함수에 대해서 살펴보겠습니다. Swift는 함수형 프로그래밍 패러다임을 지원하는 언어로, 고차함수를 통해 코드의 가독성과 유지보수성을 높일 수 있습니다. 그럼 바로 시작하겠습니다! 고차함수(Higher-order function)란?고차함수(Higher-order function)는 다른 함수를 매개변수로 받거나 함수 실행 결과를 함수로 반환하는 함수입니다. Swift의 함수는 1급 객체(first class object) 또는 1급 시민(first class citizen)이기 때문에 함수의 매개변수로 전달할 수 있으며, 함수의 리턴값으로 반환할 수 있습니다. Swift의 대표적인 고차함수는 맵(map), 필터(filter), 리듀스(reduce)가..
[Swift] Implicitly Unwrapped Optional (암묵적 옵셔널 추출)과 Optional Chaining (옵셔널 체이닝)
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서는 Implicitly Unwrapped Optional과 Optional Chaining에 대해서 다뤄보려고 합니다.편의상 Implicitly Unwrapped Optional은 줄여서 IUO라고 표현하겠습니다. 이 점 유의해서 봐주시기 바랍니다. 그럼 바로 시작하겠습니다! IUO(Implicitly Unwrapped Optional)란?우선 옵셔널에 대해서 간단하게 살펴보고 가자면, Swift 언어에서 Optional은 값이 있을 수도 있고, 없을 수도 있는 변수나 상수를 선언할 때 사용합니다. 이게 무슨 소리야?? 라고 생각하시는 분들을 위해 예를 들어서 설명해보자면! 우리가 앱을 이용하면서 앱을 만든 개발자들은 사용자로부터 입력 받은 데이터를 항상 예측..
[Swift] 배열(Array)
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서는 Swift에서 자주 사용하는 데이터 구조 중 하나인 배열(Array)에 대해 알아보고 Swift 배열의 기본 개념, 생성, 조작 방법, 그리고 고급 기능들에 대해 간단하게 정리해보겠습니다.  그럼 바로 시작하겠습니다. Swift 배열이란?배열은 동일한 타입의 값들을 순서대로 저장하는 컬렉션 타입입니다. 배열은 인덱스를 통해 요소에 접근할 수 있으며, 요소의 순서는 배열에 추가된 순서대로 유지됩니다. Swift 배열은 값 타입(value type)으로, 복사 시 독립적으로 동작합니다. 배열의 생성배열을 생성하는 방법은 여러 가지가 있습니다. 가장 기본적인 방법은 대괄호 []를 사용하는 것입니다.// 빈 배열 생성var emptyArray: [Int] = []..
[Swift] 초기화(Initializers) 알아보기 (6) - Failable Initalizers
·
Apple/Swift
안녕하세요! 피피아노입니다 🎵 이번 포스팅에서는 실패 가능한 이니셜라이저(Failable Initailzer)에 대해서 포스팅을 하려고 합니다. 그럼 바로 시작하겠습니다! 실패 가능한 이니셜라이저(Failable Initailzer)란?개발을 하다 보면 이니셜라이저를 통해 인스턴스를 초기화할 수 없는 예외 상황들을 만나게 됩니다. 예를 들어보면, 이니셜라이저의 전달인자로 잘못된 값이나 적절치 못한 값이 전달 되었을 때, 이니셜라이저는 인스턴스 초기화에 실패할 수 있습니다.  Swift에서는 초기화 과정에서 잘못된 파라미터 값이 들어올 경우 이를 안전하게 처리하기 위한 방법으로 실패 가능한 이니셜라이저(Failable Initializer)를 제공합니다. 실패 가능한 이니셜라이저는 클래스, 구조체, 열거..