1. fetch로 데이터 요청
  2. ReadableStream을 청크 단위로 읽기
  3. 읽은 청크를 TextDecoder로 디코딩하기
  4. 디코딩된 텍스트를 병합하기
async function fetchStream() {
  const response = await fetch(url);

  // 1. ReadableStream 가져오기
  const reader = response.body.getReader();
  const decoder = new TextDecoder();
  let buffer = "";

  while (true) {
    // 2. 스트림의 조각(Chunk) 읽기
    const { value, done } = await reader.read();
    if (done) break;

    // 3. 바이트 데이터를 텍스트로 변환
    const str = decoder.decode(value, { stream: true });
    buffer += str
  }
  
  return buffer
}

참고

ReadableStream

TextDecoder