GitHub RSS Feed
Home News About us

React Context API는 사실 많은 렌더링을 야기하지 않는다..?

2025. 5. 21.

이번 호부터는 뉴스레터의 글들을 몇 가지 섹션으로 나누어 제공해 드립니다. 이는 독자님들께서 다양한 정보와 이야기들 사이에서 자신만의 관심사를 발견하고 탐색하는 데 작은 도움이 되었으면 하는 바람에서입니다. 표현 방식이나 다루는 영역은 다를 수 있지만, 모든 글 하나하나에 저희가 발견한 의미 있는 정보와 새로운 관점을 담기 위해 노력했습니다. 어느 부분을 읽으시든 구독자님께 유익한 영감을 드릴 수 있기를 바라며, 저희가 준비한 다양한 이야기들을 찬찬히 살펴보시면 좋겠습니다.

Beyond the Article: 한 걸음 더

React Context API는 사실 많은 렌더링을 야기하지 않는다..?

No, react context is not causing too many renders 🔗

React Context API에서 Provider를 컴포넌트로 감싸서 제공하면 너무 많은 렌더링을 야기하지 않는다는 취지의 글입니다. 하지만 React Context 정말 사용해야 하나요?과 비슷한 결이기도 하지만, 추가로 Provider로 감싸는 것은 물론 set함수(위 setValue)를 다른 Provider로 감싸주어야 set함수만 사용하는 컴포넌트에서 재렌더링이 발생하지 않습니다. 이러한 어려움을 뚫고 사용하는 것보다는 React Context는 상태관리 도구가 아님을 명심하여, 간단하게 사용하려면 use-context-selectorzustand를 사용하는 것을 보통 권장드립니다.

React와 디자인 패턴과 원칙

React Hook Factory 🔗

React Context API를 Factory 패턴을 통해서 더 잘 사용할 수 있게 만드는 간단한 글입니다.

Dependency Inversion in React: Building Truly Testable Components · cekrem.github.io 🔗

React에서 의존성 역전 원칙을 어떻게 사용할 수 있는지 보여주는 간단한 글입니다. 비슷하게, 오픈소스를 만들면서 배운 점들에서 Tanstack Query에서 Inversion of Control을 적용해 어떤 좋은 점이 있었는지를 소개하고, 하나의 함수에 하나의 동작을 의미하는 SRP또한 React에서 컴포넌트할 때 적용해보는 경우도 있으니 참고하면 좋습니다. 하지만 첫번째 글에서도 나오고, 이전의 React와 SOLID 원칙 글에서도 소개했듯이, 과도하게 적용하면 개발자 경험과 유지보수성 모두 잃을 수 있기 때문에 경계해야 합니다.

RSC가 할 수 없는 것.

The Limits of RSC: A Practitioner's Journey 🔗

RSC의 기능으로 Infinity scroll을 구현하기 어렵다는 것을 깨닫고, Tanstack Query로 교체한 과정을 소개한 글입니다.

Client-Side React Rocks 🔗

클라이언트에서만 사용할 수 있는 Context, createPortal API…를 사용해서 때로는 클라이언트에서만 동작하는 로직이 필요할 수 있음을 보여줍니다.

두 글은 모두 RSC가 필요없음을 우리에게 시사해주고, 첫번째 글에서 RSC는 하이브리드 방식으로 일부에서만 사용하는 것이 좋다고 말하는 것처럼, RSC는 모든 경우에 다 필요한 것이 아니기에 필요한 곳을 잘 파악해서 사용해야 합니다. 저번에 소개한 RSC에 대한 글은 선택지를 넓혀주는 것을 보여준다면, 이번 글들은 모든 곳에 사용하지 않아도 된다는 것을 보여줍니다.

Airbnb의 마이그레이션 전략

Rearchitecting Airbnb’s Frontend. Overview: We recently rethought the… | by Adam Neary | The Airbnb Tech Blog | Medium 🔗

Airbnb에서 rail 방식에서 React 기반 SPA 방식으로 어떻게 마이그레이션 했는지 소개하는 글입니다. Airbnb는 일종의 Astro와 비슷한 방식(island같이 데이터를 받아오는 형식)의 전략을 썼지만, 다른 방식의 마이그레이션 전략 또한 있으니 참고하세요 :)

접근성, 쉽게 다가가기

The Art of Accessibility | Playful Programming 🔗

접근성을 챙겨야 하는 이유와 어떻게 챙겨야 하는지 친절하게 설명하는 글입니다. 비슷하게 web.dev의 learn 섹션도 존재하기 때문에, 더 관심이 가는 분은 참고하세요 :)

Straight to the Article: 빛나는 인사이트

100%는 진짜 100%가 아니다. 왜일까

The Height Enigma • Josh W. Comeau 🔗

블록 수준의 요소의 width와 height이 결정되는 구조, 100%rem, vh, ...등을 쉽게 소개하는 글입니다.

npm 패키지 만들기(2025)

Best Practices for Creating a Modern npm Package with Security in Mind | Snyk 🔗

npm 패키지를 만드는 가이드를 최신 기능을 설명하면서 소개합니다. 물론 snyk에서 쓴 글이라 snyk를 사용하는 과정도 포함되어있지만, npm의 기능들을 많이 소개하므로, 훑어보셔도 좋을 것 같습니다.

React 커스텀 렌더러 만들기

How to Build a Custom React Renderer | Software Mansion 🔗

react-reconciler라이브러리 기반으로 커스텀 렌더러를 어떻게 만드는지 직접 구현해보면서 설명하는 글입니다.

디자인 시스템에서 l10n 챙기기

Integrating Localization Into Design Systems — Smashing Magazine 🔗

l10n(현지화)와 i18n(국제화)의 차이, 그리고 디자인 시스템에 적용하기 위한 팁을 소개하는 글입니다.

RN를 활용해 어플리케이션을 현대화하기

How Office Is Modernizing Their App Suite’s UI using Windows App SDK and React Native React Native 🔗

MS Office팀에서 React Native를 통해 Content Island 개념을 도입해 레거시 어플리케이션을 도입하는 과정을 소개한 글입니다.

JavaScript에서의 this

JavaScript, when is this? - Piccalilli 🔗

generator란 무엇인가

I think the ergonomics of generators is growing on me. | Alex MacArthur 🔗

JS 개발자를 위한 정규표현식

The ultimate JavaScript regex guide - Honeybadger Developer Blog 🔗

Fresh Finds: 놓치지 말아야 할 소식

Parcel v2.15.0 🔗

Parcel의 일부분이 Rust도구들로 바뀐다는 소식입니다. HTML transformer과 SVG를 로딩하는 SVGO를 러스트 도구로 바꾼다고 하네요.

Rslib: Build library with Rspack - Rslib 🔗

rspack 기반 빌드 도구들인 rslib를 소개하는 글입니다. rspack과 rslib가 어떤 것을 지향하고 있는지 보여주기 때문에 보시길 추천드립니다.

GitHub - grafana/k6: A modern load testing tool, using Go and JavaScript - https://k6.io 🔗

go 기반으로 만들었지만, js로 사용할 수 있는 부하테스트 도구인 k6이 1버전이 출시되었다는 소식입니다.

React Three Ecosystem 🔗

React와 Three.js와 관련된 생태계를 소개해주는 사이트입니다.

An Update on Fresh | Deno 🔗

express와 다른 프레임워크같은 API와 비슷하게 핵심 API를 바꾼 Fresh 2가 등장할 것이라는 소식입니다.

Node.js 24 Is Here: What You Need to Know 🔗

Node.js 24에는 신기능이 무엇이 있고, 어떤 기능에 집중할 것인지 소개하는 글입니다.

JavaScript's New Superpower: Explicit Resource Management · V8 🔗

TS에는 이미 도입된, JS에서는 아직 Proposals 단계에 있는 명시적 자원관리에 대해 소개하는 글입니다.

The Story of Fastify + Vue 🔗

메타 프레임워크들이 모두 라이브러리 사용이 블랙박스임을 비판하며 fastify로 UI 라이브러리(React, Vue, …)여러 기능을 지원하면서 fastify의 빠르고 다양한 플러그인을 사용할 수 있는 방식을 소개하는 글입니다.

번외: Figma Site…?

Do Not Publish Your Designs on the Web with Figma Sites… — Adrian Roselli 🔗Figma Sites is worse than you might have thought - YouTube 🔗

Figma로 여러가지 도구들을 소개했는데, 그 중에서 Figma Site에 대한 단점을 소개하는 글입니다. 잘 발전했으면 좋겠네요..