01프론트엔드
2026년 7월Firescout 3.0 실내화재 감지 시스템 관리자 콘솔
실내 화재 감지 AI 시스템의 고객사, 카메라, AI Box, 사용자를 통합 관리하는 온프레미스 백오피스 웹 애플리케이션
이 프로젝트에서의 TanStack React Query 활용
서버 상태 관리 및 API 캐싱 레이어
firescout-3.0-onpremise-back-frontend프로젝트 자세히 보기 →
프로젝트 1개에서 사용했습니다. 각 프로젝트에서 어떤 역할로 썼는지 아래에 정리했습니다.
React 애플리케이션에서 서버 상태를 가져오고 캐싱하며 동기화하는 라이브러리
TanStack React Query는 서버에서 가져온 데이터를 관리하기 위한 React 전용 라이브러리입니다. 전통적인 상태 관리 도구들이 클라이언트 상태와 서버 상태를 구분 없이 다루면서 발생하는 복잡성을 해결하기 위해 만들어졌습니다. 데이터 fetching, 캐싱, 백그라운드 동기화, 에러 처리 등을 선언적으로 처리할 수 있어 보일러플레이트 코드를 크게 줄여줍니다.
useQuery로 사용자 목록을 가져오고 캐싱하며, useMutation으로 새 사용자를 추가한 뒤 invalidateQueries로 목록을 자동 갱신합니다.
import { useQuery, useMutation, useQueryClient } from '@tanstack/react-query';
// Query: 사용자 목록 가져오기
function UserList() {
const { data, isLoading, error } = useQuery({
queryKey: ['users'],
queryFn: () => fetch('/api/users').then(res => res.json())
});
if (isLoading) return <div>Loading...</div>;
if (error) return <div>Error: {error.message}</div>;
return <ul>{data.map(user => <li key={user.id}>{user.name}</li>)}</ul>;
}
// Mutation: 사용자 추가 후 목록 갱신
function AddUser() {
const queryClient = useQueryClient();
const mutation = useMutation({
mutationFn: (newUser) => fetch('/api/users', {
method: 'POST',
body: JSON.stringify(newUser)
}),
onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ['users'] });
}
});
return <button onClick={() => mutation.mutate({ name: 'New User' })}>Add</button>;
}위 개요는 기술 학습을 돕기 위해 자동 생성된 일반 설명입니다. 정확한 사양과 최신 정보는 공식 문서를 확인하세요.
위 개념이 실제 프로젝트에서 어떻게 쓰였는지 보여줍니다.
실내 화재 감지 AI 시스템의 고객사, 카메라, AI Box, 사용자를 통합 관리하는 온프레미스 백오피스 웹 애플리케이션
이 프로젝트에서의 TanStack React Query 활용
서버 상태 관리 및 API 캐싱 레이어
위 프로젝트들에서 같이 쓰인 다른 기술입니다.