inflearn logo
강의

講義

知識共有

Combine - iOSのリアクティブプログラミング(2025)

3-3 Streamとは?

merge 오퍼레이터 질문

解決済みの質問

185

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

nightdaycoding

안녕하세요 cocoaa님!

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

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

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

 

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

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

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

 

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

 

1

gree

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

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

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

답변 감사합니다!

1

nightdaycoding

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

정확합니다~!

감사합니다

0

nightdaycoding

안녕하세요

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

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

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

수강 기간 연장 문의

0

24

1

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

0

39

2

Combine Playground 에서 실행 시

0

53

2

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

0

41

1

searchable이 화면 하단에 위치해요

0

60

2

Drawing Cycle 관련 질문

0

72

1

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

0

94

2

델리게이트 패턴 관련 질문

0

66

2

ios 애드몹 광고

0

125

2

수강 기간 연장 부탁드릴 수 있을까요?

0

60

1

활용 앱 57강 질문입니다.

0

54

1

그래프 그리기 위한 API가 프리미엄 요금제를 구독해야만 가능하다고 합니다...ㅜㅜ

0

75

2

과거 ai없을때 듣고 다시 듣는 중인데

1

54

1

활용 앱 30강 에러 질문입니다

0

63

2

예제 빌드시 The compiler is unable to type-check this expression in reasonable time 에러 발생

0

53

1

TextField 에 Binding 으로 연결하면 에러 발생

0

52

1

xcode 26.2 에서 ReducerOf<Self> 이슈

0

76

2

20강 Task 내부에서 nonisolated async 호출 예제 질문드립니다

0

76

2

19강 Actor 의 동작 관련해 질문드립니다

0

82

2

기초앱 17강 Contraints 설정 질문입니다.

0

67

2

소리가 ㅠㅠ

0

53

2

강의자료 문의

0

69

2

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

1

99

2

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

1

213

5