텍스트 압축·해제

텍스트를 압축하여 크기를 줄이거나 압축된 텍스트를 원본으로 복원하세요. LZ77, Huffman, RLE 알고리즘을 지원합니다.

압축 알고리즘

LZ77: 이전에 나타난 문자열을 참조하여 압축하는 범용 알고리즘

입력 텍스트

팁: Ctrl+Enter로 빠른 압축

결과

사용법

압축

원본 텍스트를 입력하고 "압축하기" 클릭

해제

압축된 텍스트를 입력하고 "압축 해제" 클릭

교환

입력과 결과를 바꿔서 연속 작업 가능

텍스트 압축·해제는 글을 더 짧은 문자열로 바꾸거나 그 문자열을 원래 글로 되돌리는 도구입니다. LZ77과 Huffman, RLE 세 가지 알고리즘 중에서 고를 수 있고, 압축한 결과는 어디에나 붙여 넣을 수 있도록 영문과 숫자로만 이뤄진 문자열로 나옵니다. 원본과 결과의 크기, 압축률, 처리 시간을 함께 보여 주므로 어떤 알고리즘이 그 글에 잘 맞는지 눈으로 비교할 수 있습니다.

텍스트압축 사용 방법

  1. 압축 알고리즘에서 하나를 고릅니다. 처음에는 LZ77이 선택돼 있고, 고를 때마다 아래에 그 알고리즘의 설명이 바뀝니다.
  2. 왼쪽 입력 칸에 글을 넣고 압축하기를 누릅니다. Ctrl+Enter로도 실행됩니다.
  3. 오른쪽 결과 칸에 압축된 문자열이 나오고 아래에 압축 통계가 펼쳐집니다. 결과 칸 위의 복사 버튼으로 클립보드에 담습니다.
  4. 되돌릴 때는 압축된 문자열을 왼쪽 입력 칸에 넣고 압축 해제를 누릅니다. 어떤 알고리즘으로 압축된 것인지가 문자열 안에 들어 있어 따로 고를 필요가 없습니다.
  5. 입력↔결과 교환 버튼을 누르면 두 칸의 내용이 서로 바뀝니다. 방금 압축한 결과를 바로 해제해 원본과 같은지 확인할 때 씁니다.

지원 형식과 입력 조건

알고리즘
LZ77(기본값), Huffman, RLE
결과 형식
Base64로 한 번 더 감싼 문자열
입력 방법
직접 입력 또는 붙여넣기 (파일 업로드는 지원하지 않습니다)
글자 수 제한
도구가 정한 상한 없음
단축키
Ctrl+Enter 압축, Ctrl+L 초기화, Ctrl+1·2·3 알고리즘 선택
통계 항목
원본 크기, 압축된 크기, 압축률, 절약률, 처리 시간
처리 위치
브라우저 내부. 글 내용은 서버로 전송되지 않습니다

알고리즘별로 잘 맞는 글

  • LZ77 — 앞에 나왔던 문자열이 다시 나오면 그 위치와 길이로 바꿔 적습니다. 최대 255글자 앞까지 되돌아보고 네 글자 이상 겹칠 때만 참조로 바꾸므로, 같은 문구가 여러 번 나오는 일반 문서에 알맞습니다.
  • Huffman — 글자별 등장 횟수를 세어 자주 나오는 글자에 짧은 부호를 줍니다. 쓰이는 글자 종류가 적고 특정 글자가 유난히 많은 글에서 효과가 큽니다.
  • RLE — 같은 글자가 연달아 나오는 구간을 개수로 줄여 적습니다. 세 글자 이상 이어질 때만 줄이고 한 번에 최대 255개까지 세므로, 같은 문자가 길게 반복되는 데이터에 알맞습니다.
  • 글이 너무 짧으면 압축을 시도하지 않고 원본을 그대로 담습니다. 기준은 LZ77 50자, Huffman 20자, RLE 10자입니다.

압축률이 100%를 넘는 이유

  • 결과는 항상 한 번 더 감싸 문자열로 만드는데, 이 과정에서 길이가 3분의 1가량 늘어납니다. 그래서 줄인 양이 이보다 적으면 결과가 원본보다 커집니다.
  • 짧은 글에서는 알고리즘 이름이나 부호표 같은 부가 정보가 원문보다 더 큰 자리를 차지합니다.
  • 반복되는 부분이 거의 없는 글은 줄일 거리가 없어 원본이 거의 그대로 남습니다.
  • 압축률이 100%를 넘으면 화면에 그 이유가 함께 안내되고, 90%를 넘으면 다른 알고리즘을 시도해 보라는 안내가 나옵니다.

자주 묻는 질문

입력한 글이 서버로 전송되나요?

아닙니다. 압축과 해제 모두 브라우저 안에서 이뤄집니다. 다만 이용 통계를 위해 고른 알고리즘과 글 길이라는 숫자는 기록됩니다. 글 내용 자체는 전송되지 않습니다.

압축했더니 오히려 커졌습니다.

드물지 않은 일입니다. 결과를 문자열로 감싸는 과정에서 3분의 1가량 늘어나기 때문에, 짧거나 반복이 적은 글은 원본보다 커집니다. 다른 알고리즘으로 바꿔 보고 그래도 커진다면 그 글은 이 방식으로 줄일 수 없는 글입니다.

이 결과를 다른 프로그램에서 풀 수 있나요?

없습니다. 여기서 만든 문자열은 이 도구가 정한 형식이라 zip이나 gzip 같은 표준 압축과 호환되지 않습니다. 해제도 이 도구에서 해야 합니다.

압축했다가 풀면 원본과 완전히 같나요?

글의 앞뒤 공백은 다를 수 있습니다. 압축할 때 입력한 글의 앞뒤 공백과 줄바꿈을 먼저 잘라 내기 때문입니다. 그 밖의 내용은 그대로 복원됩니다.

압축 해제를 눌렀는데 깨진 글자가 나옵니다.

이 도구로 만든 문자열이 아니거나, 복사하는 과정에서 일부가 빠졌을 가능성이 큽니다. 결과 칸의 문자열을 통째로 복사했는지 확인하세요. 형식을 알아볼 수 없으면 옛 방식으로 해석을 시도하기 때문에 깨진 글자가 그대로 나옵니다.