IOS 16

[iOS/Swift] Error Handling이란?

Error Handling이란 한국어로 에러 처리라고 번역할 수 있습니다. 즉, 말 그대로 해석하면프로그램 실행 중 발생할 수 있는 오류를 감지하고, 이를 적절히 처리하여 프로그램이 예기치 않게 종료되지 않도록 하는 중요한 기법입니다. 파일을 읽어올 수 없거나 네트워크 요청 실패, 사용자 입력 오류와 같은 여러 가지 사용자에게 발생할 수 있습니다. 이러한 상황을 감지하고, 이를 적절하게 처리하는 방법을 알아보겠습니다. 에러가 발생하는 상황에는 정말 여러 가지가 존재하지만 위에서 언급한 세 가지만 알아보겠습니다. 파일 읽기 실패파일을 읽는 과정에서 발생할 수  있는 오류는 파일이 존재하지 않거나 읽기 권한 부족, 파일 손상 또는 접근 불가와 같은 상화에서 주로 발생합니다.  Apple 공식 문서에 따르면,..

Apple/Swift 2024.11.10

[Apple/visionOS] Swift and SwiftUI

비전OS 앱 개발의 핵심을 이루는 두 가지 중요한 개념은 바로 Swift와 SwiftUI입니다. Swift는 빠르고 안정적이며 현대적인 프로그래밍 언어로, 복잡한 문제를 단순하고 편리하게 해결합니다. SwiftUI는 그 위에 얹어진 강력한 UI 프레임워크로, 한 번의 코드로 다양한 애플 플랫폼에서 일관된 사용자 경험을 구현할 수 있도록 돕습니다.  SwiftSwift의 주요 특징으로는 안정성(Safety), 성능(Performance), 현대적인 프로그래밍 패러다임(Modern Programming Paradigms) 세 가지가 핵심으로 강조됩니다.  1. 안정성(Safety)A. 타입 안전성먼저 Swift의 가장 큰 장점은 안전하게 코딩을 할 수 있다는 것입니다. 다른 언어들을 사용하다 보면 종종 겪게..

Apple/visionOS 2024.10.30

[iOS/iOS] iOS 내부에는 뭐가 들어있을까? (What's in iOS?)

이번 포스팅은 iOS 내부에 대해 알아보는 포스팅을 작성해 보겠습니다.본 포스팅의 메인은 "내부"에 대해 간단하게 알아보는 포스팅이기에 각 개념에 대해 깊은 설명이 없다는 점 참고해 주시기 바랍니다 :) iOS 내부로 들어가기 이전에 먼저 iOS가 무엇인지 알아보자면."애플이 개발한 모바일 운영체제"입니다. 즉, 스마트폰 전용 운영체제죠 iOS에는 정말 많은 API로 구성되어 있는데요.여기서 API란?"Application Programming Interface"의 약자로, 소프트웨어 애플리케이션 간의 상호작용을 가능하게 하는 규칙과 도구의 집합입니다.즉 API는 서로 다른 소프트웨어의 시스템이 데이터를 주고받거나 기능을 호출할 수 있도록 해주는 인터페이스입니다.그리고 모두 프로그래밍 언어로 구성되어 있..

Apple/iOS 2024.09.10

[iOS/Swift] 오버로딩(Overloading) 그리고 오버라이딩(Overriding)

오버로딩(Overloading) 그리고 오버라이딩(Overriding) 두 개의 차이점을 알아보겠습니다. 오버로딩과 오버라이딩은 프로그래밍에서 자주 사용되는 개념으로, 비슷해 보이지만 실제로는 다릅니다. 오버로딩(Overloading)먼저 오버로딩은 같은 이름을 가진 함수나 메서드를 여러 개 정의할 수 있도록 해주는 기능입니다. 이때 각 메서드는 매개변수의 타입이나 개수, 또는 순서가 다르면 됩니다. 만약동일한 이름으로 중복 선언func foo() {}func foo() {} // 에러: Invalid redeclaration of 'foo' 당연히 에러를 나타냅니다.Invalid redeclaration of 'foo()'에러 메시지를 살펴보면 "함수 foo()의 잘못된 재선언" 이라는 의미입니다. 즉..

Apple/Swift 2024.09.03

[iOS/Swift] 오버라이딩(Overriding) 이란? (2/2)

지난번 포스팅에 이어서 오버라이딩(Overriding)을 설명해 보겠습니다. 지난 포스팅은 여기를 참고해주시면 됩니다.  속성 오버라이딩(Property Overriding) 계산 속성(Computed Property) 먼저 계산 속성 오버라이딩에는 제약 조건이 존재합니다.읽기 전용 속성을 읽기/쓰기 속성으로 오버라이딩하는 것은 가능합니다. 부모 클래스에 읽기 전용 속성이 있는 경우, 자식 클래스에서 이 속성을 읽기/쓰기 속성으로 오버라이딩할 수 있습니다.읽기/쓰기 속성을 읽기 전용 속성으로 오버라이딩 하는 것은 불가능합니다. 부모 클래스에서 읽기/쓰기 속성이 있는 경우, 자식 클래스에서 이 속성을 읽기 전용으로 오버라이딩할 수 없습니다. Swift에서 이는 문법적으로 허용되지 않으며, 컴파일 오류가 발..

Apple/Swift 2024.08.28

[iOS/Swift] 오버라이딩(Overriding) 이란? (1/2)

앞 포스팅에서 설명한 상속과 오버라이딩의 공통점은 부모 클래스의 기능을 자식 클래스가 물려받는다는 것입니다.  상속은 자식 클래스가 부모 클래스의 속성과 메서드를 그대로 물려받아 사용할 수 있게 하는 것입니다. 즉, 부모 클래스에서 정의된 기능을 자식 클래스가 상속받아 재사용하는 과정입니다. 오버라이딩은 자식 클래스가 상속받은 부모 클래스의 메서드를 재정의하여, 부모 클래스의 기본 동작을 자식 클래스에 맞게 변경하는 것입니다. 이를 통해 자식 클래스에서 부모 클래스의 메서드가 다르게 동작하도록 할 수 있습니다.  요약하자면, 상속은 기능을 재사용하는 것이고, 오버라이딩은 기능을 재정의하는 것입니다. 오버라이딩 = 재정의 라고 생각하시면 됩니다.   메서드 오버라이딩(Method Overriding)다음 ..

Apple/Swift 2024.08.26

[iOS/Swift] 상속(Inheritance) 이란?

상속(Inheritance)은 객체 지향 프로그래밍에서 중요한 개념으로, 기존 클래스의 속성과 기능을 새로운 클래스가 물려받아 사용하는 것입니다.   먼저 상속을 이해하려면 클래스와 객체의 개념부터 알아야 합니다. 클래스(Class): 어떤 사물이나 개념을 코드로 표현한 '설계도'라고 보시면 됩니다. 예를 들어, 동물(Animal)이라는 클래스를 만들면, 이 클래스는 모든 동물이 가질 공통된 속성(이름, 나이)과 기능(먹기, 잠자기)을 정의합니다.객체(Object): 클래스라는 설계도를 바탕으로 실제로 만들어진 사물입니다. 예를 들어 Dog라는 객체는 Animal 클래스로부터 만들어진 하나의 실체입니다. 즉, 클래스가 설계도라면 객체는 그 설계도로 만들어진 실제 물건입니다.  이제 상속의 개념으로 들어가..

Apple/Swift 2024.08.25

[iOS/Swift] self & super 란?

self객체 자기 자신을 가르키는 키워드입니다. "자기 자신" 또는 "현재 인스턴스"로 해석할 수 있으며클래스나 구조체 내에서 인스턴스 자신을 참조할 때 self를 사용합니다. super상위 클래스(부모 클래스)의 메서드나 속성을 호출할 때 사용하는 키워드입니다."부모" 또는 "상위 클래스" 로 해석할 수 있습니다.현재 클래스의 메서드가 아닌 상위 클래스의 메서드를 호출할 수 있습니다.  조금 더 알아보기 쉽게 표로 정리하자면키워드의미해석사용 시점self현재 인스턴스(자기 자신)를 가리킴"자기 자신", "현재 인스턴스"클래스나 구조체 내에서 인스턴스 자신을 참조할 때super상위 클래스(부모 클래스)를 가리킴"부모", "상위 클래스"상위 클래스의 메서드나 속성을 호출할 때, 현재 클래스의 메서드 대신 사..

Apple/Swift 2024.08.16

[iOS/Swift] 형식 속성(Type Property) 이란?

형식 속성이란?  - 타입 자체에 속하는 속성으로, 모든 인스턴스가 공유합니다. - 인스턴스를 생성하지 않고도 타입 이름을 통해 직접 접근할 수가 있습니다. 형식 속성은 static 키워드를 사용하여 정의됩니다 여기서 "static"이란 타입에 속하는 속성이나 메서드를 정의할 때 사용하는 키워드입니다.  사용하는 이유는?클래스, 구조체, 또는 열거형의 인스턴스를 생성하지 않고도 해당 속성이나 메서드에 접근이 가능하게 하기 위해서입니다. 먼저 인스턴스를 생성해야 하는 인스턴스 속성의 예를 먼저 확인해 보겠습니다. 인스턴스 속성class Dog { var name: String init(name: String) { self.name = name } func b..

Apple/Swift 2024.08.13

[iOS/Swift] 계산 속성(Computed Properties) 이란?

계산 속성(Computed Properties)계산 속성이란, 값을 저장하지 않고 다른 속성이나 로직을 기반으로 동적으로 계산되는 속성입니다. get 접근자를 통해 값을 계산하여 반환하며, set 접근자를 통해 새 값을 설정하고 그에 따라 속성을 수정할 수 있습니다. 추가적으로 계산 속성은 내부적으로 값을 저장하지 않기 때문에, 별도의 메모리 공간을 차지하지 않습니다.  문법계산 속성을 정의하는 일반적인 구조입니다.var propertyName: PropertyType { get { // 값을 계산하여 반환 return computedValue } set(newValue) { // newValue를 사용하여 속성의 값을 설정 // 필요한 ..

Apple/Swift 2024.08.11