Kent C. Dodds의 Why I Won't Use Next.js 요약
Kent C. Dodds는 이번 next 14 발표와 함께 자신이 풀스택 웹개발에 nextjs를 사용하지 않고 remix를 더 선호하는 이유에 대한 글을 발행했다.
서론
- 처음 출시인 2020년부터 Remix를 사용해왔다.
- Remix가 Nextjs보다 뛰어난 사용자 경험을 만들 수있는 더 나은 도구라고 본다.
- 다만 Nextjs를 사용하는 것이 나쁘다는 것은 아니다. 단지 Remix를 사용하면 더 편할 것이라고 생각하는 것이다.
웹 플랫폼
- Nextjs는 api를 직접 노출하지 않는다.
- 따라서 웹 플랫폼을 사용해야 하는 경우 웹 플랫폼 문서(예를 들면 MDN)가 아닌 Nextjs 문서를 보아야 한다.
- 이는 웹에 대한 공부보다 프레임워크 공부에 대한 시간 투자가 늘어나고,
- 후에 프레임워크를 전환해야 하는 경우 이 노력들은 쓸모 없어진다.
독립과 배포
- Nextjs를 Vercel이 아닌 다른 플랫폼에서 배포를 하는 것이 어렵다.
- 일반 Node 애플리케이션으로 직접 호스팅하는데에도 어려움이 존재한다.
- vercel의 가격정책에 대한 불만이 존재한다.
- 반면 Remix는 자바스크립트를 사용하는 어디서든 배포를 할 수 있다.
React와 Nextjs의 경계
- Vercel은 Meta의 React 팀원들을 많이 고용하였고, Vercel로 옮긴 이후 그들이 덜 협력적이라는 느낌을 받았다
- Nextjs와 React의 경계가 모호해지고 있으며, 이는 사용자들에게 혼란을 주고 있다.
자신의 사용자들을 대상으로 실험
- Nextjs 팀은 실험적인 기능을 안정적인 것으로 마케팅하고 있다.
- 실험적인 기능을 사용자들이 사용하게 하여 앱을 센티넬 종으로 사용하고 있다.
너무 많은 마법
- 사람들이 놀라지 않도록 하는 가장 좋은 방법은 가능한 웹 플랫폼 API를 따르고, 그 위 소프트웨어가 수행하는 "마법"의 양을 줄이는 것이다
- 예를 들어 Nextjs는 자동 캐싱을 위해 fetch에 대한 전역 기능을 확장하였다.
- 우리 중 대부분은 MooTools 시절부터 플랫폼에 내장된 기능을 무시하면 문제가 발생한다는 것을 배웠다.
복잡성
- Nextjs가 지나치게 복잡하고 있다는 사람들의 얘기가 많다
- 서버 액션과 같은 기능이 웹 양식 동작하는 방식에 대한 의미를 바꾸는 것이 우려되고, 이는 복잡성 증가로 이어진다.
안정성
- Nextjs의 버전은 13이다
- 하지만 Remix 팀이 만든 React Router는 더 오래 사용되어 왔음에도 버전 6에 불과하며,
- Remix는 최근에서야 버전 2가 출시되었다.
- Nextjs는 불안정한 기능을 안정적이라고 부르며 출시하는 것이 나와 맞지 않다
- Remix는 안정성에 관심이 많다.
- 새로운 버전을 올리기 위해서 오랜 시간 코드를 업데이트하고 혼란을 겪는 것은 좋지 않다.
Remix팀이 작성한 "Remix vs Nextjs" 글