〈 도움말

솔리드 압축이 뭔가요?

솔리드 압축에 대해서 설명하기 위해서는 먼저 일반적인 ZIP 포맷의 압축 방식에 대해서 이해를 해야 합니다.

일반적인 압축 포맷(ZIP, LZH, ARJ...)의 압축 방식

다음 이미지는 위키백과에 설명된 ZIP 포맷의 구조에 대한 이미지이며, 이렇게 솔리드 압축을 지원하지 않는 일반 압축 포맷은, 원본 파일이 어떤 파일이건 별개의 파일로 간주해서 압축을 진행합니다.


Image from Wikipedia

예를 들어 file1.txt, file2,txt, file3.txt 라는 파일을 file.zip 으로 압축을 하게 되면, 각각의 원본 파일은 다음과 같이 개별적으로 압축이 되어 file.zip 파일에 저장이 됩니다.



솔리드 압축 저장 방식

솔리드 압축은 이와 다르게, 여러개의 파일을 하나의 묶음으로 압축해서 처리하는 압축 방식입니다. 이렇게 여러개의 파일을 하나의 묶음으로 처리하면 개별 파일간에 유사성이 존재할 경우 압축 효율이 좋아지는 장점이 있습니다.



7Z, RAR 포맷은 포맷 자체에서 솔리드 및 비솔리드 압축 기능을 제공합니다. 또한 TAR 포맷을 GZ으로 한번 더 압축한 TGZ(tar.gz) 및 TBZ(tar.bz2), TXZ(tar.xz) 포맷 역시 일종의 솔리드 압축 포맷이라고 볼 수 있습니다.

솔리드 압축의 단점

솔리드 압축은 압축 효율이 좋다는 장점이 있지만, 반면 단점도 존재합니다. 다음과 같이 여러개의 파일이 하나의 솔리드 블럭으로 압축된 파일이 있을 경우, 솔리드 블럭은 하나의 묶음이기 때문에 블럭 중간에 있는 파일의 압축을 바로 풀 수 없습니다.

다음과 같은 예제에서 file2.txt 는 매우 작은 파일입니다. 그러나 file2.txt 파일의 압축을 풀기 위해서는, 블럭의 앞쪽에 위치한 file1.txt 파일의 내용을 전부 압축을 해제해야만 file2.txt 파일을 풀 수 있게 됩니다.



여러개의 솔리드 블럭으로 압축하기

이와 같이 파일 전체를 1개의 솔리드 블럭으로 압축하면 중간에 있는 파일에 접근하기 힘든 단점을 보완하기 위해서, 7Z 및 RAR 포맷은 여러개의 솔리드 블럭으로 압축하는 기능을 제공합니다.

사용자가 솔리드 블럭의 크기를 지정하면 1개의 압축 데이터 블럭에 큰 파일 1개 혹은 작은 파일 여러 개가 압축됩니다. 따라서, 압축 효율도 좋고 중간에 위치하는 파일에 대한 압축 해제 속도도 빠르다는 장점이 있습니다.



반디집에서는 다음과 같이 고급 압축 설정 기능을 통해서 7Z 포맷에 대한 솔리드 블럭 크기 지정 기능을 제공합니다.