JIGGAG

4월 한달동안 로그

2026년 6월 6일

3️⃣

  • 3월을 마무리 했다

(번역) useSyncExternalStore : 실전 리액트 개발을 위한 심층 해설

  • useSyncExternalStore
    • 리액트가 제어하지 않는 외부 상태 관리나 브라우저 API와 리액트 컴포넌트를 연결하는 등 구독 상태를 다루는 방법
  • 컨텍스트를 통한 리액트가 제어하는 내부 상태 관리를 하는 훅은 이미 존재한다
  • 그렇다면 리액트가 제어하지 않는 외부 상태에 대한 관리는 어떻게 하는걸까?
    • useEffect와 useState를 조합해 외부 상태를 구독하고 내부 상태 업데이트 하는 방법
    • 단순한 경우에는 잘 작동했지만, 리액트의 동시성 렌더링 기능과 충돌하는 문제 발생
      • 동시성 렌더링 에 의해 발생할 수 있는 문제 테어링
        • 리액트가 여러 UI 업데이트를 동시에 처리할 수 있습니다.
        • 필요에 따라 렌더링 작업을 일시 중지하고, 재개하거나, 취소할 수 있습니다.
        • 하지만 리액트가 컴포넌트 트리를 렌더링하는 도중에 외부 스토어가 변경되면, 서로 다른 컴포넌트가 외부 데이터의 서로 다른 버전을 읽을 수 있습니다.
      • useSyncExternalStore는 동시 업데이트 중에도 렌더링 패스의 모든 컴포넌트가 동일하고 일관된 데이터 스냅샷을 보도록 보장하여 테어링을 방지합니다.

뭔가 큰 일이 벌어지고 있다

  • 하루에 한번이라도 AI 툴을 사용해보는 것을 목표로 했는데 의존하게 되었다
    • 너무 잘 도와준다!
  • 질문을 잘 할수록 섬세하다고 느껴졌다
  • 그럼 나에게 부족한 컨텍스트 전달이 질문을 다듬다보면 개선될 수 있을까?

(번역) 최소 릴리스 기간은 저평가된 공급망 방어 수단입니다

  • 무지성 업데이트의 피해를 막기 위한 간단한 설정
  • 문에 가장 먼저 들어가는 사람이 아닌 겁니다. 수천 명의 다른 개발자들을 먼저 들여보내는 거죠. 바닥에 덫이 놓여 있다면, 여러분이 발을 딛기 전에 다른 누군가가 먼저 발견할 겁니다.
    • 나만 아니면 된다 에요..?! 🤔