[Swift] 델리게이트 패턴(Delegate Pattern)
·
Apple/Swift
델리게이트(Delegate) 패턴은 객체 지향 프로그래밍에서 사용하는 디자인 패턴 중 하나로, 특정 객체가 수행해야 할 일을 다른 객체에게 위임하는 방법입니다. 쉽게 말해 A라는 친구가 해야 하는 일을 B 친구에게 넘겨준다고 생각하시면 됩니다. 이것을 위임한다고 표현하고요. 다른 객체로 부터 기능을 위임 받은 객체는 '델리게이트 객체' 라고 하고 아니면 짧게 줄여서 '델리게이트' 라고도 합니다. 델리게이트 패턴으로 구현하는 대표적인 예시로는 테이블 뷰(Table View)가 있습니다. 테이블 뷰는 리스트를 표시할 때 사용하는데 우리가 많이 사용하는 문자앱, 카카오톡을 생각하면 대화방이 쭉 나열 되어 있을 때 그 대화방을 리스트라고 생각하면 됩니다. 쇼핑몰 앱이라고 하면 상품들이 쭉 나열되어 있다고 하면 ..
[Swift] 지연 저장 프로퍼티(Lazy Stored Properties)
·
Apple/Swift
지연 저장 프로퍼티(Lazy Stored Properties) Swift에서 인스턴스를 생성할 때 프로퍼티에 값이 필요 없다면 프로퍼티를 옵셔널로 선언해줄 수 있습니다. 그런데 그것과는 조금 다른 용도로 필요할 때 값이 할당되는 지연 저장 프로퍼티(Lazy Stored Properties)가 있습니다. 또한 지연 저장 프로퍼티는 호출이 있어야 값을 초기화를 하게 되고 lazy라는 키워드를 써서 사용합니다. 지연 저장 프로퍼티는 초기 값이 필요할 때 계산되지 않고, 처음으로 접근될 때만 계산이 됩니다. 지연 저장 프로퍼티는 주로 복잡한 클래스나 구조체를 구현할 때 많이 사용합니다. 지연 저장 프로퍼티를 사용한다면 리소스를 절약하고 성능을 향상시킬 수 있다는 장점이 있습니다. 지연 저장 프로퍼티를 사용하는 ..
[Swift] 함수에 대한 개념과 다양한 예시 소스
·
Apple/Swift
이번 시간에는 Swift에서 함수에 대해서 간단히 알아보고 함수를 어떻게 사용하는지와 예시를 통해서 살펴보도록 하겠습니다. 함수란? 먼저 함수를 사용하려면 함수에 대해서 알아야겠죠? 프로그래밍을 배우신 분이라면 잘 알고 계실 겁니다. 다른 언어와 마찬가지로 Swift에서의 함수도 크게 다른 부분은 없습니다. Swift에서 함수는 특정 작업을 수행하는 코드 블록으로 실행시 데이터를 제공해야 하거나, 함수를 호출한 코드에 작업한 결과를 반환할 수도 있습니다. 함수를 제대로 이해하려면 parameter(매개변수)와 argument(인수)의 차이점에 대해서 알아야 합니다. 쉽게 정리해보자면 함수 정의부의 값을 매개변수, 호출시의 값은 아규먼트라고 부릅니다. func fun(param: Int) { print(p..
[Swift] 제어문과 다양한 예제 정리
·
Apple/Swift
이번 시간에는 예전에 다뤘던 Swift의 제어문에 대해서 좀 더 자세히 알아보고 예제와 함께 정리해보려고 합니다! 예전에 작성하였던 제어문 글은 링크로 남겨둘테니 관심 있으신 분은 같이 보셔도 좋습니다! https://zeromin-code.tistory.com/35 for문 Swift에서 for 반복문은 for-in 반복문이라고도 불립니다. 그 이유는 for문의 구조를 살펴보면 알 수 있습니다. for문의 구조를 살펴보도록 하겠습니다. for 상수명 in 컬렉션 또는 범위 { 실행될 코드 } 이렇게 for in을 사용하기 때문에 for-in문이라고 불립니다. '상수명'은 반복문이 돌면서 컬렉션 또는 범위에서 가져온 항목을 담게 될 상수이며, for문에서 주의해야 할 점은 for문 다음의 실행 코드가 한..
[Swift] 업캐스팅과 다운캐스팅, Swift와 Kotlin 옵셔널의 차이
·
Apple/Swift
이번 시간에는 업캐스팅과 다운캐스팅에 대해서 간단히 알아보고 Swift에서 사용되는 옵셔널이 코틀린에서 사용되는데 두 차이점에 대해서 간단히 표로 정리해보려고 합니다! 업캐스팅(Upcasting)과 다운캐스팅(Downcasting)업캐스팅(Upcasting)과 다운캐스팅(Downcasting)은 프로그래밍에서 주로 객체 지향 언어에서 사용되는 개념입니다. 이 두 용어는 클래스의 계층 구조와 관련이 있으며, 특히 상속 관계에 있는 클래스 사이에서 타입 변환을 할 때 사용됩니다. 먼저 업캐스팅에 대해서 살펴보겠습니다. 업캐스팅 (Upcasting): 업캐스팅은 하위 클래스의 인스턴스를 상위 클래스 타입으로 변환하는 것을 말합니다. 이는 항상 안전하게 수행할 수 있으며, 별도의 검사나 예외 처리가 필요하지 않..
[Swift] 옵셔널과 Nil합병 연산자
·
Apple/Swift
저번 시간의 내용에 이어서 이번 시간에도 옵셔널에 대한 내용을 살펴보고 마무리를 하도록 하겠습니다. 여러 옵셔널 언래핑 저번 글에서는 옵셔널 변수를 언래핑하는 방법에 대해서 공부를 했는데 여러 옵셔널 변수를 한 번에 언래핑하는 방법도 존재하기 때문에 여러 옵셔널을 한 번에 언래핑하는 방법에 대해서 살펴보겠습니다. 여러 옵셔널 변수를 한 번에 언래핑하는 방법은 간단합니다. 바로 콤마를 사용하면 되는데 소스 코드를 보면서 설명하도록 하겠습니다. (*일반적으로 ,는 or 연산자이지만 Swift에서는 ,는 and 연산자이다.) var pet1: String? var pet2: String? pet1 = "cat" pet2 = "dog" if let firstPet = pet1, let secondPet = pe..