본문 바로가기
728x90

분류 전체보기86

[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.
[Swift/휴식맞쥬] DIContainer 사건의 시작현재 휴식맞쥬는 클린아키텍쳐를 기반으로 프로젝트를 진행하고 있습니다. 그렇기 때문에, DI로 네트워크 레이어를 분리하고 객체간의 결합도를 줄이려는 방향으로 개발을 진행하던 중 레이어 및 기능이 분리되면서 초기화 파라미터의 수가 많아졌습니다. 그 결과, 의존성 주입이 복잡해지고, 코드의 가독성이 떨어지게 되었습니다. 그리고 프로젝트의 여러 곳에서 동일한 의존성 객체를 필요로 할 때, 중복으로 객체 생성이 이루어져 불필요한 자원 낭비가 발생했습니다. 이는 메모리 사용량 증가와 성능 저하로 이어질 수 있습니다. 이러한 문제를 마주하여, DIContainer를 통해 해당문제를 해쳐나갈려고합니다. ㅎㅎ 기존의 코드 예제 let usecase = DetailPerfumeUseCase(repo.. 2024. 9. 3.
Entity, DTO, DAO, VO, Repository와 효율과 책임에 대한 고민 고민의 시작요새 프로젝트들 마다 클린 아키텍처를 적용하여, 진행중인데 문뜩 각 레이어에 대한 개념정리와 용어정리 그리고 혼자만의 고민이 있어 정리해야겠다는 생각이 들어, 해당 포스트를 작성한다. 클린 아키텍처(Clean Architecture)에서는 각 레이어가 명확한 책임을 가지고 있으며, 그 책임에 따라 다양한 개념들이 사용됩니다. 클린 아키텍처를 구성하는 핵심 레이어는 크게 Data, Domain, Present 이렇게 3개로 나뉘고 그 다음 UseCase, Interface, Repostiory등이 안에 위치해있습니다..이번에는 제목과 같이 Entity, DTO, DAO, VO, Repository에 대해 적을려고 합니다. 1. EntityEntity는 도메인 모델의 핵심을 이루는 비즈니스 객체... 2024. 8. 20.
728x90
반응형