파일 크기를 줄이는 마법의 원리, 데이터 압축
사진과 음악, 문서가 작은 파일로 오가는 데에는 반복과 예측을 찾아내는 수학이 숨어 있다. 손실 없는 압축과 손실 압축이 각각 무엇을 버리고 무엇을 남기는지 알아본다.
편집부 · 2026년 10월 12일 · 읽는 데 4분
데이터 압축은 정보를 더 적은 비트로 표현하는 기술이다. 압축이 가능한 이유는 대부분의 데이터에 반복과 규칙이 들어 있기 때문이다. 같은 내용을 매번 그대로 적는 대신 짧은 표시로 바꾸거나, 자주 나오는 것에 짧은 부호를 주면 전체 크기가 줄어든다. 압축에는 원래 데이터를 한 비트도 틀리지 않고 되살리는 손실 없는 압축과, 사람이 알아채기 어려운 정보를 버려 훨씬 작게 만드는 손실 압축이 있다.
반복을 줄여 쓰는 가장 단순한 방법
가장 쉬운 압축은 같은 값이 연달아 나오는 구간을 줄여 쓰는 것이다. 흰 바탕에 검은 글씨가 있는 팩스 문서를 생각해 보면, 한 줄에 흰 점이 수백 개 이어지는 구간이 많다. 이것을 흰 점 하나하나로 적지 않고 '흰 점 300개'처럼 개수로 적으면 크기가 크게 줄어든다. 이런 방식을 반복 길이 부호화라고 부르며, 실제로 초기 팩스 기기에 쓰였다.
더 영리한 방법은 앞에서 나온 내용을 다시 가리키는 것이다. 문서에서 같은 낱말이나 구절이 되풀이되면, 두 번째부터는 '몇 글자 앞에서 몇 글자를 그대로 가져오라'는 짧은 지시로 바꾼다. 우리가 흔히 쓰는 압축 파일 형식의 상당수가 이런 사전 방식을 바탕으로 한다. 반복이 많은 문서는 크게 줄고, 반복이 거의 없는 데이터는 별로 줄지 않는다.
자주 나오는 것에 짧은 부호를
모스 부호는 영어에서 가장 자주 쓰이는 E에 점 하나라는 가장 짧은 신호를 주었다. 자주 쓰는 글자를 짧게, 드물게 쓰는 글자를 길게 표시하면 평균 길이가 줄어든다는 생각이다. 1952년 데이비드 허프먼은 이 생각을 수학적으로 가장 효율적으로 만드는 방법을 고안했다. 각 기호가 나오는 빈도를 세고, 가장 드문 두 기호를 묶어 나가는 과정을 반복해 부호표를 만든다.
| 글자 | 나오는 빈도 | 고정 길이 부호 | 허프먼 부호 예 |
|---|---|---|---|
| A | 많음 | 00 | 0 |
| B | 보통 | 01 | 10 |
| C | 적음 | 10 | 110 |
| D | 적음 | 11 | 111 |
A가 전체의 절반을 차지한다면, 고정 길이로는 글자마다 2비트가 들지만 허프먼 부호로는 평균 1.75비트 정도로 줄어든다. 부호가 서로 다른 부호의 앞부분이 되지 않도록 만들어져 있어서, 구분 기호 없이 이어 써도 한 가지 방식으로만 해독된다.
더 줄일 수 없는 한계, 엔트로피
그렇다면 데이터는 얼마나 작게 줄일 수 있을까. 1948년 클로드 섀넌은 정보 이론을 세우며 이 질문에 답했다. 데이터가 얼마나 예측하기 어려운지를 나타내는 엔트로피라는 양이 있고, 손실 없는 압축은 평균적으로 이 엔트로피보다 짧게 만들 수 없다는 것이다. 동전을 던진 결과처럼 완전히 무작위인 데이터는 엔트로피가 최대라서 거의 압축되지 않는다.
이미 압축한 파일을 다시 압축해도 거의 줄지 않는 이유가 여기에 있다. 첫 압축이 반복과 규칙을 대부분 걷어 내 데이터가 무작위에 가까워졌기 때문이다. 같은 이유로 암호화된 파일도 잘 압축되지 않는다. 좋은 암호는 데이터를 무작위처럼 보이게 만들기 때문이다.
사람이 못 느끼는 것을 버리는 손실 압축
사진과 음악, 영상은 손실 압축으로 훨씬 작게 만든다. 원리는 사람의 감각이 놓치는 정보를 버리는 것이다. 사람의 눈은 밝기 변화에는 민감하지만 색의 미세한 변화에는 덜 민감하다. 그래서 사진 압축은 색 정보를 밝기 정보보다 거칠게 저장한다. 또 이미지를 작은 블록으로 나눠 부드러운 변화와 세밀한 무늬로 분해한 뒤, 눈에 잘 띄지 않는 세밀한 성분을 많이 덜어 낸다.
음악 압축도 비슷하다. 큰 소리 바로 옆의 작은 소리는 귀에 잘 들리지 않는데, 이렇게 가려지는 소리를 과감히 지운다. 영상은 여기에 더해 앞 장면과 거의 같은 부분은 저장하지 않고 달라진 부분만 기록한다. 압축률을 너무 높이면 사진에 네모난 얼룩이 생기거나 음악이 탁해지는데, 이것이 버린 정보가 감각의 한계를 넘어선 흔적이다.
압축은 이해의 다른 이름
데이터를 잘 압축하려면 그 데이터의 구조를 잘 알아야 한다. 다음에 올 내용을 정확히 예측할수록 적은 비트로 표현할 수 있기 때문이다. 그래서 압축은 예측과, 예측은 이해와 깊이 연결되어 있다. 문장의 다음 낱말을 잘 맞히는 언어 모델이 사실상 뛰어난 압축기이기도 하다는 지적이 나오는 것도 같은 맥락이다. 매일 주고받는 작은 파일 속에는 정보를 얼마나 깊이 이해했는지를 재는 수학이 담겨 있다.
이어서 읽기