zip, gzip, zstd, bzip2, xz 등 소프트웨어의 압축 알고리즘에 대해 공부해보자!
사내 프로젝트를 진행하며 build 폴더를 S3에 업로드하는 업무를 진행했다. 이 과정에서 build 폴더의 용량에 따라 시간, 금액이 차이가난다는 것을 알게되었다. 사내에서 프로젝트를 진행하면서 2GB가 넘는 build 폴더를 어떻게하면 효율적으로 S3에 업로드할 수 있을까라는 고민을 하게되었고, 그 과정속에서 압축에 대해 공부한 내용을 기록에 남기려한다. 무손실 압축(Lossless Compression) 무손실 압축은 손실 압축과 달리 데이터 손실 없이 파일 크기를 줄 이는 데이터 압축의 한 종류다. 무손실 압축의 핵심 아이디어는 파일에 있는 콘텐츠의 통계적 중복성을 활용하는 것으로 압축하는 동안 긴 기호를 더 짧은 표현으로 대체하여 데이터 크기를 줄인다. 여러가지 방법 중 Dictionary-Based algorithm은 무손실 압축을 수행하는 데 가장 널리 사용되는 알고리즘이다. 이 알고리즘은 포인터가 포함된 dictionary를 구축해 더 작은 포인터로 대체하는 방식이다…