startWith시퀀스 앞에 값을 추가합니다 concat여러 요소를 합칩니다. concatMap순서를 보장하며 합친다 merge요소를 합하여 먼저 들어오는 순으로 방출한다. combineLatest두개 시퀀스 모두 이벤트가 방출되어야 합쳐진 마지막 이벤트를 방출합니다.시퀀스에 변경이 없는 경우 마지막 값을 함께 방출 합니다. zip두 시퀀스 모두 첫 이벤트가 방출 되어야 합쳐진 이벤트를 방출한다A, B 각각 이벤트를 하나씩 발생시킬때 까지 기다린다. withLatestFrom특정 트리거를 방출 했을때 특정… RxSwift – Combining Operator 계속 읽기
[월:] 2021년 04월
RxSwift – Operator
ignoreElementssubscribe시 Completed 와 Error 만 전달됩니다. 주로 작업의 성공과 실패에 대한 정보가 필요할만 사용합니다. elementAt지정된 index의 값만 방출하고 완료됩니다. filter조건에 해당하는 element 만 방출합니다 skip정수로 지정한 수 만큼 스킵하고 이 후 부터의 값을 방출합니다.(index 가 아님) skipWhile조건 값이 true 인 element 는 무시하고 ,false 인 element 부터 방출을 합니다. 조건이 false 인 element 부터는 조건에… RxSwift – Operator 계속 읽기
RxSwift – Observerble
Subject는 observable과 observer의 역할을 모두 할 수 있는 bridge/proxy Observable이라 생각하면 됩니다. 그렇기 때문에 Observable이나 Subject 모두 Subscribe를 할 수 있습니다. 다만 subscribe의 차이가 있다면 Subject는 multicast방식이기 때문에 여러개의 observer를 subscribe할 수 있습니다. 단순 observable은 unicast방식이기 때문에 observer하나만을 subscribe할 수 있습니다. PublishSubject 초기값이 없다 subscriber는 subscribe한 시점 이 후에 발생되는 이벤트만 전달 받는다 error가 발생하면… RxSwift – Observerble 계속 읽기
RXSwift 기초
Rxswift 란? 함수형 프로그래밍에 반응형 프로그래밍이 더해진 FRP(Functional Reactive Programming)로 프로그래밍을 할 수 있게 합니다. 함수형 프로그래밍 함수형 프로그래밍은 선언형 프로그래밍으로 어떻게가 아닌 무엇을 정의합니다. 목적 위주로 기술하며, 데이터의 입력이 주어지고 데이터의 흐름을 추상적으로 정의하는 방식 입니다. 객체 지향(object-oriented)은 대부분의 프로그래밍에서 필수적이었습니다. 코드는 프로그램에 수행 할 작업을 알려주고 변경 사항을 수신하는 여러 가지 방법이 있습니다.… RXSwift 기초 계속 읽기
OOP 와 POP
OOP – Object Oriented Programming객체 지향 프로그래밍 어플리케이션을 구성하는 요소들을 객체로 바라보고, 객체들을 유기적으로 연결하여 프로그래밍 하는 것을 말합니다.코드의 재사용성과 중복제거가 가장 큰 목적입니다. OOP 특징 추상화(Abstraction) 추상화란? 객체들의 공통적인 부분을 뽑아내서 구현하는것을 의미합니다. 캡슐화(Encapsulation) 객체의 프로퍼티 및 메서드를 외부에 노출하지 않고 감춘다는 의미 입니다. 상속성 (EInheritance) 하나의 클래스의 특징(부모 클래스)을 다른 클래스가 물려받아 그… OOP 와 POP 계속 읽기
상속 (Inheritance)
클래스는 다른 클래스에서 메서드, 속성 및 기타 특성을 상속 할 수 있습니다. 한 클래스가 다른 클래스에서 상속 될 때 상속하는 클래스를 하위 클래스라고하고 상속 된 클래스를 수퍼 클래스라고합니다. 상속은 Swift의 다른 유형과 클래스를 구별하는 기본적인 동작입니다. Swift의 클래스는 수퍼 클래스에 속하는 메서드, 속성 및 첨자를 호출하고 액세스 할 수 있으며 해당 메서드, 속성 및 첨자의… 상속 (Inheritance) 계속 읽기
메서드 (Methods)
메서드는 특정 유형과 관련된 함수입니다. 클래스, 구조체 및 열거형은 모두 지정된 유형의 인스턴스 작업을 위한 특정 작업 및 기능을 캡슐화하는 인스턴스 메서드를 정의 할 수 있습니다. 클래스, 구조체 및 열거형은 유형 자체와 연관된 유형 메소드를 정의 할 수도 있습니다. 형식 메서드는 Objective-C의 클래스 메서드와 유사합니다. 구조체와 열거형이 Swift에서 메소드를 정의를 할 수 있다는 사실은 C… 메서드 (Methods) 계속 읽기
접근자 (Access Control)
접근자는 다른 소스 파일 및 모듈의 코드에서 코드 일부에 대한 액세스를 제한합니다. 이 기능을 사용하면 코드의 구현 세부 정보를 숨기고 해당 코드에 액세스하고 사용할 수있는 기본 인터페이스를 지정할 수 있습니다. 특정 액세스 수준을 개별 유형 (클래스, 구조체 및 열거형)과 해당 유형에 속하는 프로퍼티, 메서드, 이니셜 라이저 및 첨자에 할당 할 수 있습니다. 프로토콜은 전역 상수,… 접근자 (Access Control) 계속 읽기
클로져 (Closures)
클로저는 코드에서 전달 및 사용할 수 있는 자체 포함 된 기능 블록입니다. Swift의 클로저는 C 및 Objective-C의 블록과 다른 프로그래밍 언어의 람다와 유사합니다. 클로저는 정의된 컨텍스트에서 모든 상수 및 변수에 대한 참조를 캡처하고 저장할 수 있습니다. 이것은 그 상수와 변수를 닫는 것으로 알려져 있습니다.. Swift는 캡처(capturing)의 모든 메모리 관리를 처리합니다. NOTE캡처 개념에 익숙하지 않아도 걱정하지… 클로져 (Closures) 계속 읽기
초기화 (Initialization)
초기화는 사용 할 클래스, 구조체 또는 열거형의 인스턴스를 생성하기전 준비하는 프로세스입니다. 이 프로세스에는 해당 인스턴스에 저장된 각 프로퍼티의 초기 값을 설정하고 새 인스턴스를 사용할 준비가 되기 전에 필요한 다른 설정 또는 초기화를 수행하는 작업이 포함됩니다. 특정 유형의 새 인스턴스를 만들기 위해 호출 할 수 있는 특수 메서드와 같은 이니셜 라이저를 정의하여 이 초기화 프로세스를 구현합니다.… 초기화 (Initialization) 계속 읽기
고차함수 (Higher Order Functions)
고차 함수는 하나 이상의 함수를 인자로 사용하거나 그 결과로 함수를 반환하는 함수입니다. Swift의 고차함수는 forEach, map, CompactMap, flatMap, filter, reduce, sort 및 sorted 가 있습니다. ForEach forEach는 배열의 모든 요소를 반복하고 반환값이 없습니다. “forEach”는 “for in”처럼 작동하지만 기본적인 차이점은 break 및 continue 문을 사용하여 forEach의 클로저를 종료 할 수 없다는 것입니다. map map은 배열의 모든… 고차함수 (Higher Order Functions) 계속 읽기
기본 연산자 (Basic Operators)
연산자는 값을 확인, 변경 또는 결합하는 데 사용하는 특수 기호 또는 구문입니다. 예를 들어, 더하기 연산자 (+)는 let i = 1 + 2 에서처럼 두 개의 숫자를 더하고, 논리 AND 연산자 (&&)는 마치 enterDoorCode &&가 RetinaScan을 통과 한 것처럼 두 개의 부울 값을 결합합니다. Swift는 C와 같은 언어에서 이미 알고있는 연산자를 지원하고 일반적인 코딩 오류를… 기본 연산자 (Basic Operators) 계속 읽기
Swift 베이직
Swift는 iOS, macOS, watchOS 및 tvOS 앱 개발을위한 새로운 프로그래밍 언어입니다. 그럼에도 불구하고 Swift의 많은 부분은 C 및 Objective-C로 개발 한 경험에서 친숙 하게 느껴질것 입니다. Swift는 정수의 경우 Int, 부동 소수점 값의 경우 Double 및 Float, 부울 값의 경우 Bool, 텍스트 데이터의 경우 String을 포함하여 모든 기본 C 및 Objective-C 유형의 자체 버전을 제공합니다.… Swift 베이직 계속 읽기
옵셔널 (Optional) , 옵셔널 바인딩, 옵셔널 체이닝
Swift에서 옵셔널은 있을 수도 있고 없을 수도(nil) 있는 값을 Optional 로 래핑(싸서) 해서 안전한 프로그래밍을 할 수 있는 방법을 제공합니다. 즉 , 해당 변수의 값이 있을 수도 있고 없을 수도 있는 상태를 나타내며, 두가지 방법으로 옵셔널을 표현 할 수 있습니다. 변수의 유형이 Int? 인 경우와 Optional<Int> 은 같은 표현 방법입니다. 일반적으로 코드를 읽고 쓰기 쉽도록… 옵셔널 (Optional) , 옵셔널 바인딩, 옵셔널 체이닝 계속 읽기
참조 타입과 값 타입 (Reference Types & Value Types)
구조체와 열거형은 값 타입 Structures and Enumerations Are Value Types 값 타입은 변수 또는 상수에 할당되거나 함수에 전달 될 때 값이 복사됩니다. 실제로 이전 장에서 값 타입을 광범위하게 사용했습니다. 실제로 Swift의 모든 기본 유형 (integers, floating-point numbers, Booleans, strings, arrays and dictionaries)은 값 타입이며 구조체로 구현되어있습니다. 모든 구조체와 열거형은 Swift에서 값 타입입니다. 즉, 사용자가 만든… 참조 타입과 값 타입 (Reference Types & Value Types) 계속 읽기
구조체 와 클래스 (Structures and Classes)
구조체와 클래스는 OOP(Object-Oriented Programming)를 위한 필수 요소로 프로그램의 코드를 추상화하기 위해 사용합니다. POP(Procedural Oriented Programming)는 절차 중심 프로그래밍으로. 이 패러다임은 계산을 수행하는 데 필요한 절차 나 기능에 중점을 둡니다. 그것은 데이터보다는 프로세스에 초점을 맞추고 있습니다. 구조체와 클래스는 프로그램 코드의 구성 요소를 유연한 구조로 묶어 표현하고자 할때 사용합니다. 상수(constants), 변수(variables) 및 함수(functions)를 정의하는 데 사용하는 것과… 구조체 와 클래스 (Structures and Classes) 계속 읽기
ARC란? 클로저(Closures)의 순환참조 [Part-3]
Strong Reference Cycles for Closures 이번 장에서는 클로져의 순환참조에 대해 알아보겠습니다.이전장(Part-2)에서는 두 클래스 인스턴스 프로퍼티가 서로에 대한 강한 참조를 보유 할 때 순환참조가 생성되는 방법을 살펴 보았습니다. 또한 이러한 순환참조를 깨기 위해 약한(weak) 참조와 미소유(unowned) 참조를 사용하는 방법도 보았습니다. 클로져의 순환참조를 쉽게 이해하하기 위해서는 [캡쳐 리스트]에 대해 알고 있는 것이 좋습니다. 클래스 인스턴스의 프로퍼티에 클로저를… ARC란? 클로저(Closures)의 순환참조 [Part-3] 계속 읽기
ARC란? 클래스 인스턴스간 순환 참조 [Part-2]
클래스 인스턴스간 강한 순환 참조 (Strong Reference Cycles Between Class Instances) Part-1 에서 ARC원리와 작동방식에대해 알아 보았습니다.ARC는 생성된 인스턴스를 추적하고 더이상 사용하지 않는 인스턴스는 자동으로 메모리에서 해제되게 합니다. 하지만 절대로 메모리에서 해제 되지 않는 메모리 누수(memory leak)의 상황이 발생할수도 있습니다. 이는 두 개 이상의 클래스 인스턴스가 서로 강한참조를 할 경우 발생합니다.이를 강한순환참조*순환참조 라고 합니다. 강한참조… ARC란? 클래스 인스턴스간 순환 참조 [Part-2] 계속 읽기
ARC란? ARC이해하기 [Part-1]
ARC란? Automatic Reference Counting의 약어로서 완전한 ARC는 XCODE 4.2, iOS 5 부터 지원했습니다. 애플 공식 문서에 따르면 ARC는 iOS 4부터 ARCLite 라는 이름으로 추가 되었습니다.Automatic Reference Counting without zeroing weak reference (“ARCLite)즉 weak 키워드를 지원하지 않는 ARC 입니다*약한 참조 제로화 : 객체가 할당 해제를 시작하기 직전에 약한(weak) 참조를한 지역 변수, 인스턴스 변수 및 선언 된… ARC란? ARC이해하기 [Part-1] 계속 읽기