**파일 압축(File Compression)**은 데이터를 저장하거나 전송할 때 데이터의 중복을 제거하거나 패턴을 분석하여 파일의 용량을 줄이는 과정입니다.
알고리즘 | 설명 | 사용 예시 |
---|---|---|
JPEG (Joint Photographic Experts Group) | DCT (Discrete Cosine Transform) 기반 이미지 압축 | 이미지 |
MP3 (MPEG-1 Audio Layer III) | 심리음향 모델 기반 오디오 압축 | 오디오 |
H.264 / AVC | 블록 기반 동영상 압축, 고효율 | 영상 스트리밍 |
알고리즘 | 설명 | 대표 포맷 |
---|---|---|
Huffman Coding | 빈도 기반 트리 압축, 고전적 방식 | ZIP, GZIP |
LZ77 / LZ78 (Lempel-Ziv) | Sliding Window 및 Dictionary 기반 압축 | ZIP, PNG |
DEFLATE | LZ77 + Huffman 혼합 알고리즘 | GZIP, PNG, HTTP 압축 |
BWT (Burrows-Wheeler Transform) | 문자열 재배치 후 RLE (Run-Length Encoding) 사용 | bzip2 |
LZMA (Lempel-Ziv-Markov chain algorithm) | 고압축률, 사전 크기 큼 | 7z |
Zstandard (Zstd) | Facebook 개발, 빠르고 압축률 높음 | 현대 백업 시스템 |
데이터에서 패턴이나 중복성을 분석 (예: 사전, 빈도 분석)
분석된 데이터를 효율적으로 이진 코드로 표현 (예: 허프만 코딩, 산술 코딩)
LZ 계열에서 사용하는 과거 데이터를 저장하는 메커니즘 (Sliding Window 등)
Run-Length Encoding, Move-to-Front, CRC 체크섬 등 부가적 처리
알고리즘 | 압축률 | 속도 | 특징 |
---|---|---|---|
ZIP (DEFLATE) | 보통 | 빠름 | 범용성 좋음 |
bzip2 (BWT 기반) | 높음 | 느림 | 텍스트에 유리 |
LZMA (7z) | 매우 높음 | 느림 | 큰 사전, 높은 CPU 사용 |
Zstd | 좋음 | 매우 빠름 | 백업 시스템, 클라우드 사용 증가 |
GZIP | 중간 | 빠름 | 유닉스/리눅스 기본 압축 도구 |
위치 | 설명 | 예시 |
---|---|---|
저장소(Storage) | 파일 시스템 압축, 백업 압축 | NTFS 압축, ZFS |
전송(Transmission) | 네트워크 대역폭 절약 | HTTP GZIP, QUIC Zstd |
DB / 로그 | 압축 백업, 아카이빙 | PostgreSQL TOAST, Oracle RMAN |
파일 포맷 | 문서 및 패키징 | DOCX (ZIP + XML), APK (ZIP 기반) |
구분 | 손실 압축 | 무손실 압축 |
---|---|---|
목적 | 멀티미디어 용량 최소화 | 데이터 정확성 유지 |
복원 가능성 | 일부 손실 | 완전 복원 |
주요 알고리즘 | JPEG, MP3, H.264 | Huffman, LZ77, DEFLATE, BWT |
사용 예 | 이미지, 오디오, 영상 | 로그, DB 백업, 소스코드 |