데이터 압축 (Data Compression)
데이터 압축(data compression)은 데이터를 표현하는 데 필요한 비트 수를 줄이는 것입니다. 데이터 안의 중복과 규칙성을 찾아 더 짧은 표현으로 바꾸는 방식으로 이루어지며, 원본으로 되돌리는 과정을 압축 해제라고 합니다. 데이터를 압축하면 저장 용량을 절약하고, 파일 전송 속도를 높이며, 저장 하드웨어 및 네트워크 대역폭 비용을 줄일 수 있습니다.
압축의 원리
데이터 압축의 핵심은 중복을 제거하는 데 있습니다. 예를 들어 반복되는 단어나 패턴이 있는 텍스트 파일에서는 알고리즘이 정보를 잃지 않고 이러한 반복을 더 짧은 코드로 대체할 수 있습니다. 자주 나오는 기호에 짧은 코드를 주는 허프만 부호화, 앞에서 나온 문자열을 가리키는 LZ77·LZ78 계열이 대표적입니다. 섀넌의 정보 이론에 따르면 무손실 압축으로 줄일 수 있는 크기에는 데이터의 엔트로피라는 하한이 있으며, 이미 무작위에 가까운 데이터는 거의 줄어들지 않습니다.
- 무손실 압축: 원본 파일을 압축된 버전에서 완벽하게 재구성할 수 있습니다. 문서, 프로그램, 블록체인 데이터처럼 한 비트도 바뀌면 안 되는 데이터에 씁니다. 일반적인 형식에는 ZIP과 PNG가 있습니다.
- 손실 압축: 더 높은 압축률을 얻기 위해 사람이 잘 알아채지 못하는 일부 정보를 버립니다. 완벽한 복원이 필요하지 않은 이미지(JPEG)와 오디오(MP3) 같은 미디어 파일에 자주 사용됩니다.
데이터를 압축하는 이유
- 저장 공간 절약: 압축된 파일은 하드 드라이브나 클라우드 저장 공간을 덜 차지합니다.
- 파일 전송 속도 향상: 더 작은 파일은 인터넷이나 장치 간에 더 빠르게 전송됩니다.
- 비용 절감: 저장 용량과 대역폭 사용량이 줄면 하드웨어와 네트워크에 드는 비용도 줄어듭니다.
- 웹사이트 성능 향상: 압축된 웹 페이지와 이미지는 더 빨리 로드됩니다.
실제 사례
- 파일 압축: .zip 파일이 원본 폴더보다 작은 것은 무손실 압축을 사용하기 때문입니다.
- 음악 스트리밍: 스트리밍 서비스는 음악 파일을 손실 압축해 전송하므로 적은 데이터로 오디오를 들을 수 있습니다.
- 디지털 사진: 휴대폰 사진은 보통 JPEG 등으로 압축되어 저장됩니다. 12메가픽셀 사진이 원시 데이터 크기만큼의 저장 공간을 차지하지 않는 이유입니다.
암호화·블록체인과의 관계
- 압축 후 암호화: 잘 암호화된 데이터는 무작위처럼 보여 거의 압축되지 않으므로, 압축이 필요하면 암호화보다 먼저 합니다. 다만 공격자가 입력 일부를 조작할 수 있는 환경에서는 압축된 길이로 비밀 정보가 새어 나갈 수 있으며, HTTPS에 대한 CRIME·BREACH 공격이 그 예입니다.
- 공개 키 압축: 비트코인 등에서는 타원 곡선 공개 키를 x 좌표와 y 좌표의 홀짝 정보(1바이트 접두어 02 또는 03)만으로 표현한 33바이트 “압축 공개 키”를 써서, 65바이트 비압축 형식보다 거래 크기를 줄입니다.
한계
- 잠재적 데이터 손실: 손실 압축은 일부 데이터를 버리므로, 품질 저하가 눈에 띄지 않는 이미지나 오디오에는 괜찮지만 중요한 문서나 데이터에는 적합하지 않습니다.
- 처리 오버헤드: 압축과 압축 해제에는 계산이 필요해 구형 장치에서는 성능에 영향을 줄 수 있습니다.
전반적으로 데이터 압축은 웹 개발, 멀티미디어, 데이터 저장, 네트워크 통신 등 다양한 분야에서 쓰이는 기술이며, 데이터의 성격에 맞게 무손실과 손실 방식을 골라 씁니다.
이 글은 학습을 위한 일반 정보이며 투자 권유나 법률 자문이 아닙니다. 가상자산은 가격 변동이 크고 원금 손실 위험이 있습니다.