Next.js 쓰지 마세요.
한때 옛날에 스프링 프레임워크가 한국에서는 그냥 찬양 그 자체지만 외국에서는 벤더락인으로 욕먹은 적이 있었습니다.
근데 엉뚱하게도 그 대상이 오라클이라서 설득력은 없었죠.
스프링이 욕먹는 이유임에도 기업과 우리들이 사랑하는 이유는 무궁무진한 확장성이 있습니다.
스프링은 파고들면 들수록 더 파고들지 않으면 끝이 안보이는 우주급 확장성을 가진 프레임워크죠
심지어 그게 어려우니 스프링부트 만들어서 쉽게 접근 가능하도록 배려까지 하니 얼마나 좋습니까. 전자정부에 못써서 그렇지…
근데 Next.js 는 프레임워크의 단점, 그리고 기업이 운영하는 프레임워크의 단점, 그리고 기업 소스의 단점 다 가지고 있습니다.
확장성이 없고, 참여도 어렵습니다. 예전에 어느분이 Next.js 컨트리뷰트 하신 분이 있는데,
리액트 관련 이슈는 쉽게 참여가 가능하지만, 배포와 캐시, 감시 기능은 버셀 배포 방식과 관련이 있기 때문에 참여가 어렵습니다.
지금 이 3개 이슈가 외국인들 빡치게 만드는 요소들이죠. 단독 배포야 쉽게 가능하긴 하지만…
배포는 공식적으로 그냥 버셀 아니면 단독(node.js) 둘 뿐이죠. 물론 AWS나 Cloudflare 등으로 배포하는 방법 또한 있습니다. 단점이라면 전용 프레임워크 덮어야 한다는 점.
그리고 캐시. 스프링에서 캐시 쓰시는 분들 아시겠지만 자유도가 높습니다. 하지만 넥스트의 캐시 기능은 뭐가 없어요. 어쩌라는건지 모르겠어요. 캐시 방식도 redis? 그나마 커스터마이징이 가능해지긴 했지만 캐시 전략 구상하는 건 포기해야 합니다.
그리고 캐시 안하고 서버 컴포넌트에 쿼리 넣죠? 컴포넌트 상속된 만큼 쿼리를 호출합니다. 갑자기 DB 뻗은거 보고 원인 확인했더니 그게 원인이어서 속 터진적도 있죠. 캐시 덮어줘야 1번 호출합니다. 참고하시길.
그리고 리액트 19도 시끄럽습니다. 메타가 관리하는게 아니라 버셀이 관리하는거 아니냐는 의혹을 제기하는 사람들이 많아졌습니다.
그래서 리액트는 이제 종말을 선언해야 할 때이다 라는 종말론까지 가는 극단적 상황까지 간 게 현 커뮤니티 상황이죠.
그래서 이미 프로젝트 구축해서 서비스한 건 어쩔 수 없이 계속 서비스할 거고…
다음 프로젝트 준비해 놨습니다. 그냥 적당한 SPA나 SSR 붙이고 백엔드 통합하는 식으로요. 번들링은 때가쏙 Vite.
개발 경험 끝내줘요. 빌드속도도 빨라요. Github에 자동화하니 넥스트 빌드 10분 걸린거 얘는 3분 내에 끝나요. 신세계죠.
물론 Next.js 대안이 있습니다. React Router(Remix 대신), Tanstack Start, Waku 등이 있죠.
하지만 셋 다 아직 불안정한 알파~베타 단계입니다. 그리고 여러분들이 눈여겨볼 프레임워크일리도 없고요.
그냥 당분간 SPA에 백엔드 붙이는 식으로 해야죠.
그러면 넥스트의 강점인 SEO 보장, 정적 페이지 등은 뭘 쓸거냐고요?
걍 스벨트 쓰세요. Vue 있지 않냐고요? 뷰도 SPA가 갑입니다. 그냥 갑이에요.
스벨트킷이 진짜 풀스택 중에 킹갓 프레임워크입니다.