TAR.GZ 만들기
여러 파일이나 폴더를 브라우저 안에서 tar로 하나로 묶은 뒤 gzip으로 압축하여, .tar.gz・.tgz・.tar(무압축)・.gz(단일 파일) 중 원하는 형식으로 다운로드할 수 있습니다. 리눅스 서버에 업로드할 때 편리합니다. 파일은 서버로 전혀 전송되지 않습니다.
TAR.GZ 만들기란
TAR.GZ 만들기는 여러 파일이나 폴더를 하나의 tar.gz(또는 tgz·tar·gz) 파일로 묶을 수 있는 도구입니다. 브라우저에 기본 탑재된 Compression Streams API를 사용해 모든 처리를 기기 안에서 끝내므로, 파일의 내용이 외부 서버로 업로드되는 일은 없습니다. 기밀성이 높은 자료나 개인정보를 포함한 파일이라도 안심하고 압축하실 수 있습니다.
출력 형식은 네 가지 중에서 고르실 수 있습니다. .tar.gz는 tar로 묶은 뒤 gzip으로 압축하는 가장 일반적인 형식으로, 리눅스 서버로의 업로드나 배포에 널리 쓰입니다. .tgz는 내용이 .tar.gz와 완전히 같고 확장자만 짧은 다른 이름입니다. .tar는 압축을 건너뛴 무압축 형식, .gz는 tar를 거치지 않고 단일 파일을 그대로 압축하는 형식으로, 용도에 따라 가려 쓰실 수 있습니다.
TAR.GZ 만들기 사용 방법
- 파일이나 폴더를 추가합니다 드롭 영역에 파일이나 폴더를 끌어다 놓거나, ‘파일 선택’·‘폴더 선택’ 버튼에서 추가합니다.
- 파일명을 확인·입력합니다 출력할 아카이브의 파일명을 입력란에서 확인하고, 필요에 따라 알아보기 쉬운 이름으로 바꿉니다.
- 출력 형식을 고릅니다 .tar.gz·.tgz·.tar·.gz 중에서 용도에 맞는 형식을 선택합니다. 파일이 한 개일 때만 .gz를 고르실 수 있습니다.
- 아카이브를 만들어 내려받습니다 ‘아카이브를 만들어 내려받기’ 버튼을 누르면 브라우저 안에서 압축 처리가 실행되어 자동으로 내려받아집니다.
더 잘 활용하기 위한 팁
- 폴더를 통째로 드롭하면 원래의 계층 구조를 유지한 채 tar로 하나로 묶입니다. 파일을 개별적으로 선택하면 폴더 구조가 없는 평평한 아카이브가 만들어집니다.
- .tar.gz와 .tgz는 내용이 완전히 같고 확장자만 다릅니다. npm 패키지 등 .tgz 확장자를 요구하는 도구에 전달할 경우에는 .tgz를 선택해 주세요.
- "압축하지 않음(.tar)"을 선택하면 gzip 압축을 건너뜁니다. 이미지・동영상・ZIP 등 이미 압축되어 있는 파일을 묶는 경우에는 압축해도 용량이 거의 줄지 않으므로, 무압축 쪽이 더 빠릅니다.
- .gz는 tar를 사용하지 않고 단일 파일을 직접 압축하는 예로부터의 형식입니다. 로그 파일 하나만 압축하고 싶은 경우 등, 파일이 한 개일 때만 선택할 수 있습니다.
- 대량의 파일이나 용량이 큰 파일을 묶을 경우, 브라우저 메모리에서 처리하기 때문에 시간이 오래 걸리거나 환경에 따라 실패할 수 있습니다. 총 용량이 수백 MB에서 수 GB에 이르는 경우에는 몇 개로 나누어 압축하는 것을 권장합니다.
TAR.GZ 만들기의 활용 사례
리눅스 서버 업로드 전의 준비
웹사이트나 프로젝트 폴더를 통째로 tar.gz로 묶어 두면, SSH를 통한 업로드나 배포 작업을 파일 하나의 전송으로 끝낼 수 있습니다.
npm 형식의 .tgz 패키지 준비
npm 패키지처럼 .tgz 확장자를 전제로 하는 도구에 넘길 배포물을, 전용 CLI를 쓰지 않고 브라우저만으로 만드실 수 있습니다.
로그 파일의 일괄 보관
여러 개로 나뉜 일일 로그 등을 하나의 tar.gz로 묶으면, 보관이나 전달 시에 파일 수를 줄일 수 있습니다.
서버를 거치지 않는 여러 파일의 전달
메일이나 채팅에 여러 파일을 첨부하는 대신 하나의 아카이브로 묶을 수 있고, 게다가 압축 처리가 모두 손안의 기기에서 끝나므로 내용을 외부 서버에 맡기고 싶지 않은 상황에 적합합니다.
폴더 구조를 유지한 백업
폴더째 끌어다 놓으면 원래의 계층 구조를 유지한 채 아카이브로 만들 수 있어, 설정 파일 묶음 등의 구성을 그대로 보존하고 싶을 때 도움이 됩니다.
용어집
- tar
- 여러 파일을 하나로 묶기(아카이브화하기) 위한 형식·명령입니다. Tape ARchive의 약자로, 그 자체에는 압축 기능이 없습니다.
- gzip
- 데이터를 압축하기 위한 형식·명령입니다. tar로 묶은 파일을 gzip으로 압축하면 tar.gz가 됩니다.
- .tgz
- .tar.gz와 내용이 완전히 같은 아카이브에 붙이는, 짧은 다른 이름의 확장자입니다. 8자 이내의 파일명이 필요했던 옛 환경의 흔적입니다.
- PAX 헤더
- 옛 tar 형식에서는 파일명을 100바이트까지만 담을 수 있어, 긴 경로를 다루기 위해 고안된 확장 헤더입니다.
- Compression Streams API
- 브라우저에 기본 탑재된, gzip 등의 압축·해제를 자바스크립트에서 직접 다룰 수 있는 웹 API입니다. 서버를 거치지 않고 클라이언트 쪽에서만 압축 처리를 끝낼 수 있습니다.
- ustar 형식
- POSIX에서 표준화된 tar의 헤더 형식입니다. 파일명 필드가 100바이트로 제한되어 있어, 이를 넘는 경우에는 PAX 헤더로 보완합니다.
자주 묻는 질문
여담 ― tar의 512바이트와 PAX 확장 헤더
tar 파일 형식은 1970년대 자기테이프 장치(Tape ARchive)를 위해 설계되었기 때문에, 데이터가 512바이트 단위의 "블록"으로 구분되어 있습니다. 파일 내용이 512바이트의 배수가 아닐 경우에는 끝부분에 0으로 채운 패딩이 추가되어 다음 블록 경계에 맞춰집니다. 이 단순한 구조 덕분에 tar는 지금도 구현이 쉽고 스트리밍 처리와 궁합이 좋은 형식으로 남아 있습니다.
옛 ustar 형식의 헤더에는 파일명을 저장하는 필드가 겨우 100바이트밖에 마련되어 있지 않습니다. 계층이 깊은 폴더나 긴 파일명을 tar로 묶으려 하면 이 제한을 넘어서는 경우가 있습니다. 이를 해결하기 위해 고안된 것이 PAX 확장 헤더로, 본래 항목 바로 앞에 "진짜 이름"을 기록한 특별한 블록을 삽입함으로써 사실상 길이 제한을 우회합니다. 이 도구 역시 100바이트를 넘는 경로에는 자동으로 PAX 확장 헤더를 붙입니다.
ZIP과 달리 tar・gzip 조합에는 비밀번호 보호 기능이 없습니다. tar는 "묶기만" 하고 gzip은 "압축만" 하는, 각각 단일 기능에 충실한 도구로 설계되었기 때문입니다. 기밀성이 높은 파일을 배포하고 싶다면 암호화를 지원하는 자매 도구인 ZIP 만들기를 이용해 주세요.