보일러 누수 잡기 (2022-03-21, 내일 확인해보자)

Garbage Collection

  • #garbage-collection
  • Puppeteer 에서 각 Class가 return 하는 객체에 대해서 알고자 함
  • 그중 JSHandle 이라는 놈이 있음
  • 설명에 다음과 같은 문구가 나옴

    JSHandle prevents the referenced JavaScript object from garbage collection unless the handle is disposed.

    • 해석하자면 폐기된 handle이 아니라면, JSHandle은 참조된 JavaScript 객체가 garbage collection 되지 않도록 해준다 정도인데..
  • JavaScript에서 Garbage Collection의 의미를 정확히 알고자 다음 링크를 참조함 . Memory_Management, mdn
    • 위 링크에서 코드 상 주석으로 다음과 같은 내용이 있다
      1
      2
      3
      4
      5
      
      var s = 'azerty';
      var s2 = s.substr(0, 3); // s2 is a new string
      // Since strings are immutable values,
      // JavasScript may decide to not allocate memory,
      // but just store the [0, 3] range.
      
    • immutable 하기 때문에 메모리를 할당하지 않는 다는 것이 잘 이해가 안되어 구글링 해보니…
    • 다음과 같은 링크를 발견했다 Immutable and mutable variables, JuliaCookBook
      • 꽤 자세하고 이해하기 쉬운 설명이라 감이 좀 온것 같다. 다만 코드가 Fortran 베이스라서 아쉬움
      • 차이점
        • mutable 객체는 ‘heap’(느린 메모리)에 주소를 가지고 저장되며
        • immutable 객체는 precess cache나 stack (빠른 메모리)에 별다른 주소없이 저장된다
      • 위 내용을 정리해서 포스팅을 작성해보자
  • 그 외 찾아본 링크

Node.js에서 환경변수 다루기

TypeScrit bootstrap

  • create-react-app 처럼 typescript 프로젝트를 만들어 주는 앱을 찾아봤다
  • 우선 TypeScript 공식 홈에 Start a New Project 페이지가 있다.
    • 주소가 https://www.typescriptlang.org/docs/bootstrap인데.. bootstrap이 “Start a New Project”의 동의어 처럼 쓰이는건지 궁금
    • 우선 처음 나오는 tsup은 TypeScript 번들러이다.
      • 모듈 번들러를 왜 쓰는지 궁금하면 요기를 참조. Module Bundling, freeCodeCamp
      • JavaScript용으로 유명한 것은.. webpack, rollup 등이 있다
      • Bundling은 웹페이지에 script를 등록하려 할 때 필요한데 프로젝트에 따라 꼭 필요하지 않을때도 있을것 같다.
    • 위 bootstrap 페이지 중간쯤 나오는 FoalTS가 약간 create-react-app 같은 느낌이 난다
      • FoalTS의 소개페이지 참조
      • create-react-app과 비슷하기는 한데 직접 만져보니 많이 많이 무겁다
      • 얼마전에 본 2줄짜리 shell script ( kickstart() 였나?) 가 처음엔 좋을것 같다는 생각이 든다

엄재웅 개발자