목록 보기
파일 변수 Deep-Dive
프론트엔드

파일 변수 Deep-Dive

두줄요약

상태의 추적 필요성에 따라 Redux, react-query, Zustand, 파일 변수의 역할을 분리했습니다. 서버 파일 변수는 AsyncLocalStorage로 요청별 컨텍스트를 격리해야 함을 설명합니다.

문제 상황

  • 모든 상태를 Redux 전역 스토어와 redux-saga로 관리하며 플로우 복잡도와 Devtools 부하 증가
  • 변경 추적이 불필요하거나 요청별 격리가 필요한 값까지 동일한 방식으로 관리한 한계

구조와 흐름

  • 서버 상태는 react-query, 추적이 필요한 클라이언트 상태는 Zustand, 추적 불필요 상태는 모듈 범위 파일 변수로 분리
  • 클라이언트 파일 변수는 getter 기반 지연 초기화와 ES 모듈 맵 캐시를 통해 Soft Navigation 동안 유지
  • 서버 파일 변수는 모든 요청이 공유하므로 AsyncLocalStorage로 요청별 컨텍스트 격리

주의할 점

  • SSG 렌더링 중 window 접근 불가와 Hard Navigation 시 파일 변수 초기화
  • 서버에서 사용자별 값·민감 정보를 일반 모듈 변수로 저장할 때 데이터 공유 및 노출 위험
  • 서버 값을 인라인 스크립트로 클라이언트에 전달할 때 민감 정보 보호 필요

적용해볼 점

  • 값 변경에 따른 리렌더링·후속 로직·요청별 격리 필요성을 기준으로 상태 관리 도구 선택
  • 서버와 클라이언트 공통 접근이 필요할 때 환경별 저장 방식은 감추고 단일 getter 제공

카카오 계열사 채용30건

채용 사이트에서 전체 보기

다음 읽기

#Redux 주제를 이어서 읽기

파일 변수 Deep-Dive

웹 서비스 규모가 커지며 Redux 전역 관리의 한계를 줄이기 위해 상태를 유형별로 분리한 사례를 소개했습니다. 추적이 불필요한 값은 파일 변수로 관리하고, SSG와 하드 네비게이션 제약도 함께 설명했습니다.

카카오엔터테인먼트FE
카카오엔터테인먼트FE
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...