← 모든 글
개발

writable stream note taking

아직 한국어 번역이 없습니다. 영문 원문을 표시합니다.

hmmmm stream is based on the buffer pre requsitories, but compared to the basic knowledge, this stream in real code base is quite managing many different concepts of javascript language itself. I was struggling to understand the concepts, got the help from kind AI answers but still, I think this kind of note taking and aggregate? conclude? the learnings are important steps to aim the purpose of this educational sessions. 그래서 내가 하고 싶은 말은 일단 적고 정리하고 이해하고, 질문하고 대답을 듣고 다시 생각해보는 이런 일련의 과정들이 낭비가 아니라는 것이다.

writable stream

  • interal buffer : ram
  • garbage collector가 개입해서 메모리를 회수
  • node.js의 기본 내부 버퍼는 1kb입니다.
  • writable high water mark는 파이프라인에서 수위를 알려주는 선
  • 16kb = 16 * 1024 bytes = 16384bytes
  • writableLength 현재 쓰기를 위해 채워진 길이: 실시간으로 얼마나 찼는지 보여주는 역할
  • createWriteStream 은 16kb 버퍼 파이프 생성
  • 16kb라는 건 단순히 저 정도가 차면 전달하는 상자가 아니라 초과 순간을 감지하는 방어시스템에 가깝다.
  • stream.write가 초과를 감지한 순간 false를 반환하고, back pressure발생
  • 데이터 유실 및 메모리 초과할당을 근본적으로 방지를 할 수 있다.

node.js docs

  • drain 스트림이 보내는 완료 시그널
  • 드레인 이벤트 감지 시점에 데이터 붓기를 재개
  • new Promise는 리졸브 이전에 영원히 대기
  • resolve는 js 엔진이 promise를 생성할 때 만들어 두는 상태완료 스위치
  • POSIX: 모든 것은 파일이다. unix계열 운영체제가 지켜야 할 공통의 약속
  • 메모리를 쪼개 쓰는 단위를 paging이라고 한다.
  • IPC Inter prpcess communication
  • 네트워크 통신의 nagle 알고리즘 cork uncork와 연관: 자잘한 걸 모았다가 한꺼번에 보내는 방식

소감

하여튼 그래서 이걸 정리하고 이해하고 질문하고 다시 질문하고 설명을 읽어보고 들어보고 내 식대로 정리하고 물어보고 무한 반복을 하다보니 나에게서 개념이 생겨나기는 커녕 더 헷갈려