Next.js는 최고의 프레임워크가 아닙니다. 가장 확실한 선택일 뿐입니다.

Next.js는 가장 많이 사용되는 React 프레임워크입니다. 동시에 가장 많은 미움을 받는 프레임워크 중 하나이기도 합니다.

설문 조사에 따르면 사용률은 높지만 만족도는 떨어지고 있습니다. 사람들은 복잡성과 App Router에 대해 불만을 토로합니다. 기능이 너무 비대해졌거나 Vercel 사용을 강요한다고 말합니다.

이 중 일부는 사실입니다. 하지만 상당 부분은 그렇지 않습니다.

대부분의 사람들은 잘못된 도구를 선택하거나 도구의 작동 방식에 맞서 싸웁니다. 그러고 나서 도구를 탓하죠.

저는 수년간 Next.js로 서비스를 구축해 왔습니다. 실수가 곧 금전적 손실로 이어지는 플랫폼에서도 Next.js를 사용했습니다. 제 견해는 다음과 같습니다.

Next.js는 최고의 프레임워크가 아닙니다. 가장 확실한 선택입니다. 이 둘은 엄연히 다른 이야기입니다.

실제 프로젝트에는 다양한 요구사항이 있습니다. 콘텐츠 사이트가 필요하면서도, 대시보드, 에디터 미리보기, 그리고 대규모 확장성도 필요합니다.

다른 프레임워크들은 단일 작업에서 우위를 점합니다:

  • Astro는 정적 사이트에 훌륭합니다.
  • SvelteKit은 개발자 경험과 가벼운 결과물 측면에서 탁월합니다.

하지만 요구사항이 복잡해지면 Next.js가 승리합니다.

Next.js는 직접 구축해야 할 기능들을 내장하고 있습니다:

  • 전체 재빌드 없이 페이지를 업데이트하는 Incremental Static Regeneration.
  • 간편한 편집 미리보기를 위한 Draft Mode.
  • 빠른 미들웨어와 인증을 위한 Edge runtime.
  • 느린 데이터를 처리하기 위한 Streaming과 Suspense.
  • 별도의 API 없이 로직을 실행하는 Server Actions.

또한 엄청난 중력(gravity)을 가지고 있습니다. React를 기반으로 구축되어 있기 때문입니다. AI 모델을 위한 학습 데이터의 양이 방대합니다. AI를 사용하여 Next.js 코드를 작성할 때, 패턴이 어디에나 존재하기 때문에 더 잘 작동합니다.

트레이드오프(trade-offs)는 분명히 존재합니다. 이를 알고 있어야 합니다:

  • 매우 주관적(opinionated)입니다. 프레임워크가 제공하는 방식을 원치 않는다면 프레임워크와 싸우게 될 것입니다.
  • 이식성(portability)이 문제가 되어 왔습니다. 오랫동안 Vercel에서 벗어나는 것이 어려웠습니다.
  • App Router로의 전환 과정은 혼란스럽고 복잡했습니다.

교훈은 이것입니다: Next.js를 선택하는 것은 올인(all-in)하는 결정입니다.

프레임워크의 의도를 존중하고 설계된 방식대로 사용한다면, 프레임워크가 여러분을 뒷받침해 줄 것입니다. 하지만 프레임워크의 흐름에 역행하도록 강요하려 한다면, 지속적인 비용(tax)을 치르게 될 것입니다.

한 팀이 Next.js의 라우팅 규칙을 깨뜨리는 커스텀 아키텍처를 구축하는 것을 본 적이 있습니다. 그들은 공학적으로 타당한 선택을 했지만, 그것이 프레임워크와 충돌했습니다. 그들은 SEO나 링크 같은 문제들을 해결하기 위한 우회 방법을 만드는 데 수개월을 허비했습니다.

문제는 프레임워크가 아니었습니다. 적합성(fit)의 문제였습니다.

수년간 지속되어야 하는 복잡한 무언가를 구축한다면, Next.js는 실패 확률이 가장 낮은 선택입니다. Next.js가 설계된 목적에 맞게 사용하십시오.

출처: https://dev.to/fredcorr/nextjs-isnt-the-best-framework-its-the-most-reliable-bet-5e2c