{{위키데이터 속성 추적}}
[[파일:Targzip.svg|오른쪽|섬네일|231x231픽셀| tar.gz는 개별 파일을 tar로 모은 뒤 gzip으로 압축하여 생성된다.]][[컴퓨팅]]에서 '''솔리드 압축'''({{Llang|en|Solid compression}})은 여러 [[데이터 압축|파일을 압축]]하는 방법 중 하나로, 압축되지 않은 모든 파일들이 사슬처럼 연결되고 하나의 데이터 블록으로 취급한다. 이런 압축 파일을 솔리드 아카이브라고 부른다. 주로 [[7z]]<ref>{{웹 인용|url=https://www.edenwaith.com/support/guitar/help/man/7za.html|제목=7za man page|보존url=https://web.archive.org/web/20100110015021/http://www.edenwaith.com/support/guitar/help/man/7za.html|보존날짜=2010-01-10|url-status=dead|확인날짜=2010-01-24|인용문=-ms=on[:] solid archive on}}</ref>와 [[RAR (파일 포맷)|RAR]]<ref>{{웹 인용|url=http://pot-pourri.fltr.ucl.ac.be/files/ARCH/RAR_FAQ.TXT|제목=RAR Frequently Asked Questions (FAQ)|날짜=1994-08-15|확인날짜=2010-01-24}}</ref> 확장자를 가지며, <samp>.tar.[[Gzip|gz]]</samp> 와 <samp>.tar.[[Bzip2|bz2]]</samp> 등 간접적으로  [[Tar (파일 포맷)|<samp>tar</samp>]] 형식을 기반으로 둔 확장자도 사용한다. 이와 달리, [[ZIP (파일 포맷)|ZIP]] 형식은 개별적으로 압축된 파일을 저장하므로 솔리드하지 않다. (다만 솔리드 압축은 작은 압축 아카이브 파일들에 한하여 여러 파일을 압축되지 않은 아카이브 파일로 병합한 뒤 그 아카이브를 새 ZIP 압축파일에 추가함으로써 재현할 수 있다).<ref>{{웹 인용|url=http://cafxx.strayorange.com/Emulate+solid+archiving+with+ZIP|제목=CAFxXcrossway - Emulate solid archiving with ZIP|웹사이트=cafxx.strayorange.com}}</ref><ref>{{웹 인용|url=https://www.pcreview.co.uk/threads/zip-and-solid-archives.2476437/|제목=ZIP and solid archives|날짜=2006-03-15|웹사이트=PC Review}}</ref>

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

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

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

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

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

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

원본 파일 A
{| border="0" style="text-align:center;"
| bgcolor="#ffff00" width="50" |공통
| bgcolor="#ff8080" width="80" | 고유값
| bgcolor="#00ffff" width="120" | 빈 공간
|}
원본 파일 B
{| border="0" style="text-align:center;"
| bgcolor="#ffff00" width="50" |공통
| bgcolor="#00ff00" width="80" |고유값
| bgcolor="#00ffff" width="120" |빈 공간
|}
원본 파일 C
{| border="0" style="text-align:center;"
| bgcolor="#ffff00" width="50" |공통
| bgcolor="#8080ff" width="80" |고유값
| bgcolor="#00ffff" width="120" |빈 공간
|}
솔리드 압축하지 않은 압축파일:
{| border="0" style="text-align:center;"
| bgcolor="#ffff00" width="50" |공통
| bgcolor="#ff8080" width="80" |A
| bgcolor="#00ffff" width="5" |
| bgcolor="#ffff00" width="50" |공통
| bgcolor="#00ff00" width="80" |B
| bgcolor="#00ffff" width="5" |
| bgcolor="#ffff00" width="50" |공통
| bgcolor="#8080ff" width="80" |C
| bgcolor="#00ffff" width="5" |
|}
솔리드 압축이 적용된 압축파일:
{| border="0" style="text-align:center;"
| bgcolor="#ffff00" width="50" |공통
| bgcolor="#ff8080" width="80" |데이터 A
| bgcolor="#00ff00" width="80" |데이터 B
| bgcolor="#8080ff" width="80" |데이터 C
| bgcolor="#00ffff" width="5" |
|}

== 장점과 단점 ==

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

=== 단점 ===
반대로, 한 개의 파일을 솔리드 압축 파일로부터 추출하기 위해서는 모든 파일을 처리하는 과정을 거쳐야 하므로, 솔리드 압축파일을 수정하는 과정은 느리고 사용자가 불편을 느낄 수 있다. 7-zip을 비롯한 새 파일 형식들은, 솔리드 블록 크기 옵션이 있으며, 사슬처럼 연결된 데이터 블록이 개별적으로 압축된 작은 블록으로 분할할 수 있게 하며, 블록에 있는 일부 데이터만 처리해도 한 파일을 압축을 해제할 수 있다. 변수는 최대 솔리드 블록 window 크기, 한 블록에 있는 파일 수, 그리고 파일 확장자에 의해 블록이 분할되었는지를 결정한다.<ref>{{웹 인용|url=http://www.7-zip.org/history.txt|제목=HISTORY of the 7-Zip|웹사이트=www.7-zip.org|확인날짜=2019-09-09}}</ref>

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

== 각주 ==
{{각주}}

[[분류:데이터 압축]]