- Next.js 가 실행될 때 한번만 특정 로직을 실행하는 방법2023년 10월 17일
- 루루개발자
- 작성자
- 2023.10.17.:02
반응형Next.js 를 실행할 때 마다 최초 한번 특정 로직을 실행해야 하는 경우가 있었습니다. 구동할 때 마다 최초 한번이라는 말은 즉, 코드가 수정되어 git merge 된 이유를 포함한 여러가지 이유로 인해 애플리케이션을 재기동 할 때를 말합니다. 해당 부분을 Next.js 에서 처리하는게 가능할까? 라는 생각과 함께 Next.js 문서를 읽어보던 도중에 Next.js 에서 제공하는 기능 중 하나인 Instrumentation 을 발견하였습니다.
Instrumentation 이 무엇인가?
Next.js 레포지토리의 루트 경로 또는 src 폴더 사용시에는 src 경로에 instrumentation.ts 라는 파일을 생성 후 이 파일 안에서 register 라는 함수를 export 해놓으면 Next.js 가 실행(부트)될 때 마다 해당 register 함수를 한번 호출하는 기능이라고 볼 수 있습니다. 하지만 현재 2023-10-17 기준으로 instrumentation 기능은 아직 실험적 기능이며, 아래 링크와 같이 Next.js 를 standalone 모드로 구동하면 register 함수가 호출 되지 않는 이슈가 있습니다. (최초 한번 요청이 들어와야 register 함수가 한번 호출 됩니다.)
https://github.com/vercel/next.js/issues/49897
해당 이슈가 해결 되면 본 게시글도 내용 업데이트 할 예정입니다.
Instrumentation 사용 방법
1) Next.js 레포지토리의 루트 경로 또는 src 폴더 사용시에는 src 경로에 instrumentation.ts 라는 파일을 생성
- src 디렉토리 이용할 경우 : 프로젝트 경로/src/instrumentation.ts
- src 디렉토리 이용하지 않을 경우 : 프로젝트 경로/instrumentation.ts
2) instrumentation.ts 파일 내용을 아래와 같이 작성
export function register() { // 부트 될 때 마다 최초 한번 실행되어야 할 로직을 작성하세요. }
그럼 이제 Next.js 가 실행(부트)될 때마다 register 함수가 한 번 호출될 것입니다. (원래라면 이렇지만 위에서 언급했듯이 2023-10-17 기준으로 현재는 최초 한번 요청이 들어와야 register 함수가 호출됩니다.)
이상입니다.
감사합니다. :)
반응형'react & next.js' 카테고리의 다른 글
React 의 RSC, RCC 에 대하여 (with Next.js) (1) 2023.10.18 Next.js 에서 종속성 패키지에 browserslist 적용하는 방법 (4) 2023.10.18 useEffect 에 대해 알아봅시다 (0) 2023.07.25 useState 에 대해 알아봅시다 (0) 2023.07.24 Next.js 의 렌더링 과정에 대하여 (0) 2022.11.09 다음글이전글이전 글이 없습니다.댓글