본문 바로가기
반응형

전체 글94

[RxSwift] Single + Extension을 통해 로깅 시스템 구현 네트워크 응답의 Raw JSON 데이터를 로깅을 할때, 함수를 통해서 네트워크 요청 클래스에서 진행을 하는데 문뜩 Single로 네트워크 통신을 주로(사실은 다) 처리하니까. Single에 Extension으로 추가해서 조금 더 보기 좋게 할 수 있지 않을까? 해서 해보았습니다.Single Extension 구현import RxSwiftextension PrimitiveSequence where Trait == SingleTrait, Element: DataResponse { /// Raw JSON을 로깅하는 확장 메서드 /// - Parameter tag: 로그 태그 /// - Returns: 로깅이 적용된 Single func logRawJSON(tag: String = "Raw.. 2024. 10. 20.
[Swift] sorted(by:) 메서드와 클로저 sorted(by:) 메서드란?sorted(by:) 메서드는 Swift에서 배열을 특정 기준에 따라 정렬할 때 사용하는 함수입니다.이 메서드는 배열의 요소들을 비교하여 새로운 정렬된 배열을 반환합니다. 원본 배열은 변경되지 않습니다. 기본 sorted()let numbers = [3, 1, 4, 1, 5, 9, 2, 6, 5]let sortedNumbers = numbers.sorted()print(sortedNumbers) // 출력: [1, 1, 2, 3, 4, 5, 5, 6, 9]sorted() 메서드는 배열을 오름차순으로 정렬합니다. 하지만, sorted(by:) 메서드를 사용하면 커스텀 정렬 기준을 제공할 수 있습니다. sorted(by:)의 시그니처func sorted(by areInIncre.. 2024. 10. 13.
[RxSwift] PrimitiveSequenceType PrimitiveSequenceType이란?PrimitiveSequenceType은 RxSwift에서 제공하는 프로토콜로, 기본적인 시퀀스 타입을 정의합니다. 단일한 요소 또는 이벤트를 처리하는 시퀀스로, Single, Maybe, Completable 세 가지 타입이 있습니다. PrimitiveSequenceType의 종류와 사용 방법1. SingleSingle은 하나의 요소 또는 에러를 방출하고 종료되는 시퀀스입니다. 주로 네트워크 요청이나 데이터베이스 조회 등 한 번의 결과를 필요로 하는 작업에 사용됩니다.성공 이벤트: 단일 요소를 방출하고 완료실패 이벤트: 에러 방출예제 코드:func fetchUserProfile(userID: String) -> Single { return Single.c.. 2024. 9. 30.
[iOS/Combine] Combine의 Publisher(Just, Sequence, Future, Fail, Empty, Deferred) Combine의 핵심 구성 요소는 Publisher와 Subscriber로, Publisher는 데이터를 발행하고 Subscriber는 이를 구독하여 처리합니다. PublisherCombine의 핵심 프로토콜로, 데이터 스트림을 생성하고 구독자에게 전달하는 역할Publisher는 타입을 가집니다:Output: 발행하는 데이터의 타입Failure: 오류의 타입JustJust는 단일 값을 발행하고 완료하는 가장 간단한 Publisher입니다. 주로 고정된 값을 전달할 때 사용합니다.import Combinelet justPublisher = Just("Hello, Just!")let subscriber = justPublisher.sink( receiveCompletion: { completion in.. 2024. 9. 23.
[RxSwift] Merge와 concat RxSwift의 Merge와 ConcatObservable을 합치는 경우 Merge와 Conact를 사용하는데, 사용하면서도 2개의 연산자에 대한 확실한 차이와 어떤경우에 써야하는지를 정확히 파악하고 있지 못한것 같아, Merge와 Conact를 알아보기로 했습니다 ㅎ.ㅎMerge 연산자merge 연산자는 여러 Observable을 동시에 구독하여 각 Observable에서 방출되는 이벤트를 순서와 상관없이 전달합니다. 즉, 모든 Observable에서 발생하는 이벤트를 병합하여 하나의 Observable로 만들어줍니다.예제 코드:let observable1 = Observable.of(1, 3, 5)let observable2 = Observable.of(2, 4, 6)Observable.merge(o.. 2024. 9. 19.
[Swift] split과 components Swift의 split과 components 비교: 문자열을 나누는 두 가지 방법문자열을 특정 기준으로 나누는 작업이 매우 빈번하게 이루어집니다. 이때 주로 사용되는 두 가지 방법이 있습니다: split 메서드와 components(separatedBy:) 메서드입니다. 이 두 메서드는 기능적으로 비슷하지만, 사용 목적과 반환 값에서 차이가 있습니다 splitfunc split(separator: Character, omittingEmptySubsequences: Bool = true, maxSplits: Int = Int.max) -> [Substring]separator: 나눌 기준이 되는 문자 (Character)omittingEmptySubsequences: 빈 결과를 생략할지 여부 (기본값: t.. 2024. 9. 16.
반응형