또 다른 문제가 발생!
Next.JS는 서버 npm run dev 하면서 실행이 됩니다 그런데.. 실행되면서 자동으로 무언가를 실행하거나 요청을 하는 기능이 제공되지 않습니다 그렇다면 어떻게 하느냐?.. 흉내를 낼 수 있습니다
서버가 실행되고 이제 클라이언트가 누구든 최초 접속할때 서버에서 공공데이터 API 서버로 요청을 보낼 수 있도록
src 디렉토리에 server이라는 서버 모듈 폴더를 생성
cache.ts : 캐시의 인터페이스를 관리하도록
init.ts : 자동시작 흉내를 내는 파일
// src/server/init.ts
import { initializeCache } from "./initializeCache";
import { collectionBinsCache } from "./cache";
initializeCache()
.then(() => {
console.log("서버 시작 시 캐시 초기화 완료:", Object.keys(collectionBinsCache));
})
.catch((error) => {
console.error("캐시 초기화 실패:", error);
});
initializeCache.ts : 요청을 보내고 캐싱하는 파일
사실 하나의 파일에서 이 모든 처리를 할 수 있도록 해도 상관은 없으나 나중에 최초 서버를 실행할 때 미리 준비되어야 하는 데이터 존재한다면 더 추가하기 쉽게끔 역할을 분리하여 관리하는 게 좋을 것 같습니다
결과는 아주 완벽하게 잘 불러오고 있습니다 다시 요청해도 외부 API 서버에 다시 요청해서 받아오는 게 아닌 최초 받아왔던 데이터를 캐싱하고 캐싱된 데이터를 불러오는 아주 효율적이고 최적화된 방식으로 변경됐습니다!
👍