# Traits

7개의 포스트
post-thumbnail

[Swift] Design Pattern : Traits

지난 달 사내 개발자 세미나에서 프론트엔드 개발자 분이 Mixin이라는 디자인 패턴을 소개를 해주셨다. Mixin Pattern은 객체 객체 프로그래밍에서 코드 재생성 및 모듈성을 증가시키는 디자인 패턴이다. Mixin은 클래스에서 다중 상속과 stored property를 통해 기능을 확장하는 방법인데, Swift의 경우 다중 상속을 지원하지 않기 때문에 Mixin과 유사한 Traits을 정리하고자 한다. Mixin과 Traits 주된 개념은 특정 클래스에 어떤 기능이 필요할 때, 이 기능을 interface로 정의하여 해당 interface만 준수하면 바로 기능을 사용할 수 있도록 하는 것이다. 이를 통해 코드의 재사용성을 높이고 다중 상속의 모호성 문제(상속이 깊어질 수록 복잡도 증가)를 해결한다. 최종적으로 flatten the inheritance hierarchy를 준수하기 위함이다. 아래의 예시 이미지로 파악할 수 있다. Mixin과 Traits을 사용

2023년 5월 29일
·
0개의 댓글
·
post-thumbnail

[RxSwift] RxCocoa traits - Driver

✨Driver > This is the most elaborate trait. Its intention is to provide an intuitive way to write reactive code in the UI layer, or for any case where you want to model a stream of data Driving your application. error를 방출하지 않습니다. error가 발생하면 애플리케이션이 사용자의 input에 반응하지 않습니다.(like operating system drivers) main scheduler에서 observe합니다. UI element들은 thread safe하지 않음으로 main thread에서 observe되야

2023년 3월 10일
·
0개의 댓글
·
post-thumbnail

[RxSwift]RxSwift Traits

Traits help communicate and ensure observable sequence properties across interface boundaries, as well as provide contextual meaning, syntactical sugar and target more specific use-cases when compared to a raw Observable, which could be used in any context. For that reason, Traits are entirely optional. You are free to use raw Observable sequences everywhere in your program as all core RxSwift/RxCocoa APIs support them. Trait는 모든 상황에서 사용가능한 Observable과 비교해서 contextual meaning, syntactic

2023년 3월 10일
·
0개의 댓글
·
post-thumbnail

[RxSwift] Single, Maybe, Completable 알아보자

Single, Maybe, Completable을 알아보도록 하자! Single = succes 이벤트 또는 error 이벤트를 한번만 방출하는 Observable // 이때 seucces 이벤트는 우리가 사용해왔던 onNext와 onComplete를 합친 것과 같습니다 사용 예)Single은 주로 사진을 다운로드하는데 사진을 저장했거나 사진이 저장이 안됐을 경우 등 됐다 안됐다라고 분별이 가능할 경우 사용된다(single은 succes와 error만을 가지고 있습니다) Maybe는 Single과 비슷하지만 차이점은 성공적으로 되더라도 아무것도 방출하지 않는 completed을 포함한다 (때문에 가지고 있는 요소는 completed, error, succes를 가지고 있습니다 Completable은 두가지 요소를 가지고 있습니다 completed와 error 이제 succes가 없기 때문에 역시 출력하는 값이

2022년 9월 23일
·
1개의 댓글
·

[RxSwift] Traits

2022/01/15 CMC iOS Conference 자료 수익형 앱 런칭 동아리 CMC 9기로 활동하며, iOS Conference Day에 발표로 진행하였던 RxSwift Traits에 관한 내용이에요. 조금 급하게 준비하느라 부연 설명이 부족하여 추후 한번 다시 Traits에 관해 정리를 해야겠다는 생각이 듭니다! 그래도 다른 iOS 분들이 투표를 많이 해주셨는지 부상도 받았습니다:) RxSwift 비동기 프로그래밍을 관찰 가능한 흐름으로 지원해주는 API. 옵저버 패턴과 이터레이터 패턴 그리고 함수형 프로그래밍을 조합한 반응형 프레임워크. RxSwift을 사용하지 않은 경우는 여러 쓰레드를 넘나 들고 클로저를 넘겨서 이벤트를 처리하기 때문에, 가독성도 좋지 않고 한 번에 코드를 이해하기 힘들지만 이런 현상을 해결할 수 있다. 코드가 깔끔해진다. 사용자 컨트롤 조작 IBAction 키보드 조작 감지 Notifi

2022년 6월 2일
·
0개의 댓글
·

[RxSwift] 3.Traits

RxSwift Traits Event를 방출하면 sequence가 종료된다. element가 방출되면, .completed가 자동으로 방출된다. 즉, dispose 된다. Single .success(value) 혹은 .error 이벤트만 방출할 수 있다. Completable .completed 혹은 .error만 방출하며, 값을 방출할 수 없다. Maybe success(value) 혹은 .completed 혹은 .error 를 방출한다. RxCocoa Traits Driver .error를 방출하지 않는다. Observe가 Main scheduler에서 일어난다. Side Effect를 공유한다. (.share(replay: 1, scope: .whileConnected)) 의도된 UseCase는 어플리케이션을 Drive하는 시퀀스를 모

2022년 1월 9일
·
0개의 댓글
·
post-thumbnail

[iOS] RxSwift Operator, Single, Completable, Maybe

📕Operators란? RxSwift에서 Operator(연산자)는 Observable을 다루는 메소드들을 통칭하는 용어입니다. 쉽게 Observable을 생성하고, 변형하고, 합치는 등 다양한 연산을 할 수 있도록 도와주는 역할을 합니다. Operators의 종류는 상당히 많아서, 주로 많이 사용되는 4가지를 뽑아보면 다음과 같습니다. 📕주요 Operators 📌just 하나의 Element를 Observable로 만드는 역할을 한다. 코드 예시 출력 결과 📌from array, d

2021년 6월 23일
·
1개의 댓글
·