dev-weekly 2021-06-19


CSS, Node

CSS for Web Vitals

웹 접근성을 준수한다면, colour contrast analyser 도 맞춰야 함

https://webaim.org/resources/contrastchecker/

Node

A Visual Guide to Node.js Streams

  • 스트림에 대한 개념을 그림을 이용해서 쉽게 설명한 포스트

Next.js 11 Released

  • Improved Performance - cold startup time
  • webpack5
  • next/script, next/image - <Script />, <Image />
  • CreateReactApp Migration tool(experimental)
  • Nextjs live - 빌드없이 url을 공유하여 다른 사람들과 공동작업

A Beginner’s Guide to the File System Module (fs)

  • fs module 개념, 동기(접미사 Sync)와 비동기, path
  • writeFile, readFile, readdir, unlink, mkdir, rmdir, rename, appendFile

JavaScript

Benchmarking JavaScript Memory Usage

  • 웹브라우저에서의 자바스크립트 메모리에 대하여
  • 웹에서 메모리 할당의 35%는 js, 10%는 DOM
  • 라이브러리(프레임워크)별 초기 메모리 사용량과 그 효율

Quick Bits

https://v8.dev/features/import-assertions

  • json 파일을 import할 때 mime타입에 따라 악성 제공자의 스크립트가 실행될 수 있음

  • 아래와 같이 요청할 경우 타입이 json이 아니면, 권한 상승이 이루어지지 않고 import 실패

    import data from 'https://evil.com/data.json' assert { type: 'json' };
    
  • dynamic import에서도 사용 가능

    const jsonModule = await import('./foo.json', {
      assert: { type: 'json' }
    });
    

https://deno.com/blog/v1.11

  • deno 1.1 릴리즈
  • Official Docker images : alpine, centos, debian (default), distroless, ubuntu
  • stable한 deno lint : eslint보다 100% 빠르다고 함
  • BroadcastChannel : 웹워커간 메시지를 브로드캐스트 하기 위한 브라우저 API 지원

Articles, Opinions & Tutorials

When CSS Isn’t Enough: JavaScript Requirements For Accessible Components

  • CSS Hack을 통해 only CSS로 구현했을 때 발생하는 웹 접근성 이슈들
  • Toolip, Modal, Tab, Carousel, Dropdown Menu

Code & Tools

MathJax 3.2.0: Beautiful Math Rendering in All Browsers

  • 모든 브라우저에서 작동하는 수학 디스플레이 js 엔진

  • 다음과 같이 $$ 사이에 TeX를 입력하면 적용

    $$x = {-b \pm \sqrt{b^2-4ac} \over 2a}.$$
    
  • 웹 폰트, svg 사용을 통한 확대/축소 대응

A Pathfinding Algorithm Visualizer

  • 경로탐색 알고리즘 시각화
  • 클릭, 드래그 등을 통하여 장애물, 가중치 등을 설정가능