Subject - Team-HGD/SniffMEET GitHub Wiki
PassThroughSubject VS. CurrentValueSubject
ํน์ ๋ฐ์ดํฐ ๋ฐฐ์ด์ PassThroughSubject๋ฅผ ์ด์ฉํด ๊ตฌ๋ ์์๊ฒ ๊ฐ์ ์ ๋ฌํด์ฃผ๊ณ ์์๋ค.
ํ์ง๋ง, ์ด ๋ฐฉ์์ ์ด๊ธฐ ๊ฐ์ด ์กด์ฌํ์ง ์๊ณ ์๋ก์ด ๊ฐ์ ๊ฐฑ์ (๋ฐฉ์ถ)ํ ๋๋ง ๊ฐ์ ์ ๋ฌํด์ฃผ๊ฒ ๋๋ค.
๋ฐ๋ผ์ ๊ตฌ๋ ๋ฐ๋ ๋ถ๋ถ์์ ํด๋น ๋ฐฐ์ด์ ๋ฏธ๋ฆฌ ์ ์ธ ํด์ฃผ๊ณ ๊ฐ์ด ๊ฐฑ์ ๋ ๊ฒฝ์ฐ ์ ์ฅํด ์ด์ฉํด์ค ์ ์๋ค.
ํ์ง๋ง ๊ฐฑ์ ์์ ์ด ์๋๋ผ ๋ฌด์กฐ๊ฑด ํด๋น ๊ฐ์ ์์์ผํ๊ณ , ๊ทธ๋ก์ธํด ๊ณ์ ๋ฐฐ์ด์ ์๋ก ๋ง๋ค์ด ์ด์ฉํด์ฃผ๊ณ ์์๋ค.
์ด ์ํ๋ก๋ ๋ฌธ์ ๊ฐ ์๋ ์ฝ๋๋ ์๋์์ง๋ง ๋ ์ข์ ๋ฐฉ๋ฒ์ ์๊ฒ๋์ด ์ ๋ฆฌํ๊ฒ ๋์๋ค.
CurrentValueSubject๋ฅผ ์ด์ฉํ๋ฉด ๋ฐ๋ก ํ์ฌ ๊ฐ์ ์ ์ฅํ๊ณ ๊ตฌ๋ ์๋ ์ธ์ ๋ ๊ทธ ๊ฐ์ ์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ฐ๋ก ๋ฐฐ์ด์ ์ ์ธํ์ง ์๊ณ ๋ฐ๋ก ์ ๊ทผํด ๊ฐ์ ์ด์ฉํ ์ ์์๋ค.
struct DefaultMateListPresenterOutput: MateListPresenterOutput {
var mates = CurrentValueSubject<[Mate], Never>([])
var profileImageData = PassthroughSubject<(Int, Data?), Never>()
}
// ์์์ฒ๋ผ ์ ์ธํด๋๊ณ ํ์ํ ์์น์์ ์๋์ฒ๋ผ ๋ฐ๋ก ์ ๊ทผํด ์ด์ฉ ๊ฐ๋ฅํ๋ค.
presenter?.output.mates.value