개발자라면 한 번쯤 자신만의 블로그를 만들어서 배포해본 사람들이 많다. Next.js가 유명해지기 전까지는 블로그를 정적 페이지로 배포하는 경우가 많았다. 많이 사용하던 정적 페이지의 호스팅 서비스에는 Netlify, S3, Github Pages가 있다.
Next.js가 유명해지기 전에는 React를 기반으로 정적인 웹 페이지를 만드는 방식으로 서비스를 주로 만들었다. 하지만 시간이 흐르면서 Next.js 프레임워크가 유명해졌다. 또한 SEO에 대한 중요성이 부각되면서 Next.js 기반의 웹 서비스를 만드는 게 유행으로 번졌다.
Next.js는 SSR(Server Side Rendering, 서버 사이드 렌더링) 방식을 지원하는 프레임워크이다. 쉽게 얘기하면 프론트엔드와 백엔드 역할을 같이할 수 있는 프레임워크라고 볼 수 있다. 조금 더 익숙한 예로 비유하면, Spring Boot에서 Spring MVC를 활용하면 프론트 역할과 백엔드 역할을 동시에 처리하는 방식도 SSR이라고 볼 수 있다. SSR(Server Side Rendering)을 직독직해 해보면, 서버 단에서 프론트 단의 웹 페이지를 만들어 직접 제공하는 형태이다.
SSR 방식으로 제공하는 페이지를 보고 동적 페이지라고 부른다. 이 때문에 정적 페이지를 배포할 때 사용하던 Netlify, S3, Github Pages 같은 정적 호스팅 서비스만으로 SSR 페이지를 처리할 수 없다. 정적 호스팅은 HTML, CSS, JS 파일을 그대로 제공하는 방식이기 때문에, 서버에서 요청 시마다 페이지를 생성하는 SSR 기능은 지원되지 않기 때문이다.
그래서 SSR 페이지를 배포하려면 서버 기능이 있는 환경이 필요하다. 그래서 가장 대표적으로 서버 역할을 하는 고전적인 서비스로 AWS EC2가 있다. AWS EC2의 가장 불편한 점은 직접 서버를 셋팅해야 하고 비용이 과금된다는 점이다. 사실 개발자 입장에서 비용이 과금된다는 점이 가장 부담스럽게 다가오기 때문에, 2022년 이전만 해도 정적 페이지로 전부 블로그를 배포해서 사용했었다.
하지만 Vercel이라는 서비스가 혜성처럼 등장하면서, 서버 역할까지 해주는 기능을 ‘무료’로 제공하는 것이다. 뿐만 아니라 Vercel은 배포를 훨씬 쉽게 도와주는 편의적인 기능을 많이 가지고 있어서, 마우스 클릭 몇 번으로 서비스를 빠르고 쉽게 배포할 수 있다.
이 때문에 많은 개발자들이 웹 사이트를 만들 때 Next.js 프레임워크를 활용하기 시작했고, 배포는 Vercel로 하는 게 유행이 됐다.
Vercel이란?
Vercel을 기억하기 쉽게 한 문장으로 요약하자면 아래의 한 문장으로 기억해두면 충분하다.
Next.js 프레임워크로 만든 웹 애플리케이션을 쉽게 배포할 수 있게 해주는 서비스
(조금 더 정확히 얘기하자면 Vercel은 Next.js 이외에도 다양한 웹 애플리케이션을 배포할 수 있는 기능을 갖추고 있다.)