압축이란 용량이 큰 파일이나 여러개의 파일을 하나의 작은 파일로
만드는걸 말하는데 일단 본격적으로 시작하기전 이것부터 읽어보자.
1,200bps 속도의 통신 초기에는 지금처럼 초고속 인터넷은 상상도
할 수 없었다. 당시에는 모뎀을 이용해 파일전송을 비롯한 통신을
했다. 그러다 보니 조금만 용량이 큰 파일을 전송하고 받는 데도 상
당한 시간이 걸릴 수 밖에 없었다. 또한 당시 주된 데이터 이동 장치
로 이용하던 디스켓에 조금이라도 파일을 더 담기 위해서도 파일
압축이 필요했다. ( 중학교 때 고용량 겜 복사해가려고 친구집에
디스켓 수십장 가져가서 압축해서 담던 기억이 나는군 ㅡㅡ;)
그래서 생겨난 것이 파일의 크기를 줄여 전송할 수 있도록 해주는
압축 프로그램이다. 압축 프로그램의 이름은 대부분 압축 형식에
따라 구분하는데, 초기의 유명한 압축 프로그램으로는 ZIP, RAR,
ARC. LZH, ARJ ,ACE 등이 있다. 이 중에서 ARJ는 디스켓을 쓰던
도스 시절에는 분할 압축을 지원해 가장 많은 사용자를 확보하고 있
었지만 윈도 환경으로 넘어오면서 그래픽 인터페이스 프로그램을
내놓지 못해 사용자의 기억에서 사라져야 했다. ( 당시 ARJ 짱이었는
데..ㅜㅜ ) 분할 압축 기능이란 디스켓에 차례대로 파일을 담아 데이
터를 담아 저장할 수 있도록 해주는 기능인데, 인터넷이 발달한 요즘
에는 이런 분할압축 기능이 큰 의미가 없어졌다.
ZIP와 RAR은 도스 시절부터 지금까지 꾸준한 사랑을 받는 압축
프로그램인데 특히 ZIP 프로그램에 얽힌 재미있는 사연이 있다.
이 프로그램을개발한 필립 카츠는 젊은 나이에 컴퓨터 천재라는 찬사
를 들으면 백만장자가 된 인물이다. 어질 적부터 수학적인 재능을 보
던 그는 23세이던 1986년 당시로서는 획기적인 ZIP기술을 개발했다.
파일을 압축함으로써 전송과 저장을 훨씬 용이하게 만든 것이다.
그는 이 기술을 기반으로 PK웨어라는 회사를 차리고 금세 백만장자
가 되었다. 그는 MS, IBM 같은 굴지의 회사들을 고객으로 두며 승승
장구했다. 그러나 원래 내성적이던 그는 회의나 강연회에 나서지 않
는 것은 물로느 주위 사람들과도 어울리지 않았다. 그가 유명한 바로
압축 기술의 창시자라는 것을 아는 사람은 거의 없었다. 그런 그가
엄청난 부자가 된 후에는 방탕한 삶에 빠져들게 되었다. 스트립클럽
을 전전하며, 술과 여자에 빠져들게 되고 사치와 방탕을 일삼으며 그
의 삶은 점점 황폐해져 갔고 결국 그는 알콜 중독자가 되어버렸다.
2000년 4월 14일 미국 중서부 위스콘신주 밀워키시의 한 호텔방에서
37세의 남자가 시체로 발견되었다. 그의 왼손엔 빈 위스키병이 쥐어
져 있었고 쓰러지면서 어디엔가 부딪힌 듯 머리 한쪽은 움푹 팬 채였
다. 그의 가방 안에는 갖가지 성(性) 기구들이 가득 담겨 있었다.
(변태..쯧쯔 ㅡㅡ;) 사인은 알콜중독. 경찰은 그의 신원을 확인하고
경악했는데, 그것은 죽은 남자가 ZIP프로그램을 개발했던 컴퓨터
천재 필립 카츠였기 때문이다. 이 때 그의 재정 상태는 거의 파산 지
경이었던 것으로 알려졌다. 술과 방탕한 사생활로 재능을 썩혔던
비운의 천재 카츠는 결국 30대의 젊은 나이로 숨을 거두고 말았다.
(오늘의 교훈. 술과 그짓(?)은 작작하자 ㅡㅡ;)
자..재밌는 (?) 얘기는 여기까지 하고 본론으로 들어가자.
압축의 기초
용량이 작은 플로피 디스크를 보조 저장장치로 쓰던 아득한(?) 옛날,
조금이라도 파일을 더 담기 위해 태어난 압축은 하드디스크 공간을
확보하거나 중요한 데이터를 백업할 때 요긴하게 쓰였다. 요즘이야
하드디스크 공간이 워낙 넓고( 상대적으로 데이터 크기도 늘어났지
만) 고용량 미디어가 많이 나와서 용량을 줄인다는 의미보다는 파일
여러개를 하나로 묶는 다는 개념으로 더 많이 사용되고 있지만,
예전이나 지금이나 PC 작업시 없어서는 안될 유용한 기능임에는
틀림없다.
중복된 문자 없애는 것이 압축의 핵심원리
압축은 필요 없는 정보를 삭제하고 반복되는 정보를 통일하는 작업
이다. 도스 시절, 게임 데이터를 편집하기 위해 헥사 코드 편집기를
써본 사람이라면 데이터는 16진수 숫자로 구성된다는 사실을 알고
있을 것이다. 파일의 구조가 아무리 복잡하고 방대해도 숫자는 16진
수 범위 내에서 반복될 수 밖에 없다. 이렇게 반복되는 숫자를 하나로
묶어 데이터 용량을 줄이는 것이 압축의 가장 기본적인 원리다. 이를
테면 'aaaaabbbbbcccdddeee'문자를 'a5b5c3d3e3'으로 간단히 나타
내는 것이다. 이런 압축 방식을 RLE(Run Length Encoding), 혹은
패킹(Packing)이라고 부르는데, 이 방식은 압축 및 압축 해제 속도가
매우 빠르다는 특징을 가지고 있다. 하지만 압축률은 같은 문자가
계속 반복되는 자료를 압축할 때만 높을 뿐, 일반적인 경우에는
그렇지 않다.
문자의 출현 빈도 수를 측정해 자주 나오지 않는 문자를 연결하고 이
진트리를 만들어 파일의 문자를 대표값으로 바꾸는 호프만 코딩
(Huffman Coding)라는 압축법도 있다. 예를 들어 6개의 문자로 이루
어진 파일이 있다면, 이들 가운데 가장 빈도 수가 적은 문자끼리 연결
해 각 문자를 대표하는 값을 얻은다음, 파일의 문자를 대표값으로
바꾸는 방법으로 파일을 압축하는 것이다.
이외에도 LZW라는 압축 방식이 있다. 이 방식은 연속된 문자열을
표로 만들고 같은 문자열이 나타날 때마다 그것을 참조하여 용량을
그러나 소스가 비공개라 이를 이용한 크런칭(Crunching)이나
스퀘싱(Squashing), 슈링킹(Shrinking)같은 압축 방식이 오히려 많이
쓰이고 있다. 각 압축 프로그램은 이처럼 다양한 압축 방식 가운데 한
가지만 쓰이는 것이 아니라, 이 식들을 복합적으로 활용한다.
흥미로운 압축프로그램의 역사
압축 형식은 대개 확장자로 구분하며, 대표적으로 ZIP,RAR,ARC,
LZH,ACE등이 있다. 이 중 ARC는 최초로 개발된 프로그램이지만
요즘은 거의 쓰이지 않고 있고 일본에서 개발한 LZH도 압축률은 뛰
어나지만 압축속도가 늦어 역시 곧 자취를 감추고 말았다. ARJ는
분할압축을 지원해 디스켓을 쓰던 시절에는 가장많은 사용자를
확보했으나, 윈도우 환경으로 넘어오면서 GUI(Graphic User
Interface) 프로그램을 내놓지 못해 도태되고 말았다.
도스 시절부터 지금까지 꾸준한 사랑을 받아오고 있는 압축형식은
ZIP와 RAR정도다. 특히 PK웨어가 개발한 ZIP에는 또다른 재밌는
사연이 있는데, ARC의 개발사인 SEA가 PK웨어의 PKARC를 저작
권 침해로 소송하자, PK웨어는 ZIP형식의 PKZIP를 내놓으며 소스를
공개했다. 특히 ZIP관련 압축 유틸리티가 많은 것도 이 때문이다.
힘들게 세상에 나온 ZIP는 도스시절에는 분할 압축을 지원하던
ARJ나 RAR등 경쟁 상대에 밀려 맥을 못 추었다. ZIP이 전성기를 맞
은 것은 윈도 95가 출시되면서부터이다. 이때 WINZIP사가 ZIP를
인터넷에서 가장 많이 쓰이는 압축형식으로 통일한 것이다. 이에 자
극을 받은 PK웨어가 서둘러 'PKZIP for windows'를 내놓았지만
윈집의 편의성을 따라가기는 역부족이었다. ZIP형식의 개발사가
윈집이 아닌 PK웨어인 사실을 아는 사람은 많이 않다. PK웨어가
개발한 ZIP으로 윈집이 막대한 이익을 챙기니 그야 말로 '재주는
곰이 넘고 돈은 되놈이 갖는다'라는 속담이 딱 들어맞는 상황이다.
아무튼 ZIP이 뛰어난 압축 기능을 가지고 있는것은 분명하다. 한가지
단점이라면 RAR이나 다른 압축 유틸리티에 들어있는 '분할압축'을
제대로 지원못한다. 아예 못하는건 아니고 디스켓을 넣어서 한장씩
복사하는 방식이라 거의 모든걸 인터넷으로 해결하는 요즘에는
적합하지 않다. 자.. 압축에 관한 개념은 이정도로 충분한것 같고
다음 강좌에는 이 압축을 하고 해제 할수 있는 윈집, 알집 등 유틸리
티 사용법을 알아보도록하자.
첫댓글 유익한 전문지식 감사 합니다....