요즘 웹어플리케이션들은 보통 SPA(Single Page Application)로 만든다.

NextJS는 SPA 뿐만 아니라 일반 웹어플리케이션 개발을 좀 더 간략화시키면서도 커스터마이징이 가능하고, 어플리케이션을 더 빠르게 하기위해 사용한다.

먼저 JS 와 React와 함께 사용하며 페이지 로딩을 빠르게 하고 좋은 SEO 퍼포먼스를 보여주는 SSR(Server-Side Rendering)을 기본으로 한다.

(참조: https://medium.com/walmartlabs/the-benefits-of-server-side-rendering-over-client-side-rendering-5d07ff2cefe8)


그외 간략하게 살펴 보면,

  • Server-rendered by default
    (서버 사이드 렌더링)

  • Automatic code splitting for faster page loads
    (각 페이지를 번들링해서 페이지를 화면에 띄움. 그래서 속도가 빠름) 

  • Simple client-side routing (page based)
    (간단한 클라이언트 사이드 라우팅)
    (client-side routing에 관해 궁금하다면 
    http://krasimirtsonev.com/blog/article/deep-dive-into-client-side-routing-navigo-pushstate-hash
    를 참조하세요)

  • Webpack-based dev environment which supports Hot Module Replacement(HMR)
    (HMR을 지원하는 웹팩기반 개발 환경 )

  • Able to implement with Express or any other Node.js HTTP server

    (기본 routing을 NextJS는 express 혹은 다른 nodejs 의 http 를 상속받아서 사용 가능. import Link from 'next/link' 로 Link 사용)

    // pages/index.js
    import Link from 'next/link'
    
    export default () => (
      <div>
        Click{' '}
        <Link href="/about">
          <a>here</a>
        </Link>{' '}
        to read more
      </div>
    )

    페이지 들은 pages 폴더 안에 꼭 있어야 라우팅 가능.

  • Customizable with your own Babel and Webpack configurations
    (바벨이나 웹팩 환경설정을 커스터마이징 가능.)

등등이 있지만 공식 Docs 에 나와 있는 건 이정도 이다
( 참조: https://nextjs.org/learn/ )

결론은, 어렵고 복잡한 것들은 덜 신경쓰고 더 빠르고 더 쉽게 웹 어플리케이션을 만들기 위해서는 NextJS를 사용하자....?
고로 NextJS + NodeJS + ReactJS (+ KeystoneJS) 를 하면 생산성 하나는 최고인듯

(ReactJS + NodeJS 를 이용한 SSR 퍼포먼스를 다른 템플릿들과 비교 해보고 싶다면,
https://malloc.fi/performance-cost-of-server-side-rendered-react-node-js
에 여러 템플릿들과 직접 비교한 데이터 및 설명들이 나와 있다.)


+ Recent posts