텍스트 압축·해제
텍스트를 압축하여 크기를 줄이거나 압축된 텍스트를 원본으로 복원하세요. LZ77, Huffman, RLE 알고리즘을 지원합니다.
압축 알고리즘
입력 텍스트
결과
사용법
원본 텍스트를 입력하고 "압축하기" 클릭
압축된 텍스트를 입력하고 "압축 해제" 클릭
입력과 결과를 바꿔서 연속 작업 가능
텍스트 압축·해제는 글을 더 짧은 문자열로 바꾸거나 그 문자열을 원래 글로 되돌리는 도구입니다. LZ77과 Huffman, RLE 세 가지 알고리즘 중에서 고를 수 있고, 압축한 결과는 어디에나 붙여 넣을 수 있도록 영문과 숫자로만 이뤄진 문자열로 나옵니다. 원본과 결과의 크기, 압축률, 처리 시간을 함께 보여 주므로 어떤 알고리즘이 그 글에 잘 맞는지 눈으로 비교할 수 있습니다.
텍스트압축 사용 방법
- 압축 알고리즘에서 하나를 고릅니다. 처음에는 LZ77이 선택돼 있고, 고를 때마다 아래에 그 알고리즘의 설명이 바뀝니다.
- 왼쪽 입력 칸에 글을 넣고 압축하기를 누릅니다. Ctrl+Enter로도 실행됩니다.
- 오른쪽 결과 칸에 압축된 문자열이 나오고 아래에 압축 통계가 펼쳐집니다. 결과 칸 위의 복사 버튼으로 클립보드에 담습니다.
- 되돌릴 때는 압축된 문자열을 왼쪽 입력 칸에 넣고 압축 해제를 누릅니다. 어떤 알고리즘으로 압축된 것인지가 문자열 안에 들어 있어 따로 고를 필요가 없습니다.
- 입력↔결과 교환 버튼을 누르면 두 칸의 내용이 서로 바뀝니다. 방금 압축한 결과를 바로 해제해 원본과 같은지 확인할 때 씁니다.
지원 형식과 입력 조건
- 알고리즘
- 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 같은 표준 압축과 호환되지 않습니다. 해제도 이 도구에서 해야 합니다.
압축했다가 풀면 원본과 완전히 같나요?
글의 앞뒤 공백은 다를 수 있습니다. 압축할 때 입력한 글의 앞뒤 공백과 줄바꿈을 먼저 잘라 내기 때문입니다. 그 밖의 내용은 그대로 복원됩니다.
압축 해제를 눌렀는데 깨진 글자가 나옵니다.
이 도구로 만든 문자열이 아니거나, 복사하는 과정에서 일부가 빠졌을 가능성이 큽니다. 결과 칸의 문자열을 통째로 복사했는지 확인하세요. 형식을 알아볼 수 없으면 옛 방식으로 해석을 시도하기 때문에 깨진 글자가 그대로 나옵니다.