7-Zip

덤프버전 :

파일:7ziplogo.png
분류
압축 소프트웨어
개발자
Igor Pavlov
최초 공개
1999년 7월 18일
현재 안정버전
23.01
플랫폼
Windows, Linux[21.01+], macOS[21.02+]
라이선스
프리웨어 (오픈소스)
파일:홈페이지 아이콘.svg

1. 개요
2. 상세
3. 장점
4. 단점
5. 관련 문서



1. 개요[편집]


7-Zip러시아 프로그래머 Igor Pavlov[1]가 만든 압축 프로그램이다.


2. 상세[편집]


오픈 소스 LGPL 라이선스의 자유 소프트웨어이다. 반디집과 같은 프로그램들과는 달리 광고 따위는 전혀 없고 딱 깔끔하게 파일 탐색(7zFM.exe)과 압축/압축해제(7zG.exe) 기능만 한다.

32비트용 설치파일을 받아서 Windows 98/ME에 설치하고 실행해보면 별 문제없이 동작하지만, 개발자의 답변으로는 Windows 9x에 대한 공식지원은 끝냈다고 한다. 동작할 수는 있어도 정상동작을 보장하지는 않는 것이니 사용할 때 참고할 것.

자체포맷인 7z와 함께 zip, tar, gz, bz2 등의 자유(free)포맷들과 rar, cab, arj, lzh 등의 비자유(non-free)포맷들을 지원한다. WinRAR 5.0에서 새로 추가된 RAR5 포맷을 한동안 열지 못했으나 2015년 8월 9일에 발표된 15.06 베타 버전부터 지원하기 시작했다.

현재의 7z 포맷은 LZMA2 알고리즘을 사용하며 압축률은 RAR5 포맷에 비교하여 약간 높은데, 속도 향상을 위해 매크로가 떡칠되어 코드가 길고 복잡하다. 또한 7z 포맷은 솔리드 압축을 지원하는데, 이를 이용하면 압축하려는 여러 개의 파일 중 바이너리(이진값)가 유사한 파일이 많을 경우 훨씬 더 높은 압축률을 보여준다. 특히 압축하려는 파일들이 개별 파일로는 압축이 잘 안 되지만, 저런 특성을 가지고 있는 경우 마법 수준의 차이가 나오기도 한다. 대신 압축된 파일들 중 하나만 압축 해제를 하려고 할 때도 압축 파일 전체를 스캔해야 한다는 단점이 있다. 압축 용량 2GB짜리 압축 파일에서 15KB짜리 ReadMe.txt 파일을 읽으려면 메모리든 임시 폴더든 어딘가에 파일이 있는 블록(e.g 256 MB)를 다 풀어놓고 나서 원하는 15KB짜리 파일을 빼돌린 다음 나머지 파일을 삭제하는 뻘짓을 해야 한다. 물론 이런 작업은 사용자가 하는게 아니라 프로그램이 뒤에서 해서 준다. 속도가 느릴 뿐. 이건 솔리드란 개념 자체의 한계이고, 7z은 널리 쓰이는 압축 포맷 중 유일하게 솔리드 블록 크기 조절을 통해 타협할 수 있으니 장점에 가깝다.[2]

LZMA2의 전신인 LZMA는 등장 초기에도 당시의 RAR 포맷보다 높은 압축률을 보여주었으나, 이후 RAR5 포맷에서 알고리즘을 개선하는 등 지속적으로 업데이트를 하는데 반해, 7-Zip은 알고리즘의 업데이트가 없다시피 했었다. 압축 알고리즘은 무조건 압축률만을 따지는 게 아니라, 압축 연산에 소요되는 시간과 압축률의 최적조건을 따져 가면서 개발하는 것이다. 이유라면, 7-Zip/LZMA는 나올 때부터 속도보다는 압축률에 초점을 두고 만들어졌기 때문에 압축률 개선은 그다지 할 것이 없었기 때문이다. 한동안 압축 알고리즘이 아닌 프로그램 자체(7z Manager)의 버그만 중점적으로 개선하다가 2012년 10월 26일 출시된 9.30 알파 버전부터 LZMA2 알고리즘이 기존의 LZMA를 대체하였다. 이후 버전들에도 레거시 포맷 지원을 위해 LZMA는 여전히 남아 있다. 그 밖에도 압축파일의 암호화로 AES-256 encryption을 지원하고 87개의 언어 지역을 서포트한다.

2023년 6월 기준 최신버전은 2023년 6월 20일에 나온 23.01 버전.

7-Zip은 오픈소스 소프트웨어이긴 하지만, 출시 후 20여년간 Windows 이외의 운영체제를 지원하지 않았다. 때문에 리눅스를 비롯한 다른 운영체제에서는 7-Zip 규격을 지원하는 서드파티 프로그램 "p7zip"이 7-Zip의 대체재로 활용되었다. 하지만 p7zip은 2016년 이후 업데이트가 없는 등 지원이 사실상 중단된 상태였고, 7-Zip에 비해 성능차이도 상당했다. 그러던 2021년, Windows용 첫 출시 22년 만에 갑자기 7-Zip의 공식 리눅스macOS용 버전이 등장하였다. 단 macOS와 리눅스용 7-zip은 CLI로만 사용할 수 있고, Windows용과 같은 GUI 탐색기는 제공되지 않는다. Windows 버전의 7z.exe같은 바이너리만 제공되는 것이다.


3. 장점[편집]


허접해 보이는 7-Zip의 탐색기는 외형과는 다르게 상당히 강력해서, 홈페이지에서도 주요 기능 중 하나로 소개하고 있다. 이 프로그램의 GUI 버전 풀네임이 괜히 7-Zip File Manager가 아니다. Temporary Internet Files 아래의 Content.IE5 하위 폴더와 같이 윈도우 탐색기에서 마우스만으로는 절대 접근할 수 없고 경로를 직접 입력해야만 접근할 수 있는 폴더에 접근할 수 있는 것은 물론이고, 탐색기에서 만들고도 편집 불가능한 긴 이름 파일의 관리도 가능하다. 긴 이름 파일이란, 탐색기에서 파일명을 변경할 때 지나치게 길게 입력하면 변경된 파일명이 탐색기에서 보이기만 할 뿐, 삭제/수정/변경 등 파일 작업이 모두 불가능해지는 유령 파일을 말한다. 이런 파일은 일반적인 방법으로 접근할 수 없어서[3] 대부분의 탐색기 호환 프로그램으로는 제어가 불가능하므로 이러한 오류를 전문으로 교정하는 유틸리티를 이용해야 한다. 이뿐만이 아니라 EXE 내부의 리소스, ISO 내부의 부팅 파일, 분할 압축 파일 일부분의 내용, VHD 등의 가상 하드 디스크 파일 등등 어마어마하게 많은 포맷의 내부 데이터를 쉽게 확인할 수 있다. 압축 파일 안의 압축 파일도 별도로 압축을 풀거나 새 창을 열 필요 없이 열람이 가능하다.

별도로 존재하는 64비트 버전을 사용하면 압축/해제 속도가 32비트 버전에 비해 더 빠르며, 멀티스레드 활용도가 좋아서 프로세서가 멀티코어라면 압축속도가 싱글코어 대비 확실하게 빨라진다. 자기 프로그램의 점유율 만을 생각했는지 압축률과 속도 및 안정성 모두 극히 떨어지는 ALZ라는 포맷을 만든 알집과 확실히 비교되는 부분이다. 그리고 자체적으로 CPU의 성능 벤치마크를 제공한다. 벤치마크 하는 방법. 이를 이용하여 자신의 CPU 성능이 어느 정도 되는지 간단하게 알아볼 수 있다.

명령줄 옵션을 이용해 파일 또는 폴더를 대상으로 개별 항목 혹은 전체 묶음의 체크섬을 계산하는 기능이 있다. 별도의 프로그램이 필요 없을 정도로 많은 종류의 알고리즘을 지원하고 기능도 충실해서 MD5나 CRC 등의 일치 여부를 확인할 때 7zip만 가지고도 충분히 사용할 수 있다.

간판격인 7z 포맷의 대중화가 충분히 이루어져 있다는 것도 장점. 알집, 반디집을 비롯하여 대부분의 압축 프로그램들은 7z 포맷을 풀 수 있다. Self-extracting EXE로 만들 수도 있으며 분할 압축도 된다. 파일을 압축한 다음 압축해제기능이 있는 EXE 실행파일에 통합하여, 압축 프로그램이 없는 컴퓨터에서도 실행만 하면 바로 압축을 풀 수 있게 만든 것. LZMA 알고리즘이 복잡해서 압축률을 높여서 압축할 땐 zip 포맷에 비해 많이 느리지만 압축 해제 속도는 상당히 빠르다. 다른 압축 포맷들의 해제 속도가 압축 속도와 비슷한 수준으로 느리다는 것을 보면 큰 장점이다.

압축 해제 또한 굉장히 강력한데, 분할 압축 파일 중 열고자 하는 파일이 첫번째 파일이 아니어도 그냥 열어버린다. 손상되거나 다운로드 중 끊긴 압축파일을 해제할 때도 복구 기능 사용 후 해제해야 하는 WinRAR와 달리 7-Zip은 그냥 해제해버려서 온전치 못한 데이터의 일부라도 얻을 수 있다.

언어코드 등의 이유로 파일이름 인식이나 압축해제에 실패했을 때 WinRAR는 무조건 작업을 중단하고 중간까지 풀리던 파일들을 모두 삭제한다. 정확히는 WinRAR도 Command-line 명령을 쓰면 오류 발생 시 작업하던 파일을 삭제하지 않도록 조치할 수는 있는데 복잡하고 번거롭다. 그에 반해 7-Zip은 인식되지 않는 문자들을 밑줄 등으로 변환해서 해제하는 것을 기본으로 작동한다. 자세히 설명하면, 7-Zip은 파일명을 유니코드로 기록하고 해제할 때는 유니코드로 기록된 파일명을 운영체제의 문자셋에 맞춰 변환하며 해제한다. 이 부분은 확실한 7-Zip만의 장점이다. 압축 해제에 실패했을 경우에도 해제되던 부분까지는 그대로 남겨두기 때문에 분할 압축된 하나의 큰 파일의 경우 일부를 미리 확인할 때 유용하다. 또한 WinRAR는 압축풀기 수행 시 필수적으로 임시 폴더에다가 임시 파일로 생성해가며 해제하는데 반해, 압축 해제 위치에 압축이 풀리는 파일 자체의 크기를 늘려가며 해제하므로 디스크의 여유 공간이 부족할 때 유용하다. 또한 이런 특징 덕분에 하드디스크일 경우 단편화 문제에서도 7-Zip이 유리하다.

autorun.inf의 기능을 악용하는 악성코드인 오토런 바이러스 감염으로 USB 메모리 속 파일들이 보이지 않는 상황일 때 7-Zip 탐색기로 찾아 들어가면 보이는데, 이 파일들을 압축하여 압축파일을 다른 경로에서 풀어주면 복구가 되는 현상이 있다. 이는 단순히 바이러스가 원본폴더/파일에 숨김 속성을 걸어서 보이지 않았던 것이 7-Zip으로 압축했다가 해제하는 과정에서 파일 속성이 풀렸기 때문이고, 7-Zip은 숨김 파일 속성을 무시하므로 정상적으로 내용물이 보인 것 뿐이다. 이는 오토런 바이러스가 치료된 것이 아니므로 파일을 되찾고 나서 그대로 방치하면 절대 안 되고, 반드시 백신으로 제대로 치료해야 한다.

압축 파일 내부에 파일명을 암호화 할 수 있기 때문에 보안 면에서도 zip보다 7z이 낫다. 예시 네이버 등 국내 메일 서비스들은 바이러스 유포 방지를 위해 exe 등 특정 확장자의 파일을 필터링하는데, zip파일로 압축하는 경우 암호가 걸려있어도 파일 헤더를 열어 내용을 분석한 후 필터링해버려 불편하지만 7z의 경우 암호 압축을 하게 되면 파일명을 분석할 수 없어 전송이 가능하다. 스토리지/메일서비스를 경유한 데이터 전송시, 압축파일내용을 열어보는 것 자체가 거슬린다면 7z가 좋은 선택이 될 수 있다.


4. 단점[편집]


성능을 위해 오류 정정 기능[4]이 전혀 없어서 압축 파일에 작은 이상이라도 생기면 안에 들어있는 데이터가 그대로 쓰레기가 된다는 단점이 있다. 요즘 시대에 그런 게 왜 필요하냐면, 대량의 데이터를 취급하는 파일 호스팅이나 웹하드 서비스에서 회선상의 문제로 인해 간혹 업로드하는 파일의 일부가 깨져서 손상된 채로 올라올 때가 있는데, 이것이 없으면 업로더가 파일에 이상이 있음을 스스로 깨닫고 다시 올려 주기를 바라는 수밖에 없기 때문이다. 물론 이런 일이 자주 발생하는 것은 아니므로 일종의 보험 같은 기능이다. 그래서 해시 체크를 한다거나 1bit라도 용량절감이 더 중요하다면 7-zip이 낫다. 실제로도 rar 포맷 대신 7z 포맷을 이용해서 트래픽 부담을 최소화하는 배포자들도 많다. 그리고 토렌트는 파일 조각마다 해시 체크를 수행하므로 파일이 손상되었을 때는 해당 조각을 자동으로 다시 받는다. 토렌트로 손상된 파일을 받는 경우는 애초에 손상된 파일이 공유된 것이다. 이것을 잘못 이해한 일부 사람들은 "외장하드에 자료를 7-zip으로 백업해뒀는데 배드섹터가 하나라도 발생하면 참사"라고 주장하는 경우가 있는데, 배드섹터가 발생하면 데이터가 일부 파손되는 수준이 아니라 배드섹터 이후 부분부터는 파일복사 자체가 제대로 안되기 때문에 압축 프로그램의 종류를 따지기 이전의 문제로서 소프트웨어 알고리즘의 오류 정정 기능으로는 택도 없는 상황이 된다. 그러니까 이런 경우에는 개인 차원에서 저장장치의 상태를 자꾸 악화시키지 말고 빨리 복구전문업체로 문의하는 것이 데이터를 최대한 살릴 수 있는 가장 좋은 방법이다.

분할 압축을 살펴 보면 7z 포맷의 분할 압축에는 첫 번째 파일에만 파일 형식 정보가 있을 뿐 분할된 다른 파일들에는 그것이 없기 때문에, 7-Zip에서 풀 때는 상관없지만 다른 압축 프로그램에서 풀려고 하면 문제가 발생하기도 했는데, 이런 점에서 RAR이 낫다고 보기도 했다. 하지만 수년 전에는 이러한 경우가 있었지만 7-Zip의 인지도가 많이 올라간 요즘에는 마주치기 쉽지 않은 문제이므로 더 이상 신경 안 써도 된다. 게다가 리눅스의 tar가 수행하는 역할처럼, 7zip의 분할 파일들도 DOS(명령 프롬프트)에서 copy /b 명령을 사용해 간단히 한 개의 7z 파일로 만들어 줄 수 있다. (물론 7zip 자체에서도 가능) RAR 분할 압축에서는 압축을 푼 다음 다시 하나로 묶어야 하는데, 이런 번거로움이 없어서 WinRAR의 강력한 오류 정정 기능을 제외하면 7zip의 분할 압축이 더 편리하다고 볼 수 있다.

다른 압축 프로그램과 달리 앞으로 가기/뒤로 가기가 전혀 작동하지 않는다. 7-Zip의 강력한 탐색 기능을 생각해보면 꽤나 아쉬운 단점이다.


5. 관련 문서[편집]



[21.01+] 21.01 버전부터 지원한다.[21.02+] 21.02 버전부터 지원한다.[1] 이고르 파블로프(Игорь Павлов), 1950~[2] 128 MB, 256 MB와 같은 식으로 솔리드로 압축할 크기 한계를 정할 수 있다. 반디집은 고급 압축 설정에서 설정할 수 있다. 반면에 RAR이나 EGG(알집)은 on/off만 가능.[3] 구형 (파일) 시스템에서는 마우스를 파일에 갖다대고 우클릭만 해도 블루스크린이 뜨는 경우도 있다.[4] rar의 recovery record, recovery volume


파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-10-19 00:31:23에 나무위키 7-Zip 문서에서 가져왔습니다.