솔리드 압축에 대해서 설명하기 위해서는 먼저 일반적인 ZIP 포맷의 압축 방식에 대해서 이해를 해야 합니다.
다음 이미지는 위키백과에 설명된 ZIP 포맷의 구조에 대한 이미지이며, 이렇게 솔리드 압축을 지원하지 않는 일반 압축 포맷은, 원본 파일이 어떤 파일이건 별개의 파일로 간주해서 압축을 진행합니다.
예를 들어 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 파일부터 전부 압축 해제해야 합니다.
이와 같이 파일 전체를 1개의 솔리드 블럭으로 압축하면 중간에 있는 파일에 접근하기 힘든 단점을 보완하기 위해서, 7Z 및 RAR 포맷은 여러 개의 솔리드 블럭으로 압축하는 기능을 제공합니다.
사용자가 솔리드 블럭의 크기를 지정하면 1개의 압축 데이터 블럭에 큰 파일 1개 혹은 작은 파일 여러 개가 압축됩니다. 따라서, 압축 효율도 좋고 블럭 중간에 있는 파일을 압축 해제하는 속도도 빠르다는 장점이 있습니다.
반디집에서는 다음과 같이 고급 압축 설정 기능을 통해서 7Z 포맷에 대한 솔리드 블럭 크기 지정 기능을 제공합니다.