Next.js v14.2.8 빌드 에러

Error occurred prerendering page "/dashboard". 
Read more: https://nextjs.org/docs/messages/prerender-error

ReferenceError: window is not defined

얼마전 github actions에서 배포 중 에러가 발생했습니다

로컬에서 githook의 pre-push에서 빌드를 하기 때문에 빌드에러는 발생하지 않을 것이라 생각했지만 빌드 중 window is not defined 에러가 발생했습니다

의심되는 부분을 수정해봤지만 해결되지 않았고 로그를 보던 중 next.js 버전이 로컬에서 설치 후 실행되는 버전과 다르다는 것을 발견했습니다

원인은 package.json에 next 버전을 명시할 때 캐럿(caret, ^)을 붙였던 것이 원인이었습니다

수정 전
수정 후

캐럿(^)을 제거해서 명시된 버전만 사용하게 변경하였습니다

전날에도 긴급배포할 때도 이런 현상이 없었는데 빌드에러 발생 7시간 전 14.2.8 버전이 npm에 배포되어있었습니다

next.js 깃헙 이슈탭(https://github.com/vercel/next.js/issues)에 가보니 관련 이슈를 제기한 사람들이 많았습니다

당분간 next.js로 프로젝트를 새로 만들 때 14.2.7 버전으로 만들어야할 것 같습니다

운영 중인 서비스를 개발할 땐, npm에서 패키지를 설치할 때 웬만하면 캐럿(^)을 붙이지 않고 사용해야할 것 같습니다

Read more

기술뉴스, 2025-09-25

기술뉴스, 2025-09-25

끝없이 수정하다 AI 성과 무너뜨린다··· ‘둠프롬프팅’의 함정최근 LLM과 AI 에이전트 결과물을 무한 반복 수정하는 ‘둠프롬프팅’ 현상이 관찰되고 있다. 이는 성과 저하와 막대한 비용을 초래할 수 있다.CIOGrant Gross초보를 위한 Claude Code 안내서Claude Code의 등장으로 코딩의 패러다임이 완전히 바뀌었습니다. AI 시대의 개발이란? 개발자의 역할은 무엇일까요?Subicura's BlogsubicuraShould we revisit Extreme

By Hyonsok
[Terraform 튜토리얼 1-6] 중복 없애다 망한 썰 – DRY 원칙, 정말 항상 맞을까?

[Terraform 튜토리얼 1-6] 중복 없애다 망한 썰 – DRY 원칙, 정말 항상 맞을까?

개발자라면 한 번쯤 들어봤을 말, "Don't Repeat Yourself", 줄여서 DRY 원칙. 이건 소프트웨어 개발에서 아주 중요한 원칙이에요. 중복을 줄이면 버그도 줄고, 유지 보수도 쉬워지고, 코드도 깔끔해지죠. 그런데… Terraform 같은 IaC 세계에서도 DRY가 무조건 좋을까요? 🤔 DRY가 뭔데? DRY 원칙의 핵심은 딱 하나: "같은 걸 반복해서 쓰지 마." * 상수 값, 로직, 설정

By Chansong
[Terraform 튜토리얼 1-5] 선언형 vs 명령형: Terraform은 왜 선언형인가?

[Terraform 튜토리얼 1-5] 선언형 vs 명령형: Terraform은 왜 선언형인가?

Terraform을 쓰다 보면 종종 듣게 되는 말이 하나 있어요: Terraform은 "선언형(Declarative)" 도구다. 그런데 이게 도대체 무슨 뜻일까요? "명령형(Imperative)"이랑은 뭐가 다르고, 왜 Terraform은 선언형일까요? 🧠 선언형과 명령형, 개념부터 정리 구분 선언형 (Declarative) 명령형 (Imperative) 핵심 개념 무엇이 되어야 하는지만 선언 어떻게 할지를 하나하나 명령 예시 “난 스테이크 먹을래” “고기

By Chansong