Next.js는 React.js의 프레임워크이다. React.js에서도 SSR, SSG, ISR 등을 할 수 있지만 Next.js가 보다 편리하게 할 수 있다는 점만 해도 엄청난 장점이다.
하지만 Next의 단점은 리액트를 깊이 이해하고 있지 않거나, 아예 서버에 대한 개념이 무지하다면 초기 러닝커브가 있을 수 있다는 점이다.
넥스트에서 서버/클라이언트 컴포넌트를 분리한다는 개념을 처음 학습할 때는 프런트에서 API요청하는 비동기 코드들과 ui 관련된 코드들을 분리하고 싶던 욕구가 있었기에 반가웠다. 그래서 리액트 프로젝트에서는 Middleware 같은 Hook을 만들어서 감싸서 사용하려는 시도를 하다 결국 프로젝트 데드라인에 쫓겨 기존 방식대로 마무리하게 된 적이 여러 번 있다.
어느 프레임워크든 마찬가지겠지만 Next를 공부하면서 느낀 점은 React를 잘 이해하고 있는 사람일수록 Next로 편리하기 SEO까지도 잘 맞춰진 완벽한 사이트가 될 것이라는 기대감이 들었다. 그래서 들뜬 마음으로 듣고 있던 Next 강의를 중지하고 바로 이전 프로젝트에 리팩토링을 시작하려 했다!
막상 시작하고 나니 이게 내 코드가 맞는가 싶을 만큼 엉망진창으로 보였다. 일단 Recoil 상태관리 코드들을 TanStackQuery와 Zustand로 바꾸는 것부터 해야겠다고 계획을 바꾸었다.
지금까지 진행 중인 프로젝트들은 React로 계속 리팩토링을 하고 있지만 다음 프로젝트에서 기회가 된다면 Next.js를 프로젝트에 사용해보고 싶다.
Next.js 단점은?
Next.js의 단점은 러닝커브가 클 수 있다는 점이다. 제대로 이해하지 않고 시작한다면 에러 지옥이라서 디버깅하는 시간이 만만치 않다. 익숙하지 않은 만큼 개인 프로젝트로 이것저것 만들어보려 한다. 원래 디버깅 못하는 편이었는데 이번에 Next.js 익히면서 디버깅 실력도 상승시키게 되었으니 1석 2조다 헤헤