본문 바로가기

전체 글48

Observable 사용 방법 <Subject> Observable을 활용하는 방법을 소개하고자 합니다. 1. Subject Subject는 Observer 패턴에 있어서 아주 핵심이 되는 개념이고 이는 UniRx에도 해당이 됩니다. 단어의 뜻처럼 주제 어떠한 주제에 대한 스트림을 흘릴 것이냐?를 정의하는 부분입니다. Subject는 IObserver와 IObservable 두 가지를 구현하는 객체입니다. 구독을 등록한 Observer에게 메시지 발행 타이밍에 브로드 캐스트 방식으로 알립니다. 예를 들면 var subject = new Subject(); //1이라는 값을 발행하는 메시지를 보낼거야 subject.OnNext(1); //OnNext를 받으면 디버그 로그에 출력 //OnError를 받으면 에러메시지를 디버그 로그에 출력 //OnCompl.. 2023. 1. 24.
UniRx의 작동 원리(5) 스케쥴러 스케쥴러란? Observable의 메시지의 처리를 언제 어디에서 실행할 것인가를 제어하기 위한 도구 입니다. Observable에서 병렬 처리를 수행하는 경우 어떤 스레드에서 처리할지, 어떤 타이밍에 실행할 것인가를 제어하는 것은 중요합니다. 이러한 처리를 쉽게 해주는 것이 스케쥴러 입니다. UniRx에서는 다음과 같은 스케쥴러를 제공합니다. ImmediateScheduler Scheduler.Immediate 현재 실행중인 스레드에서 즉시 처리 CurrentThreadScheduler Scheduler.CurrentThreadScheduler 일단 큐에 처리를 담았다가 현재 처리하고 있는 스레드에서 순서대로 처리 ThreadPoolScheduler Scheduler.ThreadPoolScheduler .. 2023. 1. 8.
[프로그래머스] 크기가 작은 부분 문자열 문제 설명 숫자로 이루어진 문자열 t와 p가 주어질 때, t에서 p와 길이가 같은 부분문자열 중에서, 이 부분문자열이 나타내는 수가 p가 나타내는 수보다 작거나 같은 것이 나오는 횟수를 return하는 함수 solution을 완성하세요. 예를 들어, t="3141592"이고 p="271" 인 경우, t의 길이가 3인 부분 문자열은 314, 141, 415, 159, 592입니다. 이 문자열이 나타내는 수 중 271보다 작거나 같은 수는 141, 159 2개 입니다. 제한사항 1 ≤ p의 길이 ≤ 18 p의 길이 ≤ t의 길이 ≤ 10,000 t와 p는 숫자로만 이루어진 문자열이며, 0으로 시작하지 않습니다. 제 코드는 아래와 같은데 실수를 한게 있다면 long이 아닌 int로 선언해서 대체 왜 실패가 뜨.. 2023. 1. 1.
UniRx의 작동 원리(4) Observable의 본질 Observable은 생성 방법과 타이밍에 따라 움직임이 다릅니다. 어떤 때에 어떤 행동을 하는지 확실히 알아둘 필요가 있습니다. Subject -> Operator -> Operator Observer 즉, 옵저버와 연결되지 않은 상태 IObservable을 상속 받고 정의한 것만으로는 메시지 전달이 안됩니다. Observable 각 요소를 연결하고 실행하려면 IObserver의 Subscribe()를 연결해줘야 합니다. 따라서 이 상태에서는 메시지를 수신 할 수 없으므로 "연결 확인"이라는 처리가 필요합니다. 이 연결을 확인하는 데 필요한 처리는 Subscribe()의 실행입니다. 예시 var subject = new Subject(); //string을 받으면 현재 + 스페이스 + 입력받은 stri.. 2022. 12. 18.