꼬맹이 녀석의 듀플로 트레인이 뭔가 이상하게 동작한다. 램프도 잘 들어오고, 소리도 잘 나는데, 손으로 밀면 조금 가다가 멈춰 버린다. 블루투스로 연결을 해도 모든 게 다 동작하는데, 움직이는 것만 잘 안 움직인다.

 

어쨌든 서비스 요청을 하려고 콜센터에 전화했더니, 뭔가 질문하고 싶은데 묻지도 땅지지도 않고 그냥 신품 보내준단다. 일주일 정도 기다렸더니 멀리먼 유럽에서 새 제품이 왔고, 고장난 이전 제품은 반납할 필요도 없고 그냥 사용하면 된단다. 

 

문제는 새로 온 것도 똑같은 문제가 생겨서, 이 정도면 뭔가 고장이 아니라 다른 요인이 있는 것 같다는 생각이 든다. 서비스 센터에 다시 콜을 해서, 좀 더 전문적인 서비스를 받고 싶다고 했더니 이메일로 보내란다. 메일 보낸 후 3-4일 후에 온 답장은 더 전문적이긴 하다. 

 

답은 건전지를 다 알카라인 좋은 브랜드 써야 돼. ㅋㅋ ... 일단 충전지 종류들은 1.2V 정도라 안 되는 것 같고, 알카라인으로만 써야 하는 것 같아, 4개다 새로운 알카라인 건전지로 넣어줬더니 잘 동작한다. 

 

 

 


WRITTEN BY
HanDDol
여행이란 건 말이지. 첫 걸음을 내딜 때는 모든 게 낯설고.. 그리고 점점 더 낯선 세상에 익숙해지면서 세상의 모든 곳이 고향처럼 느껴진다. 고향으로 돌아오는 여행의 마지막 걸음에는 나의 고향이 더 이상 익숙한 곳이 아닌 낯선 곳임을 알게 된다.

,

iif가 흔히들 생각하는 conditional statement라고 생각했는데 아니다. 

 

아래 예에서 언뜻 생각하기에는 input is arrived in 출력이 하나만 찍힐 것 같은데, 두 개가 찍힌다. 

iif는 조건문의 실행이 아니라, 리턴된 두 개의 stream 중 subscription만을 할 거냐 말거냐를 결정하는 거다. 

즉, "input is arrived in #1", "input is arrived in #2" 둘 다 찍히게 된다. 

 

import { of, pipe, iif } from 'rxjs';
import { mergeMap } from 'rxjs/operators';

const source$ = of('Input');
const one$ = (x) => {console.log(`${x} is arrived in #1`); return of('One')};
const two$ = (x) => {console.log(`${x} is arrived in #2`); return of('Two')};

source$.pipe(
  mergeMap(v =>
    iif(
      () => v === 'Input',
      one$(v),
      two$(v)
    ))
).subscribe( x => console.log('Output is ' + x ));

WRITTEN BY
HanDDol
여행이란 건 말이지. 첫 걸음을 내딜 때는 모든 게 낯설고.. 그리고 점점 더 낯선 세상에 익숙해지면서 세상의 모든 곳이 고향처럼 느껴진다. 고향으로 돌아오는 여행의 마지막 걸음에는 나의 고향이 더 이상 익숙한 곳이 아닌 낯선 곳임을 알게 된다.

,

Angular 테스팅에서 jest를 사용하는데, Marble Testing을 해야하기에 테스팅 툴을 찾았다. 

 

jasmine-marble 과 비슷하게 jest-marble이 있기에 아무 생각없이 올려서 사용하는데, Time Progression Syntax가 지원이 안 된다. 사용 방법을 찾다가 알게 된 거, jasmine-marble이고 jest-marble이고 간에 모두 rxjs testing 툴을 그냥 Wrapping한 거였다. ㅎㅎ 

 

그냥 rxjs의 기본 testing tool을 사용하면 될 걸 삽질 하고 있었다. 

 

Reference


WRITTEN BY
HanDDol
여행이란 건 말이지. 첫 걸음을 내딜 때는 모든 게 낯설고.. 그리고 점점 더 낯선 세상에 익숙해지면서 세상의 모든 곳이 고향처럼 느껴진다. 고향으로 돌아오는 여행의 마지막 걸음에는 나의 고향이 더 이상 익숙한 곳이 아닌 낯선 곳임을 알게 된다.

,