useState()가 아니라 상태와 친해지기
2025. 4. 15.
useState()
가 아니라 상태와 친해지기
Goodbye, useState - David Khourshid - YouTube 🔗useState()
가 어떤 문제를 가지고 있는지, 그리고 상황에 따라서 어떤 기술을 쓰면 좋은지, 어떤 라이브러리를 쓰면 좋은지를 모두 설명하는 영상입니다. 상태를 잘 관리하는 법을 알더라도, React 19에서의 상태 관리부터, useSyncExternalStore()
(주의점), Sync Engine.. 같이 모든 상태에 대해 설명하고 있으니, 모든 프론트엔드 개발자 분들이 꼭 보시길 바랍니다 🙂
Next.js는 어딜 향해 가는가
Next.js Deployment Challenges: Why platforms need better open source collaboration 🔗이전의 소개했던 RSC의 보안, 난 다르게 본다글의 다른 기술 선택 또한 고려해보는 글의 연장선 상의 글입니다. Next.js의 웹 표준을 지키지 않는 점(Monkey Patch를 하지 마세요), 로드맵이나 문서화가 부족한 점을 추가로 지적하며 Netlify에서의 배포 방식이나 OpenNext에 합류한다는 점, RFC를 작성한다는 점을 소개합니다. 물론 뉴스레터에서도 Next.js에 실망하고 Remix나 다른 프레임워크로 변경하는 글도 심심치 않게 볼 수 있지만(당신이 Remix를 사용해야 하는 이유, Next.js에서 Astro로 변경하기, Next.js에서 마이그레이션 한 이유), Remix 또한 보안 이슈에서 자유롭지 않고, 프레임워크마다 특성이 다르므로, 자신의 상황에 맞게 잘 선택하는 것이 옳겠습니다.
리액트 메인테이너가 말하는 RSC 아키텍쳐
React for Two Computers — overreacted 🔗RSC의 RFC를 만들 때 나왔던 개념인 Server tree와 React tree의 개념이 어떻게 생겨났는지 선언형 프로그래밍의 JSX 태그와 명령형 프로그래밍의 함수를 어떻게 합치고 싶었는지를 길게 풀어낸 글입니다. 너무 긴 글인데다, RSC의 그림을 어떻게 그리고 싶었는지를 가상의 언어로 표현하고 있어, 보기 어렵지만 좋은 글입니다. 이전 글과 발표인 React 사용자의 두 가지 접근도 연관이 깊으므로 먼저 보시길 바랍니다!
Websocket의 숨겨진 비용
You might not need WebsocketsYou might not need Websockets 🔗Websocket이 무엇인지, Websocket을 사용하면 안 좋은 상황과 단점, 그리고 실제 웹 사이트에서 운영할 때 필요한 요구사항을 소개하는 글입니다. 그리고 대체제로 어떻게 하면 좋은지 코드와 함께 소개하고 있습니다.
OSI부터 HTTPS까지 알아보기
How Data Travels the World to Reach Your Screen: A Deep Dive into OSI, TCP/UDP, HTTP, and More 🔗면접 단골 질문들을 잘 대답할 수 있도록 OSI모델, TCP 부터 HTTPS까지 어떻게 동작하는지 알아보는 글입니다. 이외에도 DNS부터 브라우저 렌더링까지 다룬 글이나 HTTP를 딥다이브하는 글또한 읽어보면 좋습니다 :)
JWT는 어느때 써야할까
A Guide to Bearer Tokens: JWT vs. Opaque Tokens 🔗JWT와 Opaque Token을 소개하고 각자의 장단점을 소개하는 글입니다. 보통 JWT를 일반적으로 사용하는데, 장단점과 보완책을 적절하게 가져가는 것이 좋습니다.
React.memo
가 문제가 될 때
React.memo Demystified: When It Helps and When It Hurts · cekrem.github.io 🔗useCallback()
, useMemo()
에 대해 간단하게 알아보고 일반적으로 간과할 수 있는 문제, 렌더링이 오래걸리는 컴포넌트에 대한 다른 해결책을 제시하는 글입니다.
Electron과 Tauri의 아키텍쳐 차이점
Tauri vs. Electron: performance, bundle size, and the real trade-offs 🔗Electron과 Tauri의 구동방식과 기능을 소개하는 글입니다. 장단점과 구동방식까지 간단하게 소개하므로 데스크탑 앱에 관심있으신 분은 보세요.
때로는 프레임워크를 사용하지 않아도 된다
Using Remix, the wrong ? way - Antoine Chalifour - YouTube 🔗Remix의 loader - component - action 패턴의 단점을 react-hook-form과 tanstack query으로 절충하는 방법을 발표하는 글입니다. 물론 지엽적인 부분에 대한 케이스를 풀어나가는 발표지만, 필요시에 따라서 라이브러리가 제안하는 방법 대신 다른 방법을 어떻게 찾고, 적용하는지에 대한 방법론은 좋습니다.
React에서 적용해볼 수 있는 접근성 요소들
Demystifying Accessibility in React Apps - Kateryna Porshnieva - YouTube 🔗많이들 아는 시맨틱 태그에서부터 좋은 접근성을 간단하게 적용해볼 수 있는 방법을 소개하는 발표입니다. 많은 것을 소개하진 않지만, 누구나 적용할 수 있을만큼 쉬운 것들이기에 추천드립니다.
메모리 누수 디버깅하기
Debugging JavaScript Memory Leaks | Bun Blog 🔗V8과 JSC의 힙 스냅샷을 보는 법(물론 bun을 사용해서)과 일반적으로 메모리 누수가 일어나는 상황을 소개하는 글입니다.
체계적으로 리액트 파일구조 만들기
Scale Your Project with Layered React Structure | Playful Programming 🔗모든 프로젝트에서 적용할 수 있을 수도 없을 수도 있는 파일구조 아키텍쳐지만, Smart-Dumb 컴포넌트 개념을 도입해 분리하는 점과 유틸리티/서비스 분리하는 점은 명확하게 다가와서 잘 적용할 수 있을 것 같네요.
LLM을 통해 프레임워크 마이그레이션
Accelerating Large-Scale Test Migration with LLMs | by Charles Covey-Brandt | The Airbnb Tech Blog | Mar, 2025 | Medium 🔗LLM을 통해 Enzyme에서 RTL로 코드를 변경하는데 시간을 단축한 재미있는 글입니다. LLM을 어떻게 활용 전략을 짤 것인지 도움이 될 것 같네요.
Reconciliation의 작동 방식
React Reconciliation: The Hidden Engine Behind Your Components · cekrem.github.io 🔗간단하게 알아본 recolnciliation 과정입니다. 더 자세히 알아보고 싶은 분은 reconciliation 딥다이브를 보시는 것을 추천드립니다.
새로운 친구들
Next.js 15.3 | Next.js 🔗turbopack으로 빌드를 할 수 있는 Next.js 15.3 버전이 출시되었습니다.
Introducing Bare: Actually run Javascript Everywhere - Pears 🔗JS를 어디서든 가볍게 돌릴 수 있도록 만든 엔진인 Bare 엔진입니다.
React Native 0.79 - Faster tooling and much more · React Native 🔗React Native 0.79 출시 소식입니다. 속도가 많이 빨라졌다는 것을 강조하네요.
Deploy your Next.js app to Cloudflare Workers with the Cloudflare adapter for OpenNext 🔗OpenNext를 통해 Next.js 어플리케이션을 Cloudflare workers에 배포하기 쉬워졌다는 소식입니다.