swift 문법23 [Swift] RxSwift RxSwift 🖍️ Swift 언어로 작성된 함수형 반응형 프로그래밍을 위한 라이브러리로, 옵저버블 시퀀스와 이벤트 기반 프로그래밍을 간편하게 처리할 수 있도록 지원한다. RxSwift 이란? ReactiveX(Reactive Extensions) 패턴의 Swift 버전으로, Swift 언어로 작성된 반응형 프로그래밍을 위한 라이브러리 RxSwift는 데이터 스트림과 이를 다루는 연산자들을 통해 비동기 및 이벤트 기반 프로그래밍을 지원한다. Observable: 데이터 스트림을 나타내는 타입으로, 데이터의 변화나 이벤트를 방출(emit)한다. Observable은 이벤트 시퀀스를 발생시키는데 사용된다. 이 이벤트는 next, error, completed와 같은 종류가 있다. Observer: Obser.. 2023. 12. 15. [Swift] Combine Combine 🖍️ Swift에서 제공하는 함수형 반응형 프로그래밍을 위한 프레임워크로, 비동기적인 데이터 스트림을 다루고 조작하는데 사용된다. 반응형 프로그래밍이란? 반응형 프로그래밍(Reactive Programming)은 데이터 스트림 또는 데이터의 변화에 따라 코드가 자동으로 반응하는 프로그래밍 패러다임이다. 이 패러다임에서는 데이터의 변경 사항을 감지하고 이에 따라 연속적으로 반응하는 방식으로 프로그램을 작성한다. 반응형 프로그래밍은 다음과 같은 핵심 개념을 포함하고 있다. 1. 데이터 스트림(Data Stream): 이벤트 스트림, 값의 흐름 등과 같이 시간에 따라 연속적으로 발생하는 데이터의 흐름을 나타낸다. 이러한 데이터 스트림은 사용자 입력, 센서 데이터, 외부 API의 응답 등 다양한 .. 2023. 12. 15. [Swift] 제네릭 (Generic) 제네릭 (Generic) 제네릭 💡 제네릭이란? 함수, 타입 및 데이터 구조에 대한 유연하고 추상적인 코드를 작성할 수 있게 해주는 기능 다양한 타입에서 작동하도록 일반화된 코드를 작성할 수 있게 해준다. 제네릭으로 구현한 기능과 타입은 재사용하기도 쉽고, 코드의 중복을 줄일 수 있다. 제네릭을 사용하고자 할 때는 제네릭이 필요한 타입 또는 메서드의 이름 뒤의 화살괄호 기호 사이에 제네릭을 위한 타입 매개변수를 써주어 제네릭을 사용할 것임을 표시한다. 제네릭은 실제 타입 이름을 써주는 대신에 placeholder를 사용한다. [ eg: T, V, U ] placeholder는 타입의 종류를 알려주지 않지만 어떤 타입이라는 것은 알려준다. placeholder의 실제 타입은 함수가 호출되는 순간 결정된다... 2023. 12. 13. [Swift] 확장 (Extension) 확장 확장(Extension) 확장을 이용하여 structure, class, enum, protocol 타입에 새로운 기능을 추가할 수 있다. 기존 타입에 기능을 추가하는 수평 확장하는 개념이다. 확장은 타입에 새로운 기능을 추가할 수는 있지만, 기존에 존재하는 기능을 재정의할 수는 없다. 외부에서 가져온 타입에 내가 원하는 기능을 추가하고자 할 때 확장을 사용할 수 있다. extension 확장할 타입 이름 { //타입에 추가될 새로운 기능 구현 } extension 확장할 타입 이름: 프로토콜1, 프로토콜2, 프로토콜3 { //프로토콜 요구사항 구현 } 확장(Extension)이 가능한 경우와 불가능한 경우 Extension으로 구현 가능한 것들: 새로운 계산된 속성(Computed Property.. 2023. 12. 13. [Swift] 프로토콜 프로토콜 프로토콜 (Protocol) 특정 역할을 하기 위한 메소드, 프로퍼티, 기타 요구사항 등을 정의 해놓은 “규약” 혹은 “약속” class, structure, enum이 프로토콜을 ‘채택’하고 모든 요구사항을 충족하면 프로토콜을 ‘준수’했다고 한다. class, structure, enum이 프로토콜을 채택해서 특정 기능을 실행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있다. 프로토콜은 설계된 조건만 정의를 하고 제시를 할 뿐 스스로 기능을 구현하지 않는다. 프로토콜에서는 이름과 타입 그리고 gettable, settable을 명시한다. 프로퍼티는 항상 var로 선언해야 한다. 메서드를 정의할 때 메서드 이름과 리턴값을 지정할 수 있고, {}(구현 코드)는 적지 않는다. 상속과 유사하다고.. 2023. 12. 13. [Swift] ARC와 메모리 누수 ARC와 메모리 누수 ARC(Automatic Reference Counting) 메모리 관리 기법 중 하나로, 객체나 인스턴스가 참조되는 횟수를 추적하여 메모리에서 해제할 시점을 결정한다. 객체가 생성될 때마다 참조 횟수가 1 증가하고, 해당 객체를 참조하는 다른 객체나 변수가 없어지거나 더 이상 사용되지 않을 때 참조 횟수가 1 감소한다. 참조 횟수가 0이 되면 해당 객체는 메모리에서 해제된다. ARC의 작동 방식 객체 생성: 객체가 생성되면 참조 횟수가 1 증가한다. 객체 참조: 객체를 다른 변수나 상수에 할당하면 해당 객체의 참조 횟수가 1 증가한다. 참조 해제: 객체의 참조가 없어지면(참조하는 변수나 상수가 없거나 **nil**이 할당되면) 참조 횟수가 1 감소한다. Zeroing Weak Re.. 2023. 12. 13. 이전 1 2 3 4 다음