Skip to content

Subject

Jinwon Choi edited this page Mar 19, 2025 · 1 revision

PassThroughSubject VS. CurrentValueSubject

특정 데이터 배열을 PassThroughSubject를 이용해 구독자에게 값을 전달해주고 있었다.

하지만, 이 방식은 초기 값이 존재하지 않고 새로운 값을 갱신(방출)할때만 값을 전달해주게 된다.

따라서 구독받는 부분에서 해당 배열을 미리 선언 해주고 값이 갱신될 경우 저장해 이용해줄 수 있다.

하지만 갱신 시점이 아니라 무조건 해당 값을 알아야했고, 그로인해 계속 배열을 새로 만들어 이용해주고 있었다.

이 상태로도 문제가 있는 코드는 아니었지만 더 좋은 방법을 알게되어 정리하게 되었다.

CurrentValueSubject를 이용하면 바로 현재 값을 저장하고 구독자는 언제든 그 값을 알 수 있기 때문에 따로 배열을 선언하지 않고 바로 접근해 값을 이용할 수 있었다.

struct DefaultMateListPresenterOutput: MateListPresenterOutput {
    var mates = CurrentValueSubject<[Mate], Never>([])
    var profileImageData = PassthroughSubject<(Int, Data?), Never>()
}

// 위에처럼 선언해두고 필요한 위치에서 아래처럼 바로 접근해 이용 가능하다.
presenter?.output.mates.value

Welcome to SniffMEET Wiki!

💬 허거덩 팀 규칙

개발 일지

구조
NI, MPC
프로파일링
리팩토링/리디자인
테스트
Supabase

기술 공유

회의록

회의록

트러블 슈팅

발표

💬 허거덩 팀 규칙

Clone this wiki locally