웹 응답값 유지가 되는 방법

2025. 3. 13. 09:22·SW 공학 & 프로그래밍 언어
728x90
반응형

1. 상황

리액트를 사용중이며 API로 응답값을 받은 이후, API 서버가 죽은 상태에서도 값이 그대로 남아 있는 현상


2. 원인

1. React 상태(state)에 데이터가 남아 있음

  • API 호출 후 응답 데이터를 useState로 저장하면, API 서버가 죽어도 상태값이 유지되므로 화면에는 기존 데이터가 계속 표시됨.
  • 해결 방법: API 호출 실패 시 상태를 초기화하거나, 화면에서 데이터를 숨기는 로직 추가.
const [data, setData] = useState(null); 
useEffect(() => { 
	axios.get('/api/data')
    	.then(res => setData(res.data))
        .catch(() => setData(null)); // 에러 발생 시 상태 초기화 
}, []);

 

2. 브라우저 캐싱 (HTTP 캐시)

  • API 응답이 브라우저 캐시에 저장되면, 서버가 죽어도 캐시된 데이터를 반환할 수 있음.
  • 응답 헤더에서 Cache-Control이 public, max-age=xxx로 설정되어 있다면 캐싱될 가능성이 있음.
  • 해결 방법: API 요청 시 캐싱을 방지하는 헤더 추가.
 
 
 

3. React Query, SWR 같은 라이브러리 사용

  • react-query, swr 같은 라이브러리를 사용하면 자동 캐싱이 적용될 수 있음.
  • 해결 방법: 캐시를 무효화하는 옵션을 사용.
const { data, refetch } = useQuery('dataKey', fetchData, 
	{ cacheTime: 0 // 캐시 사용 안 함 }
);
 

4. Service Worker (PWA)

  • PWA(Service Worker)가 활성화된 경우 API 응답이 캐싱되어 있을 수 있음.
  • 해결 방법: DevTools > Application > Service Workers에서 Service Worker를 삭제.

결론

Axios 자체적으로 캐싱하지 않지만, React 상태, 브라우저 캐시, 라이브러리, Service Worker 등 여러 요소로 인해 데이터가 유지될 수 있음.
서버가 죽은 후에도 데이터가 남아있다면, 위 원인 중 하나를 확인하고 해결하면 됩니다!

728x90
반응형
저작자표시 비영리 (새창열림)

'SW 공학 & 프로그래밍 언어' 카테고리의 다른 글

[IntelliJ] Task 'wrapper' not found in project ':~'. 문제 해결  (0) 2025.05.30
[형상관리] 형상관리에 대해서... SCM, VCS, SVN, git...  (1) 2022.01.14
[문제해결] IE 부모창, 팝업창 appendChild ERROR  (0) 2021.05.30
[XML] XML의 구조 및 문법  (0) 2020.05.29
'SW 공학 & 프로그래밍 언어' 카테고리의 다른 글
  • [IntelliJ] Task 'wrapper' not found in project ':~'. 문제 해결
  • [형상관리] 형상관리에 대해서... SCM, VCS, SVN, git...
  • [문제해결] IE 부모창, 팝업창 appendChild ERROR
  • [XML] XML의 구조 및 문법
크크크크
크크크크
공뷰를 합시다.
    반응형
  • 크크크크
    Tom's Note
    크크크크
  • 전체
    오늘
    어제
    • 분류 전체보기 (130)
      • IT 지식 (6)
      • CS (66)
        • 알고리즘 & 자료구조 (19)
        • 운영체제 (41)
        • 네트워크 (1)
        • 데이터베이스 (5)
      • 보안 (6)
      • SW 공학 & 프로그래밍 언어 (5)
        • Java (28)
        • 디자인 패턴 (1)
        • 형상관리 (2)
        • 톰캣(WAS) (2)
        • SW 방법론 (3)
        • 스프링부트 (5)
      • 시스템 설계 (4)
        • Docker (2)
      • 자격증 (2)
  • 블로그 메뉴

    • 링크

    • 공지사항

    • 인기 글

    • 태그

      비트연산
      cifs
      2차
      whereis
      암호설정
      1급
      스프링부트
      리눅스
      chmod
      REST API
      su
      /etc/passwd
      whatis
      DI
      알고리즘
      java
      단반향
      docker
      불변
      문제해결
      Chage
      DTO
      which
      usermod
      ADsP
      apropos
      자바
      man
      passwd
      분석기법
    • 최근 댓글

    • 최근 글

    • 250x250
    • hELLO· Designed By정상우.v4.10.3
    크크크크
    웹 응답값 유지가 되는 방법
    상단으로

    티스토리툴바