알집
알집(ALZip)은 이스트소프트에서 개발하는 압축 소프트웨어로, .zip, .rar, .ace, .alz, egg 등을 비롯해 40종류의 압축 파일 형식을 지원한다. 대한민국에서 가장 높은 점유율을 보인다. 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를 선별적으로 따라가고 있다.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는 알집 8.0 버전에서 처음 소개된 압축파일 형식이다. 이스트소프트는 기존 ALZ 파일 형식의 단점을 보완하고자 개발한 차세대 압축파일 형식으로 소개한다.
EGG 파일 형식은 기존의 ALZ 파일 형식과 비교하여 아래와 같은 특징을 가진다.