솔리드 압축

컴퓨팅에서 솔리드 압축()은 여러 파일을 압축하는 방법 중 하나로, 압축되지 않은 모든 파일들이 사슬처럼 연결되고 하나의 데이터 블록으로 취급한다. 이런 압축 파일을 솔리드 아카이브라고 부른다. 주로 7z와 RAR 확장자를 가지며, .tar.gz 와 .tar.bz2 등 간접적으로  tar 형식을 기반으로 둔 확장자도 사용한다. 이와 달리, ZIP 형식은 개별적으로 압축된 파일을 저장하므로 솔리드하지 않다. (다만 솔리드 압축은 작은 압축 아카이브 파일들에 한하여 여러 파일을 압축되지 않은 아카이브 파일로 병합한 뒤 그 아카이브를 새 ZIP 압축파일에 추가함으로써 재현할 수 있다).

설명 
압축 파일 형식들은 주로 파일 압축 (데이터를 작은 공간에 저장)과 파일 보존 (여러 파일과 메타데이터를 하나의 파일로 저장)하는 기능이 있다. 사용자는 다음 두 방법으로 두 기능 모두 혼용할 수 있다:

 개별 파일을 압축한 후 한 파일로 보존하기;
 한 데이터 블록으로 보존한 후 압축하기.

순서는 상관이 있으며 (이러한 동작은 교환법칙이 성립하지 않으며), 두번째 방법은 솔리드 압축을 말한다.

유닉스에서는 압축과 보존은 전통적으로 다른 동작이며, 사용자는 아래 방식을 비교하면서 이를 구분할 수 있다:

 개별 파일을 압축한 뒤 보존 파일을 생성하는 것은 tar 형식의 gzip 압축 파일이며 이 작업은 매우 드물다.
 압축되지 않은 다양한 파일을 tar 로 보존한 뒤 압축할 경우에는 압축된 보존 파일이 생성된다: .tar.gz 형식을 가진 솔리드 압축 파일이다.

대략적인 시각적 표현 
다음 예시는 3개의 파일이 각각 동일한 정보를 가진 공통 부분이 있고, 다른 파일과는 서로 다른 고유값을 가진 부분, 그리고 작은 엔트로피를 가져서 압축하기 쉬운 정보인 빈 공간 부분이 있다.

원본 파일 A

원본 파일 B

원본 파일 C

솔리드 압축하지 않은 압축파일:

솔리드 압축이 적용된 압축파일:

장점과 단점

장점 
솔리드 압축은 모든 파일이 유사할 때 더 높은 압축률로 압축할 수 있게 하며, 주로 파일들이 동일한 파일 형식으로 되어있을 때 효과가 있다. 많은 작은 파일을 압축할 때에도 효과적이다.

단점 
반대로, 한 개의 파일을 솔리드 압축 파일로부터 추출하기 위해서는 모든 파일을 처리하는 과정을 거쳐야 하므로, 솔리드 압축파일을 수정하는 과정은 느리고 사용자가 불편을 느낄 수 있다. 7-zip을 비롯한 새 파일 형식들은, 솔리드 블록 크기 옵션이 있으며, 사슬처럼 연결된 데이터 블록이 개별적으로 압축된 작은 블록으로 분할할 수 있게 하며, 블록에 있는 일부 데이터만 처리해도 한 파일을 압축을 해제할 수 있다. 변수는 최대 솔리드 블록 window 크기, 한 블록에 있는 파일 수, 그리고 파일 확장자에 의해 블록이 분할되었는지를 결정한다.

또한, 압축 파일이 약간이라도 손상되면, 블록에서 손상된 부분 이후의 일부 데이터(때로는 모든 데이터)를 사용할 수 없게 될 수 있지만(압축 및 아카이브 형식에 따라 다름), 솔리드 압축이 되지 않은 아카이브 형식에서는, 일반적으로 하나의 파일만 사용할 수 없으며 이후 파일은 일반적으로 여전히 추출할 수 있다.

각주 

데이터 압축