읽은 글들 (~24.9.30)
JavaScript
JS Dates Are About to Be Fixed
타임존을 포함하는 Date API 인 Temporal
API 에 대해 소개하는 글.
해당 API 는 아직 proposal 이긴 하지만 stage 3 이니 표준에 포함되는 것 자체는 문제 없을 것 같다.
가장 눈에 띄는 변화는 타임존을 지원하고 타임존에 따라 서머타임도 알아서 고려해 적용해준다는 것. 각 객체끼리 더하고 빼고 비교하고 등등 각종 유틸 메서드를 제공하는데, 이 때도 서머타임을 알아서 고려해 계산해준다고 한다.
이 API 가 출시되었을 때, moment
등의 외부 Date 라이브러리들을 대체할 수 있을지가 궁금하다.
(글 앞부분에 쓸데 없는 잡설이 길어서 ZonedDateTime 섹션부터 읽어도 충분하다.)
[번역] 자바스크립트에서 프로미스를 취소하는 방법
아래 두 API 를 통해 선행된 Promise
/fetch
를 취소(정확히는 무시)하는 로직을 구현해보는 글.
특히 익히 알려진 AbortController
를 통해 재사용성 있는 hook 코드를 작성해나가는 부분이 흥미롭다.
List of mathematical symbols with their JavaScript equivalent.
각종 수학 기호를 자바스크립트로 어떻게 구현하느냐를 정리한 글. 간단히 연산자나 Math
API 를 사용하는 것부터 for
문 등의 문법을 활용해야 하는 것까지 있다. 짧지만 흥미롭다.
TypeScript
infer, never만 보면 두려워지는 당신을 위한 타입 추론 - 기초 타입 이론
수학적 이론을 토대로 타입스크립트의 기초를 설명하는 글.
타입이 집합 등 수학 이론을 기초로 한다는 걸 언뜻 들은 기억이 있는데, 이렇게 수학 용어로 정리된 설명을 보니 새로운 관점에서 보게 되는 것 같다.
하지만 제목을 보면 "타입을 보면 두려워지는 사람"들을 위해 작성한 글일텐데, 타입은 둘째치고 수학적 용어 때문 에 더 두려워지는 현상이 좀 있다.
나처럼 수학과 친하지 않더라도 천천히 차분하게 읽는다면, 읽어볼만한 글이다.
(시리즈라서 후속글도 있는데 이건 다음 기회에 읽는 걸로..)
TypeScript에서의 변성(Variance): 도대체 왜 이렇게 된 거야?
바로 위 글에서 설명한 "타입스크립트의 공변성Covariance 과 반변성Contravariance" 에 대해 좀 더 자세히, 이해하기 쉽게 설명하는 글.
React
[번역] 리액트 컴파일러
React 19 RC 부터 공개된 React 컴파일러에 대해 소개하고 사용법을 설명하는 글. 핵심은 아래와 같다.
- React 컴포넌트와 hook 에 대해, memoization 되지 않은 코드들을 자동으로 적용해 줌
- 아직 베타이며 프로덕션에서의 사용은 권장하지 않음
정식 출시를 기다려봐야겠다.
Using callbacks to achieve better component decoupling in React
부모-자식 컴포넌트 간의 불필요한 결합을 줄이는 내용의 글. 내용 자체는 기초적인 것이지만, 실수하기 쉬운 것이기도 하고 글이 짧기도 해서 가볍게 리마인드 하기에 좋다.
CSS
CSS Grid Areas
CSS 에서, 개인적으로 grid 레이아웃 보다는 flex 레아이웃을 더 선호한다. grid 레이아웃에 대해 자세히 설명한 글이 눈에 띄어서 새삼 그 이유를 곰곰히 생각해보니, flex 가 더 우월해서라기보다는 그냥 flex 를 잘 알고 grid 를 잘 모르기 때문이었던 것 같다. 이 글을 통해 grid 레이아웃에 대해 잘 알게 되 면 생각이 바뀔 수도 있겠다 싶다. (아직 다 못 읽지는 못했다..)
Frontend
(번역) 마우스 포인터 친화적인 하위 메뉴 기능 만들기
드랍다운 메뉴의 하위 메뉴가 열릴 때, 사용자의 마우스 움직임에 따라 적절한 UX 를 제공하는 방법에 관해 공유하는 글.
삼각함수 등 수학적인 이야기도 나오고, 관련된 좋은 글들도 추천해주고 있다.
간단해보이는 UI 기능에도 이처럼 많은 고민과 지식이 들어간다는 것이 놀랍다.
Etc
The secret inside One Million Checkboxes
한 개발자가, 접속하는 모든 사람들이 온라인으로 상태를 공유할 수 있는 백만 개의 체크박스가 있는 웹사이트를 만들었다. 그리고나서 거기에서 생긴 재미있는 경험을 공유한다. 기술적인 글이라기보다는 서비스 운영 경험에 대한 글이다.
특히, 개발자가 의도하지 않았는데 사용자들이 알아서 체크박스를 bit 삼아 일련의 데이터를 삽입해 문자열 혹은 그림으로 보이게끔 만들며 노는 것이 매우 흥미롭다. 역시 사용자는 언제나 개발자의 예측을 뛰어넘는다.
TIL: 8 versions of UUID and when to use them
일반적으로 버전 넘버가 높은 것이 더 좋은 버전 더 안정된 버전이라는 통념과 달리 UUID 는 8개의 버전 각각이 모두 용도가 다르고, 또 각각이 표준에 등록되어 있다고 한다. 글에서는 각 버전의 UUID 의 특징이 무엇이며, 언제 어떤 버전을 사용하면 좋은지 설명한다.
Forbes Marketplace - 숙주를 먹어치우려는 기생 SEO 회사의 진실
Forbes 와의 제휴를 통해 Forbes 상표 사용권을 취득한 Forbes Marketplace 라는 회사가, SEO 를 통해 구글 검색을 장악해 수익을 올리고 있는 것에 관한 글. 글쓴이는 Forbes Marketplace 보다는, 검색 결과를 제대로 관리하지 못해 검색 품질을 떨어트리고 있는 구글을 비판하고 있다.
Progressive Web Apps (PWAs) Phishing
PWA 로 피싱 사이트를 손쉽게 그럴싸하게 만들 수 있음을 경고하는 글. 글에서 직접 만드는 과정을 알려주는데 너무 간단해서 악용될 여지가 커보인다. 여러모로 조심해야겠다.