안녕하세요 Hani입니다. 이번에는 복수의 Observable을 결합시켜주는 operator에 대하여 알아보겠습니다. CombineLatest 가장 마지막에 방출한 item을 결합하여 새로운 item을 만들어내는 combineLatest입니다. 두 source중 하나라도 item이 없으면 아무런 item도 새로 만들어내지 않습니다. 두 source가 전부 complete되어야 Observable이 complete되는군여 🔥 Merge source들이 방출하는 item을 시간 순서대로 병합시켜주는 merge입니다. 두 source가 전부 complete되어야 Observable이 complete됩니다. Concat merge와 비슷하지만 Observable에만 적용할 수 있는 concat입니다. 한 Obs..
안녕하세요 Hani입니다. 이번엔 Observable의 item을 변환시켜주는 Operator에 대하여 알아보겠습니다. 🔥🔥 Buffer Observable의 item을 일정 개수 묶어서 버퍼에 저장한 후, 방출하도록 만드는 Operator인 Buffer입니다. item이 없는 게 확실해질 때까지 배열에 담기 때문에, 마지막엔 빈 배열을 방출하는 것을 볼 수 있습니다. range처럼 데이터가 이미 Observable에 있는 경우는 곧바로 출력이 되지만 interval같이 일정 시간 간격으로 들어오는 item은 timeSpan마다 최대 count만큼 배열에 묶여 방출됩니다. count만큼의 item이 없으면 없는대로 방출합니다. interval이나 buffer가 시간 보장이 안 되는 것 같습니다. 🥺 왜 ..
안녕하세요 Hani입니다. 이번에는 observe, subscribe에 대하여 알아보겠습니다. 코드를 한 번 살펴보죠 🧐 위 코드는 Observable이 생성(generate)되고 소멸(dispose)되기까지의 뼈대입니다. 첫째 줄에 create operator가 등장했는데 이렇게 Observable을 반환하는 operator가 호출됐다고 해서 Observable이 바로 생성되는 것은 아닙니다. 단지 Observable이 어떻게 생성될지 정의한 것뿐입니다. 🥺 그럼 map, filter등의 operator를 적용하면 생성되나? 아니 🔥 아니 그럼 언제 Observable이 생성되는데? 😡 그 언제는 바로 subscribe operator가 Observable에 적용될 때, 즉, Observer가 Obse..
안녕하세요 Hani입니다. 이번엔 RxSwift 클로저 강한 순환 참조 및 메모리 누수에 대하여 알아보겠습니다. 실험 방법은..! 버튼을 누르면 해당되는 뷰 컨트롤러가 push되고 Observable이 1만 번 생성됩니다. 그리고 뷰컨을 다시 pop해서 돌아올 거예요. 이때 메모리 누수가 생기는 지 메모리 변화를 보면서 알아보겠습니다. 그럼 시작 🔥 1번 실험 Observable이 종료(onCompleted/onError)되지도 않았고, subscribe이후에 Disposable이 DisposeBag에 들어가지도 않았습니다. 3번 push/pop을 반복한 모습입니다. push했을 때 메모리 사용량이 증가했지만 pop했을 때 로그에 deinit이 찍히지 않았고 메모리 사용량도 감소하지 않았습니다. 요런 모..
안녕하세요 Hani입니다. 오늘은 Subject에 대하여 알아볼 거예요. 간단히.. 정말 간단히 🙏 Subject는 Observable와 Observer의 성격을 둘 다 가지고 있는 놈입니다. 각 역할을 짧게 말하면 Observable은 Observer에게 event를 전달하고, Observer는 Observable을 subscribe하여 들어오는 event에 대한 처리를 합니다. Subject는 Observable와 Observer의 역할을 동시에 수행할 수 있기 때문에, Observer로서 하나 이상의 Observable를 subscribe할 수 있고, Observable로서 event를 전달할 수 있습니다. RxSwift가 제공하는 Subject에는 4가지 종류가 있는데, 하나 씩 알아보겠습니다...
안녕하세요 Hani입니다. 이번엔 Observable의 event중 조건에 맞는 것만 뽑아오는 operator를 알아보겠습니다. 시작 😊 Debounce 특정 시간(x)동안 아무런 item이 추가로 들어오지 않으면, 가장 마지막으로 들어온 item를 방출하는 Debounce입니다. 예를 들면, 버튼을 광클하고 특정 시간이 지나면 마지막 클릭 이벤트만 받아들이게 됩니다. DistinctUntilChanged 기본적으로는 연속적으로 같은 item을 방출하지 않도록 item이 distinct한 Observable을 만들어주는 distinct입니다. item이 distinct하다는 기준을 위와 같이 다르게 설정할 수도 있습니다. ElementAt n번째 item만 방출하는 ElementAt입니다. Filter ..
- Total
- Today
- Yesterday
- HIG
- observeOn
- 네트워크 플로우
- 에드몬드 카프 알고리즘
- 부스트캠프 6기
- mach-o
- 네트워크 유량
- 벨만포드 알고리즘
- rxswift
- CompositionalLayout
- test coverage
- Testable
- 최단경로문제
- State Restoration
- 포드 풀커슨 알고리즘
- WWDC21
- 다익스트라 시간복잡도
- CPU와 Memory
- WWDC17
- 강한 순환 참조
- IOS
- 최대 매칭
- 벨만포드 시간복잡도
- 최단경로 문제
- 최단경로 알고리즘
- 코딩대회
- 컴퓨터 추상화
- MeTal
- WWDC19
- WWDC16
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |