정적 사이트를 위한 CDN 대 로컬 호스팅: 장단점

게시일 June 7, 2024

서론: 파일은 어디에 있어야 할까요?

Astro, Next.js, Hugo와 같은 프레임워크로 정적 웹사이트를 구축할 때 정적 자산(이미지, CSS, JavaScript)을 제공하는 두 가지 주요 옵션이 있습니다:

  1. 로컬 호스팅: 프로젝트 저장소 내에 자산을 직접 배치합니다(예: public/ 또는 src/assets/ 폴더). 웹사이트와 동일한 도메인에서 제공됩니다.
  2. CDN 호스팅(콘텐츠 전송 네트워크): 자산을 별도의 서비스(예: Cloudflare R2, AWS S3 또는 전용 이미지 CDN)에 업로드하고 사이트에서 링크합니다.

Vercel 및 Cloudflare Pages와 같은 최신 호스팅 플랫폼은 기본적으로 CDN을 제공하여 경계를 모호하게 만들었지만, 성능과 비용을 최적화하려면 핵심적인 장단점을 이해하는 것이 여전히 중요합니다.

로컬 호스팅: 간단하고 현대적인 기본값

최신 정적 사이트 호스팅 플랫폼에서 “로컬” 호스팅은 약간 잘못된 명칭입니다. Vercel, Netlify 또는 Cloudflare Pages에 사이트를 배포하면 자산이 자동으로 글로벌 CDN에 배포됩니다.

장점:

  • 단순성: 가장 쉬운 접근 방식입니다. 프로젝트에 파일을 드롭하고 링크하기만 하면 됩니다. 관리할 별도의 빌드 단계나 서비스가 없습니다.
  • 추가 비용 없음: 호스팅은 요금제에 포함되어 있습니다. 별도의 제공업체로부터 예기치 않은 대역폭 청구서가 없습니다.
  • HTTP/2 및 HTTP/3 이점: 동일한 도메인에서 자산을 제공하면 브라우저가 단일 연결을 재사용할 수 있으므로 HTTP/2 및 HTTP/3과 같은 최신 프로토콜에서 매우 효율적이며 새 DNS 조회 및 핸드셰이크의 오버헤드를 제거합니다.
  • SEO에 더 좋음(논란의 여지가 있음): 이미지를 자체 도메인에 유지하면 Google 이미지 트래픽에서 전체 “SEO 주스”를 얻을 수 있습니다. 검색 엔진이 이미지를 타사 도메인에 귀속시킬 위험이 없습니다.

단점:

  • 제한된 변환: 전용 CDN이 제공하는 실시간 이미지 크기 조정, 형식 변환(예: AVIF 자동 제공) 또는 장치별 최적화와 같은 고급 기능을 얻을 수 없습니다.
  • 빌드 시간: 수천 개의 이미지가 있는 경우 저장소를 부풀리고 빌드 시간을 늘릴 수 있습니다.
  • Git 저장소 크기: 대용량 미디어 파일은 Git에 이상적이지 않습니다. Git LFS(대용량 파일 저장소)와 같은 서비스가 도움이 될 수 있지만 복잡성이 추가됩니다.

결론: 대부분의 중소 규모 정적 사이트(블로그, 포트폴리오, 마케팅 사이트)의 경우 로컬 호스팅이 최선의 선택입니다. 최신 플랫폼에서 동일 도메인 호스팅의 단순성과 성능 이점은 단점을 능가합니다.

전용 CDN 호스팅: 확장성과 고급 기능을 위해

이 접근 방식은 자산을 클라우드 스토리지 서비스(예: AWS S3 또는 Cloudflare R2)에 저장하고 CDN을 통해 제공하는 것을 포함합니다.

장점:

  • 고급 이미지 최적화: Cloudinary, Imgix 또는 Cloudflare Images와 같은 서비스는 최상의 이미지 형식(AVIF/WebP)을 자동으로 제공하고, 사용자 화면 크기에 따라 이미지 크기를 조정하며, 고급 압축을 모두 실시간으로 적용할 수 있습니다. 이는 상당한 성능 향상으로 이어질 수 있습니다.
  • 빌드와 분리됨: 사이트 저장소는 작게 유지되고 빌드 프로세스는 외부 자산에 링크하기만 하므로 빠릅니다. 이는 사용자 생성 콘텐츠가 많은 사이트에 이상적입니다.
  • 대규모에서 잠재적으로 저렴함: 테라바이트 규모의 트래픽이 있는 사이트의 경우 전용 CDN의 기가바이트당 비용이 정적 호스팅 제공업체의 최상위 요금제보다 낮을 수 있습니다.

단점:

  • 복잡성: 관리, 구성 및 지불해야 할 또 다른 서비스를 도입합니다. 자산을 업로드하기 위한 파이프라인을 설정해야 합니다.
  • 비용: 처음에는 저렴한 경우가 많지만 사이트 트래픽이 많으면 대역폭 비용이 예측 불가능하고 빠르게 누적될 수 있습니다.
  • 성능 오버헤드: 다른 도메인에서 자산을 제공하려면 브라우저가 별도의 DNS 조회 및 연결 핸드셰이크를 수행해야 하므로 특히 느린 네트워크에서 초기 렌더링이 느려질 수 있습니다.
  • SEO 복잡성: 검색 엔진이 이미지를 도메인과 올바르게 연결하도록 주의해야 합니다. CNAME을 사용하여 하위 도메인(예: cdn.yourdomain.com)에서 CDN 콘텐츠를 제공하는 것이 일반적인 모범 사례입니다.

결론: 전용 CDN은 대규모 애플리케이션, 사용자 생성 콘텐츠가 있는 사이트 또는 호스팅 플랫폼이 제공하지 않는 고급 실시간 이미지 변환이 절대적으로 필요한 경우에 가장 적합합니다.

2025년 권장 사항: 로컬에서 시작하여 필요할 때 확장

새 프로젝트의 경우 답은 분명합니다. 로컬 호스팅으로 시작하세요.

  1. Vercel, Netlify 또는 Cloudflare Pages와 같은 최신 정적 호스팅 제공업체를 선택합니다.
  2. 이미지와 자산을 프로젝트 저장소 내에 보관합니다.
  3. 커밋하기 전에 이미지를 최적화하세요. 이미지 압축기와 같은 도구를 사용하여 파일 크기를 줄이고 이미지 변환기를 사용하여 WebP와 같은 최신 형식으로 전환하세요.
  4. <picture> 태그 또는 srcset 속성을 사용하여 반응형 이미지를 구현하여 다양한 크기를 제공하세요.

이 간단하고 비용 효율적인 설정은 95%의 정적 웹사이트에 충분한 성능을 제공할 것입니다. 대규모 미디어 라이브러리가 빌드 속도를 늦추거나 복잡한 실시간 이미지 조작이 필요한 경우와 같은 특정 확장성 문제에 직면했을 때만 전용 CDN으로 전환하는 것을 고려해야 합니다.

Advertisement

관련 가이드