해결된 질문
작성
·
158
0
현재 RecoBooks 함수 정의가 위와 같고,
3초마다 캐시를 업데이트하는 속성이 설정되어 있습니다.
그런데 저는 강사님처럼 error 노출이 되지 않고 캐시되어 있는 동일한 랜덤 도서 목록이 계속 나오고 있습니다.
아래는 npm run dev로 실행했을 때 나온 로그입니다.
여기서 하나 더 궁금한게 있는데
현재 전체 도서 목록을 불러오는 fetch 함수는 요청한 결과를 무조건 캐싱하는 속성이 설정되어 있습니다.
그런데 제 로그를 보면 http://localhost:12345/book 이 api가 두 번 호출되고 있습니다.
request memoization이 호출이 안되는 거 같은데 데이터 캐시가 우위적으로 호출되는 건가요??
답변 1
0
안녕하세요 이정환입니다.
순서대로 답변드리겠습니다.
우선 2월 26일 업데이트 된 Next.js 15.2 버전부터는 캐싱된 데이터가 있을 경우 API에 오류가 발생해도 해당 데이터를 활용하는 쪽으로 개발 모드의 동작이 현재 변경되어 있는 것 같습니다.
이에 강의와 동일하게 오류를 발생시키시려면 다음과 같이 캐싱 옵션을 아예 잠시 주석처리하시어 꺼 주시면 캐싱자체가 동작하지 않아 정상적으로 오류 화면이 나타나게 됩니다.
추가로 Request Memoization이 적용 됨에도 두번 로그가 발생하는 이유는 Next.js 15.1 버전부터 발생하고 있는 오류로 판단됩니다. 로그만 두번 발생할 뿐 Request Memoization이 실행되지 않는것은 절대 아니니 걱정하지 않으셔도 됩니다. 추가로 본 내용은 앞선 4.3) 리퀘스트 메모이제이션 챕터의 하단에 요렇게 주의사항으로도 남겨져 있습니다.
감사합니다.