Brotli는 Google이 개발한 오픈 소스 무손실 압축 알고리즘으로, 웹 페이지와 리소스의 압축을 위해 주로 사용됩니다. 브라우저와 서버 간의 데이터 전송 시 압축을 통해 파일 크기를 줄여 속도와 효율성을 개선하는 데 목적이 있습니다. Brotli는 Gzip에 비해 압축률이 더 높아, 특히 텍스트 기반 리소스(HTML, CSS, JavaScript 등)에서 효율적입니다.
Brotli의 주요 특징
- 높은 압축률: Brotli는 Gzip보다 더 높은 압축률을 제공하여, 같은 파일에 대해 더 작은 크기의 압축 파일을 생성합니다. 이는 특히 저속 네트워크 환경에서 유리하며, 데이터 전송 비용을 줄이는 데 도움을 줍니다.
- 빠른 압축 및 해제 속도: Brotli는 데이터를 압축하고 해제하는 속도가 빨라, 페이지 로딩 시간을 단축시키고 사용자 경험을 개선하는 데 유리합니다.
- 브라우저 및 서버 지원: 최신 웹 브라우저(Chrome, Firefox, Edge, Safari 등)와 많은 서버(Apache, Nginx, IIS 등)에서 Brotli 압축을 지원합니다.
- 적응형 사전 사용: Brotli는 자주 사용되는 텍스트 패턴을 기반으로 사전을 사용하여 더 효과적인 압축을 수행합니다. 이 사전 덕분에 텍스트 기반 파일에서 더 높은 압축률을 유지할 수 있습니다.
Brotli의 작동 방식
Brotli는 기본적으로 LZ77 압축 알고리즘, 허프만 코딩, 2nd order context modeling을 결합한 방식으로 작동합니다. 이를 통해 중복 데이터를 효과적으로 압축하여 파일 크기를 줄입니다.
Brotli의 이점과 제한점
이점:
- 웹 리소스 압축 시 높은 효율성을 제공하여 네트워크 트래픽을 줄입니다.
- 페이지 로딩 속도를 향상시켜 SEO와 사용자 경험 개선에 도움을 줍니다.
- 무손실 압축 방식으로, 원본 파일의 품질이 그대로 유지됩니다.
제한점:
- Gzip에 비해 CPU 사용량이 다소 높을 수 있으며, 압축률에 따라 리소스를 더 많이 소모할 수 있습니다.
- 모든 서버 및 브라우저가 완벽하게 지원하지 않을 수 있어 Gzip과 함께 사용할 필요가 있습니다.
적용방법
IIS에서 Brotli 압축을 적용하려면 IIS Compression 모듈을 통해 추가 설정이 필요합니다. Windows Server 2019 및 Windows 10 버전 1809 이상부터 IIS에서 Brotli 압축이 기본적으로 지원되지만, 별도의 설정을 통해 활성화해야 합니다. 아래는 Brotli 압축을 IIS에서 활성화하는 단계입니다.
1. 필수 구성 요소 확인
IIS에서 Brotli 압축을 활성화하려면 Windows Server 2019 이상이 필요합니다. 또한, 최신 Windows 업데이트가 설치되어 있는지 확인하여 Brotli 모듈이 제대로 설치 및 활성화될 수 있도록 해야 합니다.
2. IIS Compression 모듈 확인 및 설치
- IIS 관리 도구에서 웹 서버 역할 아래에 Dynamic Content Compression 및 Static Content Compression 기능이 설치되어 있는지 확인합니다.
- 설치되어 있지 않다면, 다음 절차로 설치합니다:
- 서버 관리자를 열고 역할 및 기능 추가를 클릭합니다.
- **웹 서버 (IIS)**에서 역할 서비스 항목으로 이동해 Dynamic Content Compression 및 Static Content Compression을 선택한 후 설치를 진행합니다.
위의 링크에서 iiscompression 을 설치 합니다.
web.config 에 아래와 같은 설정을 합니다.<httpCompression directory="%SystemDrive%\inetpub\temp\IIS Temporary Compressed Files">
<scheme name="br" dll="%ProgramFiles%\IIS\IIS Compression\iisbrotli.dll" />
<dynamicTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/x-javascript" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="*/*" enabled="false" />
</dynamicTypes>
<staticTypes>
<add mimeType="text/*" enabled="true" />
<add mimeType="message/*" enabled="true" />
<add mimeType="application/javascript" enabled="true" />
<add mimeType="application/atom+xml" enabled="true" />
<add mimeType="application/xaml+xml" enabled="true" />
<add mimeType="image/svg+xml" enabled="true" />
<add mimeType="*/*" enabled="false" />
</staticTypes>
</httpCompression>
헤더에 Accept-Encoding: br 이 있다면 적용이 완료되었습니다.
'개발' 카테고리의 다른 글
nodejs 설치 관리 툴 fnm (0) | 2024.10.02 |
---|---|
크롬에서 input text에 아이디가 채워지는 현상 (0) | 2022.09.22 |
IIS 에러 페이지 설정 (0) | 2022.07.18 |
Cookie 설정 (0) | 2022.05.17 |
C# Sharepoint tCompressedString to string(xml) (0) | 2022.02.02 |
댓글