OTW for FE

Memoization 단계별로 구현하기

2024. 6. 19.

Memoization 단계별로 구현하기

https://dev.to/thekashey/weak-memoization-in-javascript-4po6

심윤섭: 클로저, This, 그리고 Weakmap을 소개하면서 reselect의 구현을 단계적으로 다가가는 글입니다. JS의 중요한 개념들을 친절히 설명하면서 다가가기 때문에 꼭 읽어보시면 좋습니다. 번외로 WeakMap이 예시로 들은 라이브러리 외에도 memoization을 위해 많이 쓰이고 있습니다(ex. Jotai).

HTMX의 단순함

htmx: Simplicity in an Age of Complicated Solutions
In an age of complicated front-end solutions, is there a simpler way of doing things? Spoiler alert: there is.

심윤섭: 저자는 은탄환은 없다라는 것을 말하면서도 간단한 UI를 만들기 위해 자바스크립트를 너무 많이 사용한다는 것을 동시에 말합니다. 그러면서 간단한 UI를 만든다면 htmx정도면 괜찮다는 주장을 펼치는 글입니다. 하지만 JS 프레임워크에 익숙해진 개발자들과 많은 인터렉션을 원하는 요구사항에 맞춰서 HTMX을 많이 쓸 수 있을지는 의문이 드네요.

Valibot 0.31 출시

Valibot v0.31.0 is finally available | Valibot
After 3 months of hard work I am happy to announce that Valibot v0.31.0 is finally available.

심윤섭: zod가 출시되면서 schema 검증 도구로서 많은 사람들에게 이용되었습니다. Valibot은 zod와 비슷한 구조를 이어가면서 Tree shaking, 작은 번들사이즈를 목표로 만들어졌습니다. Valibot은 적은 번들사이즈로 많은 유연성을 목표로 계속 개발하고 있으므로 계속 지켜볼만하다고 생각합니다. 번외로 여러 Schema 검증 도구를 비슷한 인터페이스로 사용할 수 있는 노력이 담겨있는 typeschemastandard-schema도 계속 살펴보면 좋다고 생각합니다.

협업 기능 구현을 위한 아키텍쳐

Architectures for Central Server Collaboration - Matthew Weidner

심윤섭: 협업 기능을 구현하기 위해(ex. Google Docs, Notion…) 서버에서 다른 변경사항이 들어왔을 경우 처리하는 방식을 구현한 라이브러리를 많이 사용합니다. 이 글에서는 협업 기능을 구현한 라이브러리들이 어떻게 동작하는지 상세하게 설명합니다. 마지막으로 분산 협업 서버도 소개하고 있어 기존 중앙 서버 처리 방식의 알고리즘과 향후 나아갈 방향을 알기 위해 가볍게 볼만하다고 생각합니다.

출시 주간

Announcing TypeScript 5.5 RC - TypeScript
Astro 4.10 | Astro
Astro 4.10 is out with experimental type-safe environment variables, as well as enhancements to the Container API and Rewrites.
Deno 1.44: Private npm registries, improved Node.js compat, and performance boosts
Deno 1.44 adds support for private npm registries, gRPC connections, improved Node.js compat with initial Next.js support, and significant performance improvements.

TypeScript 5.5에서의 추론 강화, 정규표현식 검사, 선언 파일 지원 강화, 제안단계의 Set 메소드 지원..을 출시할 것이라고 예고하였고, Astro의 환경 변수 검사, 미들웨어 재작성… 기능과 함께 4.10이 출시되었습니다. Deno는 비공개 npm 저장소, Node.js 호환성 지원과 성능 향상을 가진 1.44를 출시했네요.

NodeJS에서 setTimeout 메모리 누수

Your Node is Leaking Memory? setTimeout Could be the Reason | Armin Ronacher's Thoughts and Writings
How node's timeout objects are potential sources of memory leaks.

NodeJS에서 setTimeout이 브라우저와 다르게 객체를 반환하는데, 객체에 closure에 관한 것을 저장하기 때문에 메모리 누수가 있을 수 있다는 글입니다.

파라미터가 여러개일 경우 함수를 합성하는 방법

How to compose JavaScript functions that take multiple parameters (the epic guide)
Function composition is beautiful. It lets us create elegant function pipelines. And when everything lines up, the data flows like maple syrup over pancakes. But what happens when the functions don’t line up? What if some of those functions expect more than one argument? What do we do?

함수형 프로그래밍 개념에 합성이라는 개념을 사용하려면 매개변수가 일정해야하는데, 이를 복합적 데이터구조나 커링을 통해 해결하는 방법을 보여줍니다.

FlatList 성능 최적화하기

Flatlist Rendering Techniques | Andy Devs
A deep dive into different approaches to optimize rendering performance of the FlatList in React Native

React Native에서는 보통 리스트를 보여주기 위해 FlashList를 사용하는데, 사용하지 않을 경우 FlatList를 성능 최적화하는 방법을 설명하는 글입니다.

Vector DB란 무엇인가요?

integrations | Microsoft Learn
Learn which features are available for C#, Python, and Java through integrations.

많은 DB 서비스형 회사에서 Vector DB를 소개하는 김에, Vector DB를 소개하는 글을 가져왔습니다.