일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 세종대학교
- struct
- WeatherKit
- 반응형
- 딕셔너리
- 대표
- AppStore
- 실습
- 스트럭트
- async
- uikit
- 앱개발
- 토이프로젝트
- swift
- SwiftUI
- forEach
- 기초문법
- ios
- 네트워크
- 디자인 패턴
- MVVM
- 이론
- mvc
- 구름톤 유니브
- collectionview
- 프로토콜
- 학과별커뮤니티
- 협업
- RxSwift
- CS
- Today
- Total
목록Swift 이론 (49)
스윞한 개발자
이번 기초문법 포스팅에서는 디자인패턴 빌더패턴에 대해 정리해보았습니다! 빌더 패턴은 객체 생성 과정을 추상화하고 복잡한 객체를 구축하기 위한 디자인 패턴 중 하나입니다. 이 패턴은 생성자의 매개변수가 많거나 복잡한 경우, 객체 생성을 더 편리하게 만들어주며 가독성을 높일 수 있는 방법을 제공합니다. 주로 복잡한 객체의 생성을 단순화하고, 객체의 속성을 설정하는 과정을 명확하게 하기 위해 사용됩니다. 빌더 패턴은 주로 객체의 생성이 복잡하거나 객체의 속성이 많을 때 사용됩니다. 예를 들어, 사용자 인터페이스를 구성하는 데 사용되는 객체, 데이터베이스 쿼리 객체, 또는 다양한 속성이 있는 그래픽 객체 등이 빌더 패턴을 활용할 수 있는 대표적인 예시입니다. Swift에서는 빌더 패턴을 구현하기 위해 프로토콜과..
이번 포스팅은 멀티트레일링 클로져! 입니다. 멀티트레일링 클로저(Multi-trailing Closure)는 Swift에서 클로저가 함수의 마지막 매개변수로 전달될 때 사용되는 문법적인 편의성을 제공합니다. 이를 사용하면 코드의 가독성을 향상시킬 수 있습니다. 멀티트레일링 클로저는 함수 호출 시 클로저의 중괄호를 괄호 밖으로 빼내어 사용하는 것을 의미합니다. func someFunction(completion: () -> Void) { // 함수 구현 completion() } // 클로저를 전달할 때 중괄호를 괄호 안에 두는 경우 someFunction { // 클로저 구현 } 일반적인 클로저 전달 방법은 위와 같습니다. 하지만 멀티트레일링 클로저를 사용하면 클로저를 괄호 밖으로 뺄 수 있습니다! 멀티..
이번 포스팅에서는 코더블에 대해서 포스팅 해보겠습니다! Codable은 Swift에서 데이터를 쉽게 인코딩(직렬화)하고 디코딩(역직렬화)할 수 있게 해주는 프로토콜입니다. Codable은 Encodable과 Decodable 프로토콜을 함께 묶은 것입니다. 즉, Codable을 채택한 타입은 데이터를 JSON 또는 다른 형식으로 인코딩하거나 디코딩할 수 있습니다! Codable을 채택한 타입은 JSON, Property List 및 다른 형식의 데이터를 쉽게 변환하고 다룰 수 있습니다. Codable을 채택하는 방법: 타입을 Codable로 만들려면 해당 타입의 프로퍼티들이 Encodable 및 Decodable 프로토콜을 따라야 합니다. 1. Encodable Encodable은 타입을 인코딩할 수 있..
이번 포스팅에서는 getter 접근자, setter 설정자에 대해 정리해보았습니다! 접근자/설정자란? Swift에서는 프로퍼티의 값을 읽거나 설정하기 위해 **Getter(접근자)**와 **Setter(설정자)**를 사용합니다. 이들은 프로퍼티의 값을 가져오거나 설정하는데 사용되는 메서드이며, 일반적으로 계산 프로퍼티나 프로퍼티 감시자에서 자주 활용됩니다!! 스위프트에서의 getter와 setter는 프로퍼티 값을 가져오거나 설정하는 데 사용되는 메커니즘입니다. 프로퍼티에 대한 접근을 더 유연하게 제어하고, 값이 설정되거나 가져올 때 추가 작업을 수행할 수 있는 기회를 제공합니다. 1. Getter(접근자) Getter는 프로퍼티의 값을 반환하는 역할을 합니다. Getter를 정의하지 않으면 자동으로 기..
이번 포스팅은 의존성 주입에 대해 정리해볼게요! 의존성 주입(DI)은 소프트웨어 디자인 패턴 중 하나로, 컴포넌트 간의 의존 관계를 느슨하게 결합시키기 위해 사용되는 기법입니다. 의존성(Dependency) 하나의 클래스나 모듈이 다른 클래스나 모듈의 기능을 사용하거나 의존하는 경우 해당 클래스나 모듈은 의존성을 가지고 있습니다. 이러한 의존성은 주로 객체 생성, 데이터 처리, 외부 서비스 액세스 등의 작업을 포함할 수 있습니다. 예를 들어, 클래스 A가 클래스 B의 메서드나 속성을 사용한다면 A는 B에 의존하고 있습니다. 주입(Injection) 의존성을 주입한다는 것은 외부에서 해당 의존성을 제공하여 객체 내부에 직접 생성하는 것이 아니라, 외부에서 주입된 의존성을 사용하도록 하는 것을 의미합니다. ..
class func VS static func 에 대해 알아보겠습니다! 스위프트에서 class func 와 static func 는 둘다 클래스 레벨에서 정의되는 메서드입니다. *두 가지의 주요 차이점은 상속과 관련이 있습니다.* - class func class func 는 클래스 계층 구조에서 메서드가 상속되고 재정의 될 수 있음을 나타냅니다. 서브클래스에서 class func 로 정의된 메러드를 오버라이드하여 새로운 구현을 제공할 수 있습니다. class A { class func someClassFunc() { print("Class A's class func") } } class B: A { override class func someClassFunc() { print("Class B's cla..
차근차근 하나씩 알아보겠습니다! - private(set) 스위프트에서 private(set)은 변수나 속성을 정의할 때 사용하는 액세스 제어자 중 하나입니다. 액세스 제어자는 해당 변수나 속성이 어디서 접근 가능한지를 제어하는 역할을 합니다. private(set)은 두가지 목적을 가지고 있습니다. private(set)으로 선언한 변수는 해당 변수를 선언한 같은 파일 내에서는 읽기와 쓰기가 모두 가능합니다. 즉, 변수에 접근해서 값을 변경하는 것이 가능합니다. **하지만** 다른 파일이나 모듈에서는 해당 변수에 접근해서 값을 변경할 수 없습니다. 즉, 변수의 쓰기 권한은 private이지만, 읽기 권한은 'private(set)'으로 확장된 것입니다. class Example { private(set..
lazy : 이번에는 lazy에 대해 포스팅 해보겠습니다! 스위프트에서 'lazy' 키워드는 속성을 "지연 계산"하는 데 사용됩니다. 해당 속성에 처음으로 접근하는 시점까지 초기화가 지연되어 계산되지 않습니다. 필요한 시점에만 값을 계산하고, 불필요한 자원 낭비를 줄일 수 있습니다. lazy 키워드 특징 1. 초기화 지연 : 'lazy' 키워드로 선언된 속성은 인스턴스 생성 시점이 아니라 속성에 처음으로 접근하는 시점에 초기화됩니다. 2. 계산 속성으로 동작 : 실제로 계산 속성으로 동작합니다. 속성에 접근할 때마다 계산이 실행됩니다. 3. 한 번만 계산 : 처음 한 번만 계산되며, 이후 접근 시에는 이전에 계산된 값이 재사용됩니다. lazy var propertyName: PropertyType = {..