inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

Combine - iOS의 Reactive Programming(2025)

3-3 Stream이란?

merge 오퍼레이터 질문

해결된 질문

209

gree

작성한 질문수 1

0

안녕하세요.

stream은 시간이 지남에 따라 변하는 어떤 상태로 이해했는데요.

publisher1과 publisher2에서의 stream을 각 stream1, stream2라고 했을때 시간이 지남에 따라 동시에 상태가 변하면 해당 상태는 merge 오퍼레이터에서 방출은 어떻게 처리하나요?

 

[동시가 아닌 경우]

-1-2-3-

--4--5--6--

-> 1-4-2-5-3-6

 

[동시인 경우]

-1-2-3-

-4-5-6-

-> ?????

ios swift combine rxswift

답변 2

0

gree

음 물리적 시간이 같은 경우는 있을거 같은데 말씀하신 0.0000001초의 오차인 경우 순서를 정하는것도 좀 애매하네요...

API 호출에 대한 비동기 퍼블리셔가 2개인 경우 정확히 물리적인 시간이 같은 동시인 경우가 분명히 있을거 같습니다.(없으면 race condition 같은 상황도 발생하지 않겠죠)

마찬가지로 Merge를 해서 방출해야하는 시점에서, 방출 상태에 대한 리소스에 접근하려는 경쟁 상태는 분명히 올것 같습니다.

좀 더 찾아봐야겠어요. 답변 감사합니다!

1

밤낮 코딩

안녕하세요 cocoaa님!

race condition 같은 경우는 완전 동시에 접근해서 생긴다기 보다는

1개의 쓰레드가 어떤 공유자원(변수)에 접근 중일때 다른 쓰레드가 또 접근해서

수정하는 경우, 실행할 때마다 결과가 일정하지 않는 것이라고 알고 있습니다.

 

여기서 말하는 동시 접근은 완전히 물리적으로 같은 타이밍에 접근한다기 보다는

한 쓰레드가 접근 중일때 다른 쓰레드가 접근 함을 의미합니다.

먼저 접근한 쓰레드가 해당 공유 자원을 계속 수정중일때 다른 쓰레드에서 나중에 접근함을 의미하죠.

 

말씀하신 API호출도 2개의 비동기 작업이 요청되었다가 결과를 받는 타이밍도 아마 시간 차이가 있을텐데요. 만약 두개의 결과를 merge한다고 하면 그 시간 차이에 따라 순서가 결정된다고 보시면 됩니다.

 

1

gree

엇 제가 race condition에 대한 개념을 잘 이해하고 있지 못했네요.

음 정말로 물리적인 시간이 같다고 하더라도 뭔가 OS 스케줄러에 의한 조금의 시간차이는 발생할거 같네요.

단순히 어? 동시에 방출되면 어떻게 되는거지하는 생각에 머리속이 복잡해져 버렸던거 같습니다.

답변 감사합니다!

1

밤낮 코딩

"음 정말로 물리적인 시간이 같다고 하더라도 뭔가 OS 스케줄러에 의한 조금의 시간차이는 발생할거 같네요."

정확합니다~!

감사합니다

0

밤낮 코딩

안녕하세요

동시라곤 하지만 그 입력이 0.0000001초의 차이가 있을텐데요

그 순서에 따라 merge된 다운스트림으로 보내집니다

아주 조금이라도 먼저 방출된 값이 다운스트림에 먼저 보내진다고 생각하시면 됩니다!

Static 선언 시 에러 발생

0

38

1

클로저의 형태로 만들다

0

43

1

Function Types Error

0

34

1

안드로이드 기기 실행 오류

0

43

2

수강연장 가능할까요...

0

53

2

강의에서 사용된 안드로이드 스튜디오 버전을 알고싶어요.

0

56

2

SwiftData 미리보기 미적용

0

53

2

중괄호와 함수

0

56

2

기본 뷰 디자인이 강사님과 다릅니다.

0

52

2

이미지 2x, 3x 질문

0

40

2

강의를 다 듣고난 후

0

62

2

android crud중 c 영상이 12초만 있는 잘린 영상이에요.

0

64

2

수강 기간 연장 문의

0

64

1

수강연장부탁드려도될까요..

0

80

2

Combine Playground 에서 실행 시

0

92

2

70강 - 글로벌 액터로 격리된 Protocol 을 extension 에서 conform 시 타입 본체의 격리 수준 질문

0

74

1

searchable이 화면 하단에 위치해요

0

92

2

Drawing Cycle 관련 질문

0

92

1

앱 제작 시 주로 코드로 작성하시는 이유가 있을까요?

0

124

2

델리게이트 패턴 관련 질문

0

94

2

ios 애드몹 광고

0

196

2

강의자료 문의

0

87

2

Swift Concurrency 강의 예정에 있으신지 해서 문의드립니다.

1

117

2

zip 오퍼레이터 설명하는 부분에서 강의가 짤렸습니다.

1

248

5