Apple/Swift 14

[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

[iOS/Swift] 저장 속성(Stored Property) 이란? (2/2)

지난번 포스팅에 이어서 저장 속성(Stored Property)을 설명해 보겠습니다. 지난 포스팅은 여기를 참고 해주시면 됩니다. 지연 저장 속성(Lazy Stored Property)지연 저장 속성(Lazy Stored Property)은 객체 지향 프로그래밍에서 필요할 때까지 초기화되지 않는 속성을 의미합니다. 즉, 해당 속성에 처음 접근하는 시점에 값이 계산되고 초기화된 후, 메모리에 저장되어 이후에는 재사용되는 속성입니다.  그렇다면 저장속성과 지연 저장 속성의 차이점은 무엇일까  저장 속성은 인스턴스를 생성할 때, 즉 인스턴스가 초기화되는 시점에 함께 초기화됩니다. 즉, 객체가 생성될 때 모든 저장 속성은 미리 값을 할당받아 준비된 상태로 존재하게 됩니다. 이는 속성이 즉시 사용될 수 있도록 보..

Apple/Swift 2024.08.10

[iOS/Swift] 저장 속성(Stored Property) 이란? (1/2)

저장 속성(Stored Property)이란Swift에서 클래스나 구조체의 인스턴스 데이터를 "저장"하는 속성을 의미합니다. 이를 통해 인스턴스를 생성할 때 데이터를 초기화할 수 있으며, 이후에 해당  속성의 값을 읽거나 수정할 수 있습니다. 저장 속성은 인스턴스의 상태를 유지하고, 객체의 특성을 정의하는 데 중요한 역할을 합니다.  저장 속성에는 크게 세 가지 종류가 있습니다.1. 변수 저장 속성2. 상수 저장 속성3. 지연 저장 속성각 속성의 특징을 살펴보겠습니다. 변수 저장 속성 (Variable Stored Property), 상수 저장 속성 (Constant Stored Property)변수 저장 속성은 var 키워드를 사용하여 정의된 속성으로, 인스턴스가 생성된 후에도 언제든 값을 변경할 수 ..

Apple/Swift 2024.08.02

[iOS/Swift] 값 형식(Value Types), 참조 형식(Reference Types) 이란?

Swift에서 값 형식으로 분류되는 것은 구조체, 열거형, 튜플이 있고참조 형식으로는 클래스와 클로저가 있습니다. 값 형식은 값을 저장하거나 전달할 때 새로운 복사본을 만들고참조 형식은 복사본 없이 참조만 전달하게 됩니다. 이론만 보면 어려우니 각 형식의 대표적인 문법 구조체와 클래스로 코드를 확인해 보자면 값 형식(Value Type)struct Point { var x: Int var y: Int}var point1 = Point(x: 10, y: 20)var point2 = point1 // point1을 복사하여 point2 생성point2.x = 30 // point2의 x 값 수정print("point1: \(point1.x), point2: \(point2.x)") // 출력: p..

Apple/Swift 2024.07.31