고래를 찾는데 고양이가 나타났다 · 검색창에는 세 개의 시간이 흐른다 · 퀴즈
퀴즈: 마지막 검색은 누구의 것인가
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
고양이 요청 뒤 고래 요청을 보냈고, 고래 응답이 먼저 왔다. 나중에 고양이 응답이 오면 이 실험의 정책은?
- 고래 결과를 유지하고 이전 응답은 반영하지 않는다
- 가장 최근에 도착했으므로 고양이 결과를 반영한다
- 두 요청이 성공했으므로 고양이와 고래를 합친다
- 도착 순서가 바뀌었으므로 두 결과를 모두 지운다
draft와 제출된 request를 분리하는 이유는?
- 입력값은 문자열이고 제출값은 반드시 숫자이기 때문이다
- 입력 중인 문장과 실행 중인 검색의 시점이 다르기 때문이다
- 입력값은 서버에 보내고 제출값은 브라우저에만 두기 때문이다
- 입력값이 길어질수록 React 렌더링이 자동 중단되기 때문이다
idle/loading/success/empty/error 유니온을 썼지만 응답 경합은 남았다. 왜 그런가?
- 유니온 타입은 React 컴포넌트 안에서 사용할 수 없어서다
- loading 상태에서는 TypeScript 검사가 실행되지 않아서다
- 과거와 최신 응답 모두 같은 정상 타입을 가질 수 있어서다
- Promise가 반환한 데이터는 언제나 any로 바뀌기 때문이다
같은 검색어를 사용자가 다시 제출했다. 재시도를 표현하기에 적절한 것은?
- 검색어가 같으면 이전 결과만 읽고 요청은 생략한다
- 검색어 뒤에 공백을 붙여 서버가 다른 값으로 보게 한다
- 기존 결과를 삭제하면 effect가 반드시 다시 실행된다
- 검색어와 별개로 제출 번호가 바뀌도록 상태를 만든다
응답은 정상인데 결과가 0개다. error 대신 empty를 구분하면 무엇이 좋아지는가?
- 검색어 변경과 장애 재시도라는 다음 행동을 구분할 수 있다
- 결과가 없어도 네트워크 재시도를 자동으로 생략할 수 있다
- 서버가 어떤 상태 코드를 보내든 성공으로 바꿀 수 있다
- 모든 검색에서 결과 배열을 타입 정의에서 제거할 수 있다
사건 표의 보냄 1·2, 도착 3·4만으로 알 수 있는 것은?
- 검색 서버가 소비한 CPU 시간을 알 수 있다
- 요청과 응답 사건의 상대적 순서를 알 수 있다
- 모바일 화면의 페인트 지연을 알 수 있다
- 한 요청의 실제 네트워크 왕복 시간을 알 수 있다