JavaScript

2023 JavaScript Rising Stars

2023년에 가장 별을 많이 받은 프로젝트들에 대해 소개한다. 이직한 회사에 적응한답시고 한동안 기술 아티클 들을 멀리하고 살았더니 생소한 것들이 많이 눈에 띈다. shadcn/ui, Bun (이건 좀 들어봤다), htmx, ... 기술 동향을 훑어보기 좋은 글이다.

33 Concepts Every JavaScript Developer Should Know

33가지 개념에 대한 좋은 글들을 모아놓은 글이다. 생각보다 볼륨이 커서 놀랐다. 여기 있는 글들을 하루에 하나씩 읽기만 해도 몇 달은 읽을 수 있을 것 같다.

React

[번역] 리액트 동시성 이해하기

React 동시성에 관한 간략한 소개글이다. 짧고 굵게 이해하기 좋다.

React Native

React Native’s 2023 Highlights and 2024 Outlook Intro

React Native 가 2023년에 했던 개선 (본문에서는 innovation 이라 칭하는) 이 무엇이 있었는지, 2024년에는 무엇이 있을지를 정리한 글이다.

2023년에는 아래와 같은 개선이 있었다고 한다.

  • 타입스크립트 공식 지원: 이제 RN 의 기본 언어는 자바스크립트가 아니라 타입스크립트가 되었다.
  • Flex box 개선: 개인적으로 이건 그다지 체감하지는 못한 변화다. 버전업을 너무 늦게 해서 그런가.
  • 성능/구조가 개선된 새로운 아키텍쳐 적용: 위와 마찬가지 맥락으로, 우리팀은 버전업을 2023년 연말에 진행해서 그다지 체감할 기회는 없었다.

2024년에는 위 개선들을 계속 진행하면서 개발자 커뮤니티를 활성화시키고 DX 를 개선할 것이라고 하는데, 체감할만한 변화가 있었으면 좋겠다. 여하튼 계속 시도하고 나아가는 모습은 보기 좋다.

UI/UX

A Practical Introduction to Scroll-Driven Animations with CSS scroll() and view()

CSS 의 scroll()view() 를 사용해 스크롤 상태와 애니메이션을 만드는 것에 대한 글. 내용도 상세하고 예제도 좋다. 무엇보다 CSS 만으로 이렇게 고수준의 애니메이션을 깔끔하게 만들 수 있다는 것이 감탄스럽다.

Designing better target sizes

클릭/탭 대상 컴포넌트의 적절한 크기에 대해 이야기한다. 특히 모바일을 대상으로 다양한 컴포넌트와 다양한 상황에 대해 이야기하는데 사용자의 손가락 두께나 탭 하는 방식 등도 고려하는 등 꽤나 깊게 파고든다. 클릭/탭 UX 에 대한 다양한 관점을 확인할 수 있어 좋다.

Algorithm

Tim sort에 대해 알아보자

일부 브라우저 엔진이 Array.sort() 에 Time sort 알고리즘을 쓴다고 들어서 찾아본 글.

Tim sort 는 삽입정렬과 합병정렬을 결합해 최적화한 알고리즘이라고 한다. 인상적인 것은 단순히 시간 복잡도만 고려하는 것이 아니라 참조 지역성까지 고려한다는 것. 참조 지역성은 흔히 우리가 시간 복잡도에서 C 로 표현하는 상수에 영향을 끼치는데, 삽입정렬이 시간 복잡도 면에서는 느린 편이지만 (O(N^2)) 참조 지역성 측면에서 훌륭하기 때문에 작은 배열에서는 시간 복잡도가 낮은 알고리즘들보다 오히려 더 빠를 수 있고, 때문에 합병정렬과 조합하였다는 것이 글의 요지다.

이외에도 합병정렬의 합병 시에 적용된 최적화들에 대해서도 간단히 설명하고 있다. Tim sort 의 기본을 아는 데 좋은 글이다.