[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)를 제공합니다. 실패 가능한 이니셜라이저는 클래스, 구조체, 열거..
[Swift] 초기화(Initializers) 알아보기 (5) - 요구 이니셜라이저
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅은 저번 포스팅들에 이어서 초기화에 대해 정리해볼 건데 이번에 다룰 내용은 요구 이니셜라이저입니다! 그럼 바로 시작하겠습니다! 요구 이니셜라이저란?요구 이니셜라이저(required initailzer)는 '반드시 필요한 초기화 방법'을 의미합니다. 클래스를 만들 때, 그 클래스를 기반으로 만들어지는 모든 서브클래스가 반드시 따라야 하는 초기화 규칙을 정하는 것입니다. 이 규칙은 'required'라는 키워드를 사용해서 정합니다. 이게 무슨 말인지 잘 모르겠죠? 좀 더 쉽게 설명해보겠습니다. 예를 들어, 핸드폰을 생산하는 회사가 있다고 생각해보겠습니다. 이 회사는 모든 핸드폰이 반드시 '제품 번호'를 가지도록 만들어야 합니다. 그래야 각 핸드폰을 식별하거나 문제가 ..
[Swift] 초기화(Initializers) 알아보기 (4) - 이니셜라이저의 상속 재정의와 자동 상속
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서도 저번에 이어서 초기화(Initializers)에 대해 정리를 해볼텐데 이번에는 초기화 중에서 상속과 재정의에 대해서 알아보도록 하겠습니다! 그럼 바로 시작하겠습니다. 이니셜라이저 상속과 재정의Swift에서 이니셜라이저는 기본적으로 부모 클래스로부터 상속되지 않는 특성을 가지고 있습니다. 이는 자식 클래스가 부모 클래스의 이니셜라이저를 그대로 사용할 경우, 자식 클래스의 새로운 인스턴스가 완벽하게 초기화되지 않는 문제를 예방하기 위함입니다. 그러나, 특별한 상황에서는 부모 클래스의 이니셜라이저가 자동으로 상속되기도 합니다.(이 내용은 아래에서 다시 설명하도록 하겠습니다) 만약 자식 클래스에서 부모 클래스의 이니셜라이저를 사용하고자 한다면, 동일한 이니셜라이저..
[Swift] 초기화(Initializers) 알아보기 (3) - 2단계 초기화
·
Apple/Swift
안녕하세요! 피피아노입니다🎵 이번 포스팅에서는 지난번 포스팅들에 이어서 초기화(Initializers)에 대해서 알아볼 예정인데 이번에는 '2단계 초기화(two-phase initialization)' 라는 것에 대해 한 번 살펴보려고 합니다. 그럼 바로 시작하겠습니다! 2단계 초기화Swift의 클래스 초기화는 2단계 초기화(two-phase initialization)를 사용합니다. 먼저 1단계 초기화는 클래스에 정의한 각각의 저장 프로퍼티에 초깃값을 할당합니다. 이 단계에서는 모든 저장 프로퍼티에 초기값이 할당되어야 합니다. 그 이유는 모든 프로퍼티가 유효한 상태로 인스턴스가 생성될 수 있도록 보장하기 위해서 입니다.class Human { var name: String var age: ..