React
React 앱의 layer
Juntao Qiu의 React 모듈화 글을 따라 결제 화면을 view, model, data로 나눈다. 예제 저장소를 직접 돌려 찾은 useMemo 무력화와 fetch 반복, 이 구조를 언제 쓸지에 대한 판단도 정리했다.
overlay-kit
모달 열림 여부를 전역 상태로 들고 있던 코드를 await 한 줄로 바꾸며 얻은 것과 잃은 것. overlay-kit의 이벤트와 리듀서, openAsync 코어 로직을 소스로 따라가고, 재열기 동작을 직접 테스트해 문서와 어긋나는 지점까지 확인한다.
Kalyx
React headless DatePicker Kalyx를 왜 만들었고 Ark UI, React Aria, react-day-picker와 무엇이 다른지 정리했다. ISO 8601 UTC 값 모델, Intl 기반 DST 처리, timezone 속성 테스트를 다룬다.
상태 관리
프론트엔드 상태 관리를 지역·전역·서버·폼·URL·외부·가드 7가지 범주로 나누고, 범주마다 맞는 도구와 경계를 정리한다. 마지막에는 상태를 만들기 전에 던질 네 가지 질문으로 압축한다.
Toss Frontend Fundamentals 모의고사 2회차 리팩토링 후기
Toss Frontend Fundamentals 모의고사 2회차 회의실 예약 앱 리팩토링 경험을 공유한다. 모놀리식 컴포넌트 분리, 도메인 로직 추출, 테스트 기반 리팩토링 과정을 정리했다.
queryKey
TanStack Query의 queryKey 관리 방식이 인라인 배열, 상수 객체, query key factory를 거쳐 v5 queryOptions까지 어떻게 진화했는지 정리한다. 작성 규칙과 DataTag 타입 추론, 무효화 패턴을 실무 관점으로 다룬다.
queryKey 비교 원리
TanStack Query가 렌더링마다 새로 만들어지는 queryKey 배열을 같은 키로 판단하는 방식을 정리한다. hashKey 직렬화가 키 순서, undefined, Map 같은 값을 어떻게 바꾸는지와 필터가 키 구조를 비교하는 방식까지 다룬다.
ErrorBoundary 배치
React Router 와 TanStack Query 를 쓰는 화면에서 ErrorBoundary 를 몇 개, 어디에 둘지 정하는 기준을 설치본 소스로 확인한다. 라우트, 화면, 영역마다 받는 에러와 되돌리는 방법, fallback 을 하나로 맞추는 법, 재시도 조건까지 다룬다.
재시도 버튼이 안 듣는 이유
react-error-boundary 의 재시도 버튼을 눌러도 같은 fallback 이 다시 뜨는 세 경우를 설치본 소스로 확인한다. 쿼리 에러는 QueryErrorResetBoundary, 렌더 에러는 queryFn 검사, React.lazy 청크 실패는 새로 고침으로 푼다.
에러 전이
같은 에러를 일곱 자리에서 던져 보면 넷만 ErrorBoundary 에 닿는다. 렌더와 생명주기, 컴파일 타임, 서버 데이터, 페이지 전환, 외부 라이브러리, 이벤트와 비동기가 각각 어디로 전이되는지를 공식 문서와 설치본 소스로 확인한다.
React Fiber 완전 정복
React Fiber를 Stack Reconciler부터 Fiber 노드, double buffering, Lane 우선순위, Work Loop, Render Phase와 Commit Phase, Concurrent Features까지 React 소스코드로 분석한다.
React가 MessageChannel을 쓰는 이유
React Scheduler가 requestIdleCallback, requestAnimationFrame, setTimeout 대신 MessageChannel로 작업을 예약하는 이유를 React PR 기록과 setTimeout 4ms 지연의 Chrome 실측으로 정리한다.
Zustand, 너 뭔데 ProviderLess 인 거야?
Zustand가 Provider 없이 상태관리를 해내는 원리를 소스코드 분석을 통해 파헤친다. React Context API와의 차이점과 모듈 스코프 기반 설계를 알아보자.