본문 바로가기
React Native

Server State Management

by 개발자 인민군 2026. 2. 11.

1. Server State Management (서버 상태 관리)

가장 정확한 표현입니다. 클라이언트 상태(useState)와 서버 상태를 분리합니다.

2. Custom Hooks Pattern (커스텀 훅 패턴)

useCreateRoom, useVerifyEmail 같은 재사용 가능한 훅으로 로직을 캡슐화합니다.

3. Data Fetching Abstraction (데이터 페칭 추상화)

API 호출을 선언적으로 관리하는 추상화 레이어입니다.

목적

🎯 핵심 목적

서버와의 통신을 "상태"가 아닌 "비동기 이벤트"로 다루기

구체적 목적들

1. 서버 상태와 클라이언트 상태 분리

`// ❌ 기존: 서버 데이터를 클라이언트 상태로 관리 const [data, setData] = useState(null); const [loading, setLoading] = useState(false); const [error, setError] = useState(null);

// ✅ React Query: 서버 상태는 자동 관리 const { data, isLoading, error } = useQuery(...)`

2. 보일러플레이트 제거

  • 로딩/에러/성공 상태를 수동으로 관리할 필요 없음
  • try/catch/finally 블록 제거
  • 일관된 패턴으로 코드 간소화

3. 자동 캐싱 & 동기화

// 같은 데이터를 여러 곳에서 요청해도 중복 호출 없음 const { data } = useRoom('room-123'); // 첫 호출 → API 요청 const { data } = useRoom('room-123'); // 다른 컴포넌트 → 캐시 사용

4. 백그라운드 자동 갱신

// 창이 포커스될 때 자동으로 데이터 갱신 refetchOnWindowFocus: true

5. 재사용성

// 어디서든 같은 로직 재사용 const mutation = useCreateRoom(); mutation.mutate(data);

비유

기존 방식: 직접 레스토랑에 가서 주문하고, 주방 상태 확인하고, 음식 가져오기 React Query: 웨이터(React Query)에게 주문만 하면 알아서 처리

이것이 해결하는 문제들

문제 React Query 해결책

중복 API 호출 자동 캐싱
오래된 데이터 백그라운드 갱신
로딩/에러 관리 자동 상태 관리
코드 중복 재사용 가능한 훅
경쟁 조건 요청 취소 & 중복 방지

다른 솔루션과 비교

  • SWR: 비슷한 목적 (Vercel 제작)
  • RTK Query: Redux Toolkit에 내장
  • Apollo Client: GraphQL 전용

React Query는 REST API에서 가장 널리 사용되는 표준입니다!

'React Native' 카테고리의 다른 글

RN + Native  (1) 2025.06.24
🥈 리액트 심화 개념  (2) 2025.06.20
🥇 리액트 기본기 (반드시 알아야 할 핵심)  (0) 2025.06.20
Query vs Mutation  (0) 2025.06.20
코드 푸쉬  (0) 2025.06.20