이 문서는 압축 소프트웨어에 관한 것입니다. 난소에 대해서는 생식기관 문서를, 알의 뭉치에 대해서는 알덩어리 문서를 참고하십시오.

**알집**(ALZip)은 이스트소프트에서 개발하는 압축 소프트웨어로, .zip, .rar, .ace, .alz, egg 등을 비롯해 40종류의 압축 파일 형식을 지원한다. 2000년대 대한민국에서 가장 높은 점유율을 보인 압축 프로그램이다. EGG 포맷을 유니코드 지원을 위하여 이스트소프트에서 독자 개발하였으며, 상업적 이용을 위한 별도의 라이선스취득을 안내하고 있다.

역사
--

알집은 1999년에 민영환 이스트소프트 이사가 자사의 여직원이 영어로 된 압축 프로그램을 잘 다루지 못하는 것을 보고 사내용으로 만든 한글 압축 소프트웨어였다. 민영환의 영어자모 alsdudghks에서 al 을 따오고, zip을 합성하여 alzip이라는 이름을 가지게 되었다. 당시 널리 쓰이던 WinZip이 한글 인터페이스를 지원하지 않고, 상용 프로그램(셰어웨어)인 관계로 회사나 공공기관 등에서 무료로 사용할 적당한 프로그램이 없던 시절, 델파이의 ziptv 컴포넌트를 사용하여 개발을 하였는데, 회사 내부에서 좋은 평가를 받아 이후 일반 자료실에 공개되면서, 이후 알~ 시리즈라는 브랜드화를 이끈 이스트소프트의 대표 소프트웨어가 되었다.

처음에는 프리웨어로 배포되었으나, 2001년 10월부터 기관 사용자는 라이선스를 구입해야 사용할 수 있도록 바뀌었고, 2002년 4월에는 기업,공공,교육기관도 라이선스를 구입해야 하도록 바뀌었다.

알집이 성공하면서 이스트소프트는, 알집에 포함된 광고배너를 통해 주식공모를 하는 특이한 모습을 보여주었으며, 회사의 장기비전인 2010년까지 1억명이 사용하는 소프트웨어 10개를 개발한다는 목표에 따라, 알씨(이미지 뷰어), 알툴바, 알드라이브(옛 알FTP), 알약, 알마인드, 등 알툴즈 시리즈를 배포하고 있다.

이스터 에그
------

알집은 두 종류의 이스터 에그로 잘 알려져 있다.

하나는 알집의 버전 정보 등을 보여주는 ‘알집은...’ 메뉴의 내용으로 알집의 개발 과정과 라이선스 전환 등의 주요한 사건을 익살스럽게 기술한 것이다. 여기에는 민영환 이사가 채팅을 하다가 자신이 알집을 만들었다고 했으나 모두 거짓말로 생각했다는 일화나, 알집의 라이선스 변경, ALZ 파일 형식의 추가 등에 대한 내용이 들어 있다.

또 다른 하나는 ‘새-’로 시작하지 않는 새들의 이름으로 폴더를 만들어 주는 ‘새 폴더’ 기능으로, 한국어에서 조류와 새로움을 뜻하는 말이 같다는 동음이의어를 활용한 위트이다. 또한,이 새 폴더를 계속 생성하다 보면 ‘새이름도 바닥났어’, ‘쫌~~’, ‘정 그렇게 나온다면...’ 등이 나오며 ‘-새’로 끝나는 단어가 나오고, ‘그만해 X 1’과 같이 나온다.

논란
--

알집은 예쁜 인터페이스와, 한글지원, 편리한 설치 및 업데이트 방식, 등을 이유로, 널리 사용되었다.
하지만, 당시 경쟁업체들에게 있어서는, 공개되지 않아 호환할 수 없는 alz포맷은 재앙이었다.
때문에, 알집에 대하여 이후 적대적인 환경이 조성된다.

특히 이스트소프트웨어의 개발철학도 영향을 미쳤는데, 기존에 ZIP2.0이 지원하던 기능은 알집역시 ZIP파일 생성시 지원하되, ZIP2.0에서 지원하지 않는 기능은, 자체포맷(alz)를 통해 해결한다는 것이 그것이다. 이로인해, 알집은 이후 ZIP포맷이 4GB이상파일과 분할파일기능을 지원하기 시작했음에도, ZIP포맷지원을2.0으로 한정하고, 관련 기능은 자체포맷인 alz 에만 추가하였다. 흥미로운것은 ZIP포맷의 창시자인 pkware사 역시, 호환성옵션으로 use pkzip 2.04 limitations를 제공하고 있다는 것이다. 즉 알집과 pkware사의 ZIP포맷 호환성기준이 완전하게 일치한다. 반면 다른 경쟁ZIP호환회사들은 pkware사의 최신zip규격을 공개하는 appnote.txt를 선별적으로 따라가고 있다.

### 논란의 종류

1. 레지스트리 변경 문제: 5.x 이전 버전의 알집에서, 프로그램을 제거하고 나서도 압축 파일 확장자 연결이 온전히 복구되지 않으며, 알집의 아이콘도 그대로 남는 등 인스톨러의 레지스트리 변경 문제가 있다는 주장이 존재했다. 개발사인 이스트소프트에서 검토결과 사용자PC 쪽의 문제인 것으로 추정하고 있다.
2. 유니코드 문제: 그동안 유니코드로 된 파일명을 지원하지 않았고, 일부 버전은 유니코드 파일을 풀때 디스크가 가득 찼다는 메시지를 출력하기도 하였다. 개발 버전으로 최초 배포된 알집 Egg Edition부터는 유니코드를 지원한다.
3. 압축 문제: 알집 예전 버전에서 ZIP 파일 형식으로 압축한 파일을 다른 압축 프로그램으로 풀 수 없다. 이 파일은 오로지 알집으로만 풀린다.

### ALZ 파일 형식

ALZ는 알집이 자체적으로 지원하는 압축파일 형식이다. PKZIP은 4.5버전 이전에 4GB 이상의 대용량 파일 압축을 지원하지 못했기에, 이를 지원하는 ALZ 포맷은 국내에서 많은 인기를 누렸다. 또한 ZIP의 분할 압축 기능이 PKZIP과 WinZip 등 프로그램 구현체마다 달라 모두 구현하는 것이 어려워 별도의 포맷이 필요했다고 이스트소프웨어에서 밝혔다. 실제로도 ZIP 이후에도 RAR이 나오고, 다시 RAR5가 나왔으며, ZIPX가 나오고, 7z라는것도 만들어진데서 보듯이, 신형 포맷을 만드는 것이 당시의 경향이었다.

ALZ는 변형bzip2과 DeFlate 압축알고리즘이 사용되며, ZIP 파일 포맷과 유사한 구조를 가진다. ZIP 파일 포맷을 개발한 PKWARE사에서는 많은 정보를 공개하고 있어, ZIP에 호환되는 많은 압축프로그램 개발사들이 생겨났다.

#### 독점성 논란

ALZ 파일 형식이 처음 소개된 알집 4.9가 발표된 2001년은 여러 한국산 압축 프로그램이 경쟁하던 시기였으며, 이스트소프트웨어는 알집의 (기업용)유료화를 준비하던 시기이다.
당시는, ZIP포맷의 창조자였던 PKWARE사 조차, 서명(Sign)기능을 도입하는데 시장독점에 대한 의심을 받을정도로 조심스럽던 시기였었다.
그런데, 시장 점유율이 가장 높았던 알집이 자체 압축파일 형식인 ALZ를 사용하기 시작하고, 경쟁사들이 이를 지원하지 못하게 되자, 급격히 시장을 확대하는 알집에 대한 공격적인 분위기가 조성된다. 한편 초기 ALZ 포맷에서 사용된 변형된 bzip2 압축 알고리즘은 원래 bzip2 알고리즘에서 일부 비트를 제거하고 시그니처를 변형한 비표준형태였기 때문에, 경쟁사에 의한 많은 역공학 시도가 실패하였다. 따라서 이스트소프트는, 실제로는 4GB이상파일생성과 분할파일생성을 지원하기위한 것이었음에도, 알집을 시장 지배적인 위치에 두기 위하여 의도적으로 압축파일 형식을 변형하였다는 의심을 받게된다. 이후, 알집 5.0 버전부터는 변형부분을 제거하고 압축알고리즘을 Deflate기반으로 다시 작성하였는데, 이로 인해 과거 변형bzip2 알고리즘으로 생성한 ALZ 파일을 새 버전의 알집이 제대로 풀지 못하는 경우가 종종 발생했다. 이후로는 DEFLATE 알고리즘을 변형없이 사용하기 때문에 호환성문제가 사라졌으며, 압축 포맷도 쉽게 분석할 수 있게 되었다. 또한 최신알집버전으로 잘 풀리지 않는 옛파일은 이스트소프트웨어에 연락하면 서포트되고 있다.

저작권법상의 측면에서 보면, bzip2가 채택하고 있는 BSD 라이선스는 코드의 변형 및 클로즈드 소스 형태로의 재배포, 상용 소프트웨어의 제작 등이 자유롭다. 때문에 알집이 bzip2를 변형하여 사용한 것은 저작권 침해가 아니며, bzip2에서 사용하고 있는 BSD 라이선스에 따르면 개작 소프트웨어에 대해 BSD 라이선스를 기반으로 제작된 것임을 고지할 의무도 없다. 최근 저작권 논란과 관련하여 이스트소프트는 자사의 공식 블로그에 입장을 밝혔다. 유사한 저작권관련 의심사례로 KMPlayer를 둘러싼 논란도 존재한다.

#### 역공학(리버스 엔지니어링)

당시 국내 업계의 분위기는, 이스트소프트에게 ALZ 파일 형식의 압축을 풀기 위한 라이브러리와 소스코드 공개를 강하게 압박하였다.
그 와중에, 양병규씨가 역공학을 통해 ALZ파일포맷에 최초로 호환이 가능한 빵집을 공개하면서 처음으로 ALZ호환의 길이 열리게 되었다. 알집 5.0에서 사용된 ALZ 포맷은 DEFLATE 알고리즘을 사용하고 있어 비교적 분석하기 쉬웠지만, 알집 4.9에서 사용된 파일 형식은 압축된 파일에 대한 역공학을 통해 변형된 bzip2 알고리즘이라는 것을 밝혀냈다.
ALZ 파일 형식의 압축 해제 라이브러리는 한 개발자가 트집을 발표하면서 zilb 라이선스로 공개하였다. 트집은 .alz 파일을 풀기 위한 프로그램이고, 제작자는 이 라이브러리를 이용하여 BSD/리눅스/OS X 등의 콘솔에서 사용이 가능한 unalz를 개발하여 공개하였다. 그 뒤, 이 소스를 토대로 .alz 파일의 압축을 푸는 토탈 커맨더 플러그인도 개발되었다. 지금은 이스트소프트웨어에서 alz와 egg의 압축해제모듈을 무료로 배포하고 있다.

ALZ 파일 형식을 지원하는 프로그램으로는 알집, 빵집, 다집, ZipZag, 트집, 반디집(구 압축시대), ZIP+ 등이 있다.

### EGG 파일 형식

#### 배경

EGG는 알집 8.0 버전에서 처음 소개된 압축파일 형식이다. 이스트소프트는 기존 ALZ 파일 형식의 단점을 보완하고자 개발한 차세대 압축파일 형식으로 소개한다.

#### 특징

EGG 파일 형식은 기존의 ALZ 파일 형식과 비교하여 아래와 같은 특징을 가진다.

* 유니코드 인코딩 지원: 기존의 ALZ 파일 형식이 파일명 저장에 MBCS만 지원하던것과 달리, EGG 파일 형식은 개선된 유니코드방식인 UTF-8 인코딩을 지원하여 파일명 저장시 다국어 호환성이 더욱 강화되었다.
* 다양한 압축 알고리즘 지원: EGG는 기존의 ALZ가 지원하던 DEFLATE 및 BZIP2 압축 알고리즘뿐만 아니라 7-Zip에서 사용된 LZMA 압축 알고리즘을 지원하고, 자체 개발한 압축 알고리즘인 AZO 알고리즘도 사용한다.
* 다양한 암호 알고리즘 지원: ALZ 파일 형식은 옛 제품인 ZIP 2.04 파일 형식에서 사용하는 암호화 알고리즘인 ZIP CRYPTO를 사용하였는데, 이 암호 알고리즘은 암호화 수준이 강하지 않아 이후 암호를 깨는 많은 해킹프로그램이 나와있다. 반면, EGG 파일 형식은 AES128, AES256과 같은 높은 수준의 암호화 알고리즘을 지원한다.
* 파일 확장자별 자동 압축 알고리즘 선택 기능: 알집 8.0 은 EGG로 압축시 파일의 확장자별로 압축 알고리즘을 따로 사용하는 기능을 가지고 있다. 예를 들자면 텍스트 파일을 압축할 때에는 BZIP2 알고리즘의 압축 효율이 좋기 때문에 BZIP2 로 압축을 하고, 이미 압축이 되어 있는 파일은 압축을 하지 않고 그냥 저장하는 기능이다. (타사 제품중에, 일부 확장자의 파일에 대하여 압축을 skip하는 형태로 압축시간을 단축하는 아카이브 기술을 쓰는 제품도 있다.)
* 솔리드 압축 지원: 7-Zip이나 RAR 등에서 지원하는 솔리드 압축을 지원한다. 솔리드 압축은 압축파일 속의 내용물파일들을 개별조작하는 능력을 포기하는대신, 압축율을 끌어올리는 압축방식이다. 이를 사용할 경우 원본 데이터의 특성에 따라서 매우 높은 압축률로 압축할 수 있으나, 파일손상시 복구가 어려워진다.

#### EGG포맷으로 자동변경되는 사항

* 4GB이상 파일의 압축시 EGG 자동변경 : 알집 8.0 이후 버전은, 기본적으로 ZIP 2.04 포맷으로 압축파일을 생성하지만, ZIP 2.04포맷의 한계로 인하여, 4 기가바이트 이상 파일을 압축시에는 EGG 파일 형식으로 압축하도록 한다.

* 분할 압축시 EGG 자동변경 : 기존의 ZIP(ver2.04) 과 ALZ의 파일 형식은 분할 압축시 .alz, a00, a01, ... ,a99 (z99) 로 확장자를 3글자로 맞추어야 했기 때문에 분할 압축할 수 있는 파일 수가 101개에 불과했으나, 알집에서는 EGG 파일포맷을 통해 RAR과 7z와 유사한 .VOL1.EGG, .VOL2.EGG, ...의 형태로, 파일명 중간에 숫자를 증가시키는 방식을 사용하여, 무한한 파일분할을 지원하게 되었으며, 이후 파일분할시에는 EGG로 자동변경을 하고 있다. 참고로 appnote.txt에 공개된 pkware사의 ZIP포맷은 6.3.4이며, 6.5가 최신이다.