Front-end/Optimizing

이미지 최적화와 관련된 용어 정리

xeunnie 2025. 3. 4. 01:00
728x90
반응형

이미지 최적화와 관련된 용어 정리

 

이미지 최적화는 웹 성능과 사용자 경험(UX)을 크게 좌우하는 중요한 요소입니다. 특히 blurDataURLremote 이미지와 같은 용어는 최적화를 다루는 개발자라면 꼭 알아야 할 개념들인데요. 이 글에서는 관련된 용어들을 자세히 다루며, 각각의 역할과 적용 방법을 살펴보겠습니다.

 

1. blurDataURL: 이미지 로딩의 부드러운 경험 제공

 

🌟 “이미지가 로드되기 전에 임시로 보여주는 흐릿한 이미지”

 

blurDataURL은 저해상도 이미지(흐릿하게 보이는 이미지)를 base64로 인코딩하여, 최종 이미지가 로드되기 전까지 사용자에게 임시로 표시하는 기술입니다. 이를 통해 사용자는 “이미지가 없다”는 느낌을 받지 않으며, 부드러운 경험을 제공합니다.

 

📋 특징

용량이 작다: base64로 인코딩된 작은 이미지 데이터.

로딩 중 시각적 개선: 최종 이미지 로드 전까지 빈 화면 대신 흐릿한 이미지를 보여줌.

SEO에 유리: 이미지가 없는 경우보다 사용자 이탈률을 줄임.

 

🔧 Next.js에서 사용 예제

 

import Image from 'next/image';

 

function Example() {

  return (

    <Image

      src="/large-image.jpg"

      alt="Example Image"

      width={800}

      height={600}

      placeholder="blur"

      blurDataURL="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAAAA..."

    />

  );

}

 

🛠️ 사용 이유

로딩 중 콘텐츠 이동(LCP)에 영향을 최소화.

초기 화면에서 이미지의 레이아웃을 유지.

 

2. Remote 이미지: 외부 서버에서 가져오는 이미지

 

🌟 “다른 도메인 또는 외부 저장소에서 호스팅된 이미지”

 

Remote 이미지로컬에 저장된 이미지가 아닌, 외부 URL에서 제공되는 이미지입니다. 주로 CDN(Content Delivery Network)을 활용하여 이미지를 빠르게 로드합니다.

 

📋 특징

호스팅: 이미지는 외부 서버(CDN)에 저장.

유연성: 이미지가 다양한 도메인에서 제공될 수 있음.

주의점: CORS(Cross-Origin Resource Sharing) 문제를 해결해야 함.

 

🔧 Next.js에서 Remote 이미지 설정

 

Next.js는 next.config.js 파일에서 외부 이미지를 허용할 도메인을 지정해야 합니다.

 

module.exports = {

  images: {

    remotePatterns: [

      {

        protocol: 'https',

        hostname: 'example.com',

      },

    ],

  },

};

 

🛠️ 활용 사례

클라우드 서비스(예: AWS S3, Cloudflare Images)에서 이미지 제공.

외부 API에서 제공받는 이미지 처리.

 

3. Base64 이미지: 문자열로 표현된 이미지 데이터

 

🌟 “이미지를 Base64 문자열로 인코딩한 형태”

 

Base64 이미지는 이미지 데이터를 텍스트 형태로 표현하는 방식으로, HTML, CSS, 또는 JavaScript에서 직접 포함할 수 있습니다.

 

📋 특징

용량 문제: 작은 이미지는 효율적이나, 큰 이미지는 불리.

인라인 삽입: 추가 요청 없이 페이지 내에서 이미지를 렌더링 가능.

SEO에 영향 없음: 하지만 성능 상의 장단점이 있음.

 

🔧 HTML 예제

 

<img src="data:image/jpeg;base64,/9j/4AAQSk..." alt="Base64 Image">

 

🛠️ 활용 사례

Placeholders, blurDataURL에 주로 사용.

 

4. Lazy Loading: 지연된 이미지 로드

 

🌟 “이미지가 필요할 때 로드하는 기술”

 

Lazy Loading은 사용자가 볼 필요가 없는 이미지를 미리 로드하지 않는 기술입니다. 이를 통해 초기 로딩 시간을 단축하고, 페이지 성능을 개선합니다.

 

📋 특징

스크롤 이벤트 기반: 사용자가 해당 이미지를 볼 때 로드.

SEO 친화적: 속도 개선으로 검색 엔진 평가에 긍정적.

 

🔧 React 예제

 

<img src="large-image.jpg" loading="lazy" alt="Lazy Loaded Image" />

 

5. Content Delivery Network (CDN)

 

🌟 “전 세계 서버 네트워크를 활용한 콘텐츠 배포”

 

CDN은 지리적으로 분산된 서버 네트워크를 통해 콘텐츠를 전달합니다. 이미지를 포함한 정적 자산을 빠르게 제공할 수 있는 강력한 도구입니다.

 

📋 특징

속도 향상: 사용자와 가까운 서버에서 리소스를 제공.

트래픽 분산: 대규모 트래픽 처리 가능.

보안 강화: DDoS 방어 등 보안 기능 제공.

 

6. 이미지 최적화와 포맷 비교

 

🌟 “효율적인 이미지 포맷과 그 장단점”

 

🖼️ 이미지 포맷

1. JPEG: 손실 압축, 작은 크기, 정적 이미지에 적합.

2. PNG: 비손실 압축, 투명도 지원.

3. WebP: 높은 압축률, 좋은 품질. 현재 가장 인기 있는 최적화 포맷.

4. AVIF: WebP보다 더 높은 압축률 제공.

 

🛠️ Next.js에서 이미지 최적화

 

Next.js의 Image 컴포넌트를 사용하면, WebP 같은 최적화된 포맷을 자동으로 사용할 수 있습니다.

 

<Image

  src="/example.jpg"

  alt="Optimized Image"

  width={600}

  height={400}

/>

 

7. 클라우드 기반 이미지 최적화 도구

 

☁️ “이미지 최적화를 위한 도구들”

1. Cloudinary: URL 기반 이미지 처리.

2. Imgix: 동적 이미지 변환.

3. Kraken.io: 파일 크기 줄이기.

 

8. 이미지 최적화를 위한 팁

1. 적절한 포맷 선택: 일반적으로 WebP 또는 AVIF 사용.

2. Lazy Loading: 불필요한 초기 로드를 방지.

3. CDN 활용: 글로벌 사용자를 위해 빠른 배포.

4. blurDataURL 사용: 사용자 경험 개선.

 

결론

이미지 최적화는 단순히 로딩 속도 개선 이상의 효과를 가져옵니다. blurDataURL로 부드러운 사용자 경험을 제공하고, remote 이미지CDN으로 성능을 극대화하며, 다양한 포맷을 활용해 적절한 상황에 맞는 최적화를 적용하세요.

 

🌷전설의 개발자가 되어봅시당!🌷

728x90
반응형