브로틀리
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
브로틀리는 웹 폰트 전송 크기를 줄이기 위해 2013년 구글의 이르키 알라쿠이얄라와 졸탄 사바드카가 개발한 무손실 데이터 압축 알고리즘이다. HTTP 스트림 압축을 위해 일반화되었으며, 자주 사용되는 단어와 구문으로 구성된 사전과 LZ77, 허프만 부호화 등을 기반으로 압축률을 향상시켰다. 2016년 IETF에서 브로틀리 압축 데이터 형식 사양을 승인했으며, 웹 오픈 폰트 형식의 필수적인 부분으로 사용되고 있다. 2022년 7월 기준, 전 세계 사용자의 96%가 브로틀리를 지원하는 브라우저를 사용하며, 웹 서버, 클라이언트 및 다양한 도구에서 지원된다.
더 읽어볼만한 페이지
- 데이터 압축 - 해상도
해상도는 1인치당 픽셀 또는 점의 수를 나타내는 지표로, 이미지의 선명도를 결정하며 DPI와 PPI 단위를 사용하고, 높을수록 섬세한 표현이 가능하다. - 데이터 압축 - MP3
MP3는 MPEG 표준의 오디오 압축 형식으로, 인간의 청각 심리를 이용하여 음질 저하를 최소화하며 데이터를 압축하고, 1991년에 발명되어 2017년 특허 만료로 퍼블릭 도메인이 되었다. - 무손실 압축 알고리즘 - VP9
VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다. - 무손실 압축 알고리즘 - FLAC
FLAC은 조시 콜슨이 개발한 무손실 오디오 코덱으로, 원본 음질을 유지하면서 파일 크기를 줄이기 위해 오디오 데이터를 압축하며, 4~32비트 샘플 크기, 최대 8 채널을 지원하고, 미국 국립 문서 기록 관리청에서 디지털 오디오에 선호되는 형식으로 지정되었다. - 자유 라이브러리 - Tk (소프트웨어)
Tk는 Tcl 스크립팅 언어의 크로스 플랫폼 GUI 툴킷으로, 다양한 플랫폼 이식과 여러 프로그래밍 언어 바인딩을 지원하며 사용자 정의 가능한 위젯들을 제공한다. - 자유 라이브러리 - SQLite
SQLite는 D. 리처드 히프가 설계한 서버리스 구조의 임베디드 SQL 데이터베이스 엔진으로, 별도의 DBMS 없이 프로그램에 통합되어 작동하며 전체 데이터베이스를 단일 파일로 저장하는 특징이 있고, 다양한 운영체제와 환경에서 널리 사용된다.
브로틀리 - [IT 관련 정보]에 관한 문서 | |
---|---|
개요 | |
이름 | Brotli |
종류 | 데이터 압축 라이브러리 |
개발자 | 지르키 알라쿠이야라, 유진 클류치니코프, 로버트 오브릭, 졸탄 자바드카, 로드 반데벤 |
최초 공개일 | 2013년 10월 15일 |
안정화 버전 | 1.1.0 |
안정화 버전 공개일 | 2023년 8월 31일 |
프로그래밍 언어 | C |
운영 체제 | 크로스 플랫폼 |
라이선스 | MIT 라이선스 |
웹사이트 | Brotli 공식 웹사이트 |
2. 역사
2013년, 구글의 이르키 알라쿠이얄라와 졸탄 사바드카(Zoltán Szabadka)는 WOFF 웹 폰트 전송 크기를 줄이기 위해 브로틀리를 처음 개발했다.[1] 2013년부터 2016년까지 알라쿠이얄라와 사바드카는 브로틀리 사양을 완성했다. 이 사양에는 2013년에 구글의 zopfli 구현으로 deflate 및 gzip 호환 압축을 개발한 에브게니 클리우크니코프(Evgenii Kliuchnikov)와 로드 반데베네(Lode Vandevenne)가 개발한 참조 구현이 함께 제공되었다.[2] zopfli와 달리 브로틀리는 새로운 데이터 형식이었으며, 압축률을 더욱 개선할 수 있었다.[12]
2015년 9월, 브로틀리 사양은 HTTP 스트림 압축(콘텐츠 인코딩 유형 "br")을 위해 일반화되었으며,[12] 일반화된 버전은 자주 사용되는 단어와 구문으로 구성된 미리 정의된 사전을 사용하여 압축률을 향상시켰다.
2015년 9월, 구글 소프트웨어 엔지니어들은 일반적인 무손실 데이터 압축 기능을 개선한 브로틀리 버전을 출시했다. 특히 HTTP 압축 사용에 중점을 두었으며, 인코더 재작성, 압축률 및 속도 개선, 스트리밍 API 개선, 압축 품질 레벨 추가 등 다양한 개선이 이루어졌다.[12] 플랫폼 간 성능 향상 및 디코딩 메모리 감소도 이루어졌다.
인터넷 기술 특별 위원회는 2016년 7월에 브로틀리 압축 데이터 형식 사양을 정보성 의견 요청(7932)으로 승인했다.[3] 브로틀리 데이터 형식은 웹 오픈 폰트 형식 2차 반복의 필수적인 부분이다.[3] 이는 W3C에서 폰트 기술 표준화를 위해 전미 텔레비전 예술 과학 아카데미로부터 2021년 기술 및 엔지니어링 에미상을 수상했다.[4][5]
2022년 7월 현재, 웹 브라우저에 브로틀리 지원이 추가되었으며, 전 세계 사용자의 96%가 이 형식을 지원하는 브라우저를 사용하고 있다.[6]
2016년에 Dropbox는 악성 클라이언트에 대해 더 안전해야 한다는 요구 사항을 충족하기 위해 Rust에서 브로틀리를 재구현했다.[7][8]
2. 1. 개발 초기
2013년, 구글의 이르키 알라쿠이얄라와 졸탄 사바드카(Zoltán Szabadka)는 WOFF 웹 폰트 전송 크기를 줄이기 위해 브로틀리를 처음 개발했다.[1] 2013년부터 2016년까지 알라쿠이얄라와 사바드카는 브로틀리 사양을 완성했다. 이 사양에는 2013년에 구글의 zopfli 구현으로 deflate 및 gzip 호환 압축을 개발한 에브게니 클리우크니코프(Evgenii Kliuchnikov)와 로드 반데베네(Lode Vandevenne)가 개발한 참조 구현이 함께 제공되었다.[2] zopfli와 달리 브로틀리는 새로운 데이터 형식이었으며, 압축률을 더욱 개선할 수 있었다.[12]2. 2. 일반화 및 발전
브로틀리는 2013년 Jyrki Alakuijala와 Zoltán Szabadka가 WOFF 웹 폰트 전송 크기를 줄이기 위해 처음 개발했다.[1] 2015년 9월, 브로틀리 사양은 HTTP 스트림 압축(콘텐츠 인코딩 유형 "br")을 위해 일반화되었으며,[12] 일반화된 버전은 자주 사용되는 단어와 구문으로 구성된 미리 정의된 사전을 사용하여 압축률을 향상시켰다.[12]2015년 9월, 구글 소프트웨어 엔지니어들은 일반적인 무손실 데이터 압축 기능을 개선한 브로틀리 버전을 출시했다. 특히 HTTP 압축 사용에 중점을 두었으며, 인코더 재작성, 압축률 및 속도 개선, 스트리밍 API 개선, 압축 품질 레벨 추가 등 다양한 개선이 이루어졌다.[12] 플랫폼 간 성능 향상 및 디코딩 메모리 감소도 이루어졌다.[12] 텍스트 파일을 압축하는 경우, Brotli는 일반적으로 Deflate에 비해 20% 정도 압축률이 높고, 압축/해제 속도는 대체로 비슷하게 유지된다.
인터넷 기술 특별 위원회는 2016년 7월에 브로틀리 압축 데이터 형식 사양을 정보성 의견 요청(7932)으로 승인했다.[3] 브로틀리 데이터 형식은 웹 오픈 폰트 형식 2차 반복의 필수적인 부분이다.[3]
2022년 7월 현재, 웹 브라우저에 브로틀리 지원이 추가되었으며, 전 세계 사용자의 96%가 이 형식을 지원하는 브라우저를 사용하고 있다.[6]
2. 3. 표준화
인터넷 기술 특별 위원회(IETF)는 2016년 7월에 브로틀리 압축 데이터 형식 사양을 정보성 의견 요청(RFC) 7932로 승인했다.[3] 브로틀리 데이터 형식은 웹 오픈 폰트 형식(WOFF2)의 필수적인 부분이 되었으며,[3] 전미 텔레비전 예술 과학 아카데미는 2021년 W3C에 폰트 기술 표준화에 대한 공로로 브로틀리를 포함한 WOFF2에 대해 기술 및 엔지니어링 에미상을 수여했다.[4][5]3. 알고리즘
브로틀리는 LZ77, LZ78, 허프만 부호화 및 2차 문맥 모델링의 현대적인 변형을 기반으로 한다.[9][2] 리터럴 및 복사 거리에 대한 컨텍스트 모델 사용, 과거 거리를 통한 복사 거리 설명, 엔트로피 코드 선택에서 move-to-front 큐 사용, 리터럴 및 복사 길이의 결합 엔트로피 코딩, 블록 분할에서 그래프 알고리즘 사용, 더 큰 후방 참조 창 등 Deflate를 개선하는 여러 알고리즘 및 형식 수준의 개선 사항을 포함한다.[9][2]
대부분의 범용 압축 알고리즘과 달리, 브로틀리는 동적으로 채워지는("슬라이딩 윈도우") 딕셔너리 외에 약 120 KiB 크기의 미리 정의된 딕셔너리를 사용한다.[9][2] 미리 정의된 딕셔너리에는 대규모 코퍼스의 텍스트 및 HTML 문서에서 파생된 13,000개 이상의 일반적인 단어, 구문 및 기타 부분 문자열이 포함되어 있다.[9][2] 미리 정의된 딕셔너리는 파일이 주로 일반적으로 사용되는 단어를 포함하는 경우 압축을 증가시키는 것으로 나타났다.[10]
브로틀리의 슬라이딩 윈도우는 16 MiB로 제한된다. 이는 리소스가 제한된 휴대폰에서 디코딩을 가능하게 하지만, 더 큰 파일이 있는 압축 벤치마크에서는 브로틀리의 성능을 저하시킨다. 작은 윈도우 크기의 제약은 RFC7932(브로틀리 자체)와 호환되지 않는 ''대형 윈도우 브로틀리''를 사용하여 완화할 수 있다.[11]
4. 이름의 유래
구글의 'zopfli' 압축 알고리즘은 스위스 독일어로 간식 크기의 땋은 버터 빵을 뜻하는 'Zöpfli'에서 이름을 따왔다.[12] 'brotli'는 스위스 독일어로 빵 롤을 뜻하는 'Brötli'에서 이름을 따왔다.[12]
5. 산업 지원 현황
5. 1. 브라우저
구글 크롬은 49 버전(2016년 4월 20일 출시)부터 지원하며[41][19], 모질라 파이어폭스는 44 버전(2016년 1월 26일 출시)부터 지원한다.[18][43][44] 오페라는 38 버전(2016년 6월 8일 출시)부터 지원하고[19][41], 마이크로소프트 엣지는 15 버전(2017년 4월 5일 출시)부터 지원하며[20][42], 사파리는 11 버전(2017년 10월 5일 출시)부터 지원한다. 2022년 7월 현재, 전 세계 사용자의 96%가 브로틀리를 지원하는 브라우저를 사용하고 있다.5. 2. 웹 서버
아파치 HTTP 서버는 2.4.26 버전부터 `mod_brotli` 모듈을 통해 브로틀리를 지원한다.[24][45] 마이크로소프트 IIS는 2018년 5월부터 확장 기능을 통해 지원하며, 공식 지원은 아니지만 커뮤니티 모듈도 존재한다.[25][46] 마이크로소프트 애저 프론트 도어는 2019년 4월 17일 출시 이후 브로틀리를 사용하여 엣지에서 콘텐츠를 동적으로 압축할 수 있다.[26][27] nginx는 2016년 12월부터 Google에서 제공하는 `ngx_brotli` 모듈을 통해 지원한다.[47] Node.js는 11.7.0 버전부터 내장 네이티브 인코더 및 디코더를 제공한다. 아마존 클라우드프론트는 2020년 9월부터 브로틀리를 사용하여 엣지에서 캐시 가능한 응답을 자동 압축할 수 있다.[28][48] 라이트스피드 웹 서버는 2017년 7월 버전 5.2부터 정적 파일에 대해 지원한다. 클라우드플레어 CDN은 엣지 노드와 사용자 간에 데이터를 압축하는 브로틀리 옵션을 제공한다.[29] 나비서버는 4.99.17b1 버전부터 지원한다. Caddy는 0.9.4 버전(2016년 12월 21일)부터 정적으로 압축된 .br 파일을 제공한다. lighttpd는 1.4.56 버전(2020년 11월)부터 `mod_deflate`를 통해 .br을 지원한다.[30]5. 3. 기타 클라이언트 및 도구
cURL은 2017년 11월 29일 출시된 7.57 버전부터 libbrotli를 사용하여 "br" 콘텐츠 인코딩 방식을 지원하는 컴파일 타임 옵션을 가지고 있다.[21] 7-Zip은 7zip-zstd에 의해 브로틀리를 확장하여 사용할 수 있다.[22] PeaZip은 압축 및 추출을 위해 브로틀리 .BR 형식을 지원한다.[23]6. 기타
참조
[1]
간행물
Google Open Source Blog
opensource.googleblog.com
2015-02-18
[2]
간행물
The Comprehensive R Archive Network
r-project.org
2015-09-22
[3]
간행물
RFC 7932: Brotli Compressed Data Format
IETF Trust
[4]
웹사이트
W3C Receives Emmy Award for Standardizing Font Technology
https://www.w3.org/b[...]
2022-06-01
[5]
웹사이트
Changing the face of the web: W3C Web Fonts Working Group and MPEG recognized with a Technology & Engineering Emmy Award
https://www.w3.org/2[...]
2022-06-01
[6]
웹사이트
Can I use... - Brotli
https://caniuse.com/[...]
2022-06-28
[7]
Youtube
Lossless compression with Brotli in Rust for a bit of Pied Piper on the backend
https://dropbox.tech[...]
Daniel Reiter Horn and Mehant Baid
2016-06-29
[8]
Youtube
-broccoli--syncing-faster-by-syncing-less
https://dropbox.tech[...]
Rishabh Jain and Daniel Reiter Horn
2020-08-04
[9]
간행물
The Register
theregister.co.uk
2015-09-23
[10]
서적
7th IEEE International Conference on Computer and Information Technology (CIT 2007)
[11]
웹사이트
How to use large window sizes? · Issue #639 · google/brotli
https://github.com/g[...]
[12]
간행물
Google Open Source Blog
opensource.googleblog.com
2015-09-22
[13]
간행물
Adler brotli
GitHub
2015-01-26
[14]
웹사이트
Brotli Compression: How Much Will It Reduce Your Content?
https://paulcalvano.[...]
2021-03-07
[15]
웹사이트
More Site Speed Gains with Brotli Compression Algorithm
https://www.sitegrou[...]
2021-03-07
[16]
웹사이트
brotli(1) manual page
https://manned.org/b[...]
[17]
웹사이트
Brotli support · Issue #1238 · libarchive/libarchive
https://github.com/l[...]
[18]
간행물
Mozilla Firefox
Mozilla Foundation
2016-01-26
[19]
간행물
Chrome Platform Status
chromestatus.com
2016-01-15
[20]
간행물
Microft Edge Developer
blogs.windows.com
2016-12-20
[21]
웹사이트
curl - Changes
https://curl.haxx.se[...]
2018-01-14
[22]
웹사이트
README
https://github.com/m[...]
2021-10-15
[23]
웹사이트
Google Brotli: How to compress, open, extract BR files
https://peazip.githu[...]
[24]
간행물
Apache HTTPD repository
svn.apache.org
[25]
웹사이트
Higher Compression Ratio with Brotli compression
https://docs.microso[...]
2023-10-06
[26]
웹사이트
Caching with Azure Front Door
https://docs.microso[...]
2023-06-15
[27]
웹사이트
Azure Front Door Service is now available
https://azure.micros[...]
[28]
웹사이트
Amazon CloudFront announces support for Brotli compression
https://aws.amazon.c[...]
[29]
웹사이트
What will Cloudflare compress?
https://support.clou[...]
[30]
웹사이트
lighttpd 1.4.56 release info
https://redmine.ligh[...]
[31]
웹사이트
Brotli v1.0.0
https://github.com/g[...]
GitHub
2019-09-21
[32]
웹사이트
Releases
https://github.com/g[...]
GitHub
2023-12-27
[33]
웹사이트
Brotli Compressed Data Format
https://www.ietf.org[...]
IETF Internet Drafts
2016-11-01
[34]
웹사이트
Brotli Source Code - GitHub
https://github.com/g[...]
github.com
2017-01-17
[35]
웹사이트
Chrome and Firefox are about to get a lot faster thanks to Google's new data compression algorithm
http://www.techspot.[...]
2016-01-20
[36]
웹사이트
Can I use... Support tables for HTML5, CSS3, etc
https://caniuse.com/[...]
2020-10-09
[37]
뉴스
Google Open Source Blog: Introducing Brotli: a new compression algorithm for the internet
http://google-openso[...]
[38]
웹사이트
Smaller Fonts with WOFF 2.0 and unicode-range
http://googledevelop[...]
2015-02-18
[39]
웹사이트
Google's new squeeze: Brotli compression open-sourced
http://www.theregist[...]
The Register
2015-09-23
[40]
웹사이트
Comparison of Brotli, Deflate, Zopfli, LZMA, LZHAM and Bzip2 Compression Algorithms
http://www.gstatic.c[...]
Google
2015-09-22
[41]
간행물
Chrome Platform Status
chromestatus.com
2016-01-15
[42]
간행물
Microft Edge Developer
blogs.windows.com
2016-12-20
[43]
웹사이트
Can I use... Support tables for HTML5, CSS3, etc
http://caniuse.com/#[...]
2016-01-07
[44]
웹사이트
Firefox 44 release notes
https://www.mozilla.[...]
2016-01-26
[45]
웹사이트
CHANGES_2.4
https://www.apache.o[...]
2018-05-20
[46]
웹사이트
IIS Brotli extension page
https://www.iis.net/[...]
2016-10-06
[47]
웹사이트
ngx_brotli project page
https://github.com/g[...]
2016-10-06
[48]
웹사이트
Amazon CloudFront announces support for Brotli compression
https://aws.amazon.c[...]
2021-07-08
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com