압축풀기 실패 줄이는 압축파일 만들기
.7z -> .zip 또는 .zip -> .7z 중첩 압축 파일이 가끔 추출 실패하는 이유
중첩 압축 파일 변환 시 간헐적으로 추출이 실패하는 원인은 주로 압축 포맷 구조, 파일 제한, 도구 호환성, 데이터 무결성 문제와 관련이 있습니다.
1. 파일 포맷 제한
ZIP
일반 ZIP은 개별 파일과 아카이브 전체 크기 제한이 4GB (ZIP64 확장 없을 시)입니다.
CRC-32 체크섬을 사용, 7z보다 무결성 검증이 약함.
7z
훨씬 큰 파일과 아카이브 지원.
CRC-32, CRC-64 또는 SHA-256 등 더 강력한 체크섬 지원.
문제점: 큰 중첩 파일이 ZIP 제한을 초과하면 추출이 실패할 수 있음.
2. 중첩 압축과 압축률
이미 압축된 파일을 다시 압축할 경우 문제가 발생할 수 있음.
예:
archive.7z안에file.zip이 있는 경우, 다시 압축하면 일부 추출 도구에서 데이터가 깨지거나 읽지 못하는 경우가 있음.
일부 ZIP 도구는 중첩 압축 스트림을 완벽히 지원하지 않음.
AES 암호화된 ZIP이 7z 안에 들어있으면 일부 추출 도구에서 실패 가능.
3. 도구 / 소프트웨어 호환성
모든 압축 도구가 중첩 압축을 동일하게 처리하지 않음:
7-Zip:
.7z,.zip모두 robust.Windows 기본 ZIP 추출기: 중첩 ZIP이나 특수 압축 방식은 실패할 수 있음.
추출 실패가 랜덤처럼 보이는 이유:
내부 아카이브가 부분적으로 손상됨.
파일 헤더를 잘못 해석함.
4. 파일 손상 또는 일부만 추출됨
중첩 압축은 작은 손상에도 민감:
외부 아카이브 한 바이트가 깨져도 내부 아카이브 인식 불가.
이미 압축된 ZIP을 다시 압축하면 구조상 문제가 생길 수 있음.
5. 경로 길이 / 파일명 문제
일부 도구는 경로 길이 제한 존재:
Windows 전통적으로 260자 제한.
중첩 압축 시 경로 길이 초과하면 추출 실패.
✅ 실패를 줄이는 방법
중첩 압축에는 7z 사용 권장 (더 안정적).
이미 압축된 파일을 재압축하지 않기.
7-Zip 또는 WinRAR 같은 안정적인 도구 사용.
압축 무결성 검사
7z:
7z t archive.7zzip:
zip -T archive.zip또는7z t archive.zip
경로 길이를 짧게 유지.
중첩 압축에서 암호화 ZIP과 7z 혼합 금지.