
gzip 압축 알고리즘은 데이터를 압축하기 전에 다음과 같은 과정을 거칩니다.
1. 슬라이싱: 데이터를 8KB 크기의 블록으로 나누어 슬라이싱을 합니다. 이 블록은 이후 압축에 사용됩니다.
2. DEFLATE 알고리즘: 슬라이싱된 블록을 DEFLATE 알고리즘으로 압축합니다. DEFLATE 알고리즘은 LZ77과 Huffman 코딩을 결합한 알고리즘입니다.
3. LZ77 압축: DEFLATE 알고리즘의 LZ77 부분에서는 이전 블록에서 반복되는 패턴을 찾고, 그 패턴을 현재 블록에 적용하여 압축합니다.
4. Huffman 코딩: LZ77 압축된 데이터를 Huffman 코딩을 통해 압축합니다. Huffman 코딩은 데이터를 0과 1로 표현하는 알고리즘입니다.
5. CRC 계산: 압축된 데이터에 CRC(Cyclic Redundancy Check) 계산을 수행하여 오류 검출을 합니다.
6. 헤더 추가: 압축된 데이터에 헤더를 추가하여 gzip 파일을 생성합니다. 헤더에는 압축 알고리즘, 압축률, CRC 등이 포함됩니다.
2025-07-19 00:19