알집을 처음 접했다면 개인이 꼼지락거리며 개발했을 것 같은 아기자기함과 친근감이 느껴진다. 그러나 알집으로 일반 PC 사용자들에게 친숙해진 이스트소프트를 방문한다면 느낌은 사뭇 다르다. 소프트웨어 개발과 관련해 받은 상과 각종 기관의 지정업체 등 걸린 팻말부터가 익히 봐온 벤처 개발업체와 다르게 느껴진다. 사장 이하 기획팀 사원들과의 첫 대면은 더 당황스럽다. 근무복 점퍼가 낯설고 왠지 공장을 가동중인 중소 제조업체 같았기 때문이다. 이스트소프트는 올해로 10년을 맞는다. 그러나 지금의 회사 모습을 갖춘 것은 98년부터로 중간에 한메소프트와 합병을 시도했다가 실패한 적도 있다. 그래서 98년 3월에 재창업 형태로 한메소프트와 인적 합병함으로써 98년 입사자가 거의 이스트소프트에서는 원년 멤버인 셈이다. 이스트소프트에서 놀란 또 한 가지는 개발 회사에서 흔한 밤샘 작업이 없고, 컴퓨터에 깔린 출근부를 꼬박꼬박 체크하는 것, 주말에는 당직자 외에는 출근하지 않는다는 것이다. 이에 대해 김장중 사장은 “개발자도 사람이다. 절대로 사회성을 잃은 기인이 되면 안 된다. 순리에 맞는 삶을 살아야 행복할 수 있다”라며 자유출퇴근이나 철야근무를 하지 않고 정시출퇴근제를 운영하는 이유라고 한다. ‘알’ 신화의 시작, 알집압축 프로그램 ‘알집’은 국내 소프트웨어에 이름을 길이 남길만한 히트작이다. 압축 프로그램의 대명사처럼 통했던 윈집(winzip)을 국내에서 몰아내는(?) 일등 공신이라고 자부하는 제품이기도 하다. 알집은 압축된 파일을 풀지 못해 고심하던 동료의 고충을 풀어주고자 시작한 프로젝트이다 보니 쉽고 인터페이스가 깜찍할 수밖에 없었다. 영어로 된 윈집의 메뉴와 매뉴얼이 부담스럽던 시절 단순하고 쉽게 압축하고 풀자는 소박한 의도로 만든 것이다. 알집을 PC에 설치해 본 사람이라면 누구나 접했을 ‘알집은’이란 공지사항(거의 개발자의 넋두리에 가까운)을 읽다보면 이러한 개발자의 마음이 구구절절이 읽혀진다.그래서 알집을 처음 개발할 99년 당시에는 매우 가볍게 생각했다고 한다. 회사에서 자체적으로 사용하던 것을 일반 사용자에게 공개한 후 국내 모 소프트웨어 다운로드 사이트에서 ‘올해의 국산 소프트웨어’ 등에 뽑히면서는 상황이 달라졌다. 쏟아지는 알집 관련 문의로 게시판이 꽉 차게 되고 급기야는 개발자 한 사람으로는 감당할 수 없는 프로그램이 되었다는 것이다. 2000년에 접어들면서 PC 유틸리티 제품을 꾸준히 개발해 ‘알시리즈화’ 작업을 시도했다. 압축 프로그램 제작을 위한 관련 기술은 거의 다 공개되어 있다. 거의 모든 압축 프로그램은 DEFLATE 알고리즘을 사용하는 데 이는 기본적으로 공부하는 허프만 알고리즘과 슬라이딩 윈도우 알고리즘의 혼합 형태로, 다른 것은 약간 조금씩 변형이라고 보면 된다. 궁금한 독자는 RFC 1951을 인터넷에서 검색하면 자세한 설명과 C 언어 소스가 나온다고 한다. 알집을 개발하면서 어려웠던 문제는 알집을 통해 압축 파일이 만들어지기 때문에 압축하는 부분이 잘못된 경우, 사용자가 압축하고 원본 파일을 삭제한다든지 아니면 압축된 파일을 인터넷에 올린다든지 할 때 2차, 3차 문제들이 속속 생긴다는 것이다(다른 프로그램의 경우 해당 프로그램만 개선하면 되지만 알집과 같이 압축 프로그램은 복구할 수 없는 문제를 가진 압축 파일들이 인터넷 환경에서 생긴다). 이러한 경우에는 문제를 최대한 빨리 해결하는 방법 밖에는 없다고 한다. 알집을 처음 개발하기 시작한 민영환 과장은 인터넷 환경에서 실제로 압축이 제대로 되지 않아 일부의 경우 압축이 풀리지 않을 때도 있는데 이 문제를 해결하기 위해 꼬박 하루 동안 알집 소스를 뒤져야 했던 때가 있었다고 한다. 결국은 속도 향상을 위해 for문을 쓰지 않고 다음과 같은 소스를 60번이나 반복해서 추가했다고 한다. 이렇게 60번 반복되는 부분에서 실수로 25가 두 번 들어가 생겼던 문제였는데 그 많은 소스 중에서 찾아낸 것은 행운 그 자체였다. 이러한 집요한 노력 때문에 초창기 윈집과 비교해 20배나 느렸던 품질 역시 버전을 더할수록 향상되어 이제 자체 포맷을 갖추게 되는 수준에 이른 것이라고. iv := mva[gs + 0]; inc(co1, s.lp[cv][0]); inc(co2,s.lp[cv][1]); inc(co3, s.lp[cv][2]);iv := mva[gs + 1]; inc(co1, s.lp[cv][0]); inc(co2,s.lp[cv][1]); inc(co3, s.lp[cv][2]);iv := mva[gs + 2]; inc(co1, s.lp[cv][0]); inc(co2,s.lp[cv][1]); inc(co3, s.lp[cv][2]);iv := mva[gs + 3]; inc(co1, s.lp[cv][0]); inc(co2,s.lp[cv][1]); inc(co3, s.lp[cv][2]);자체 포맷 ‘alz’를 만들기까지알집에서 압축한 것은 다른데서 안 풀린다는 불평이 많다. 당연히 알집을 안 쓰는 사람이 불평한 것이지만. 실제로 이것은 알집에만 국한된 현상은 아니다. winrar나 winace 파일도 윈집 등에서 안 풀린다. 그래도 ‘욕’을 많이 먹었다고 한다. 그 중 하나가 zip 파일로 분할압축을 만들었는데 알집으로 밖에 안 풀리는 zip 파일이 짜증났던 것이다. 그래서 차라리 자체 포맷을 써서 분할압축을 만들어 zip 파일과 헷갈리는 것을 방지했다고 한다. 워낙 다양한 환경과 생각을 가진 사용자들을 갖고 있기 때문에 무엇 하나 수정하거나 보완해도 불평은 있게 마련이지만 자체 개발한 포맷 alz는 zip 파일의 불편을 개선하기 위해 만든 셈이다. 실제로 우리에게 익숙한 zip 포맷(zip 포맷은 PKware라는 회사가 개발하고, 윈집이 널리 퍼뜨린 것이다)은 만들어진 지 오래되어 현실적인 환경에서는 한계가 있다고 한다. 즉, zip 포맷으로는 최대 4GB까지 밖에 압축이 안 되고 분할압축이 지원되지 않는다. 그래서 zip 포맷으로 해결할 수 없는 상황을 해결하기 위해 alz 포맷을 개발했는데 alz 포맷은 당연히 alz 포맷을 지원하지 못하는 다른 프로그램에서는 풀리지 않는다. 윈집의 경우 ‘꼼수’로 분할압축을 구현하고 있는 것이다. 한 때 알집도 같은 꼼수를 썼다가 자체 포맷으로 방향을 바꿨는데 민영환 과장은 alz 포맷은 zip 포맷의 확장으로 좀더 나은 기능을 제공하고 있다고 자부한다. ‘새폴더’가 ‘새’ 폴더가 된 사연알집을 깔면 사용자가 모르게 생기는 기능이 있다. 바로 새폴더 기능이다. 새폴더 생성 기능은 원래 윈도우에 들어있는 기능으로 편리하게 수정해 넣기로 마음먹고 ‘새’ 폴더라는 이름에서 힌트를 얻어 ‘새’ 이름의 폴더를 넣기로 했다. 새 이름 중에 한자어가 아닌 순수 한글로 된 새 이름 중 ‘새’로 끝나지 않는 것(가미우지 같은)만 골라 넣었다. 실제로 쓰고 있다고 느끼지 못할 만큼 편하게 작동해야 한다는 평소 의지가 반영된 기능이기도 한 새폴더 기능은 실제로 많은 사람들이 알집이 제공한다고 생각하지 못하고 사용하고 있다. 알시리즈의 통합팩 ‘알툴즈’지난 해 알시리즈에 큰 변화가 있었다.‘알’로 시작하는 알시리즈 알집, 알씨, 알패스, 알FTP, 알GIF등을 묶은 통합팩이다. 유료화하면서 우려되는 바가 있었지만 시기적으로 적절한 면이 있었고, 제품의 질에 대한 제고로 비교적 순탄한 출발을 했다(개인 사용자에게는 여전히 무료다). 알툴즈는 친숙하고 쉬운 인터페이스를 지향한다. 그래서 사용자들이 타 프로그램에 비해서 ‘아, 쉽구나’하는 인상을 남기도록 신경을 많이 쓴다. 그리고 많은 기능보다 자주 쓰는 기능들을 더 특화시키려고 하고 있다. ‘자주 쓰는, 필요한 기능의 기준은 무엇일까’ 약간 애매하지만 개발팀은 사업팀 자체 회의와 고객들의 피드백을 적극적으로 분석해 결정하는 편이다. 그러나 무엇보다도 중요한 것은 기본 품질이라고 강조한다. “올해 개발팀은 품질에 각별한 신경을 쓸 예정이다. 그래서 테스트 PC를 여러 대 두고, 버그와의 전쟁을 준비하고 있다”고 알툴즈 개발팀장은 강조했다. 알툴즈가 기업 환경에서 사용하기에는 아직 부족한 점이 있을 수 있지만(비즈니스를 하는데 알집, 알씨, 알FTP를 주로 쓴단다) 개발팀이 의도하지 않은 오류가 발생하지 않도록 힘을 쓸 예정이라고. 유료화한 이후로는 분명 달라야 함을 절감하고 무료로 배포할 때보다 테스트도 더 엄격히 하고 개발자들도 각자 맡은 프로그램을 좀더 냉정히 보고 있다. 특히 요즘은 알씨에 중점을 두고 개발하고 있다. 이미지 뷰어로서의 기본 기능뿐만 아니라 사진 인화 서비스, 핸드폰 이미지 전송 등 다양한 부가 서비스가 추가되고 있는데 사진 인화 서비스는 웹으로 서비스를 확장시키면서 핸드폰과의 연동 기능을 진행중이다. 빠르면 오는 3월 중에 오픈할 예정. 또한 의외로 사용자들에게 반응이 좋은 알맵은 조만간 알툴즈 패키지에 포함될 예정이나 정확한 일정은 잡혀있지 않다. 코딩은 혼자, 고민은 같이알툴즈팀은 거의 1인 1제품을 맡아서 개발하고 있는 셈이다. 팀장을 포함해 4명으로 구성되어 있으며 4명이 각각 알집·알FTP, 알씨, 알패스·알GIF, 알맵 등 4파트로 나눴다. 그래서 소프트웨어 코딩 자체는 개발자 1인이 진행하고 있는 개발 체제를 갖고 있다. 그렇다고 개발자 혼자 모든 것을 다 알아서 결정하는 것은 아니다. 팀을 비롯해 해당 사업팀, 디자인팀과 기획팀이 모두 관심을 갖고 제품 컨셉과 아이디어 추가에 참여할 수 있는 시스템을 갖췄다. 즉, 소프트웨어 개발이 코딩만을 의미하지 않기 때문에 여러 명이 모여서 한 프로젝트를 진행하는 경우보다 일정 관리 측면에서 더 낫다고 생각한 것이다. 개발자 1인이 장기간 한 프로젝트를 진행하다 보면 프로그램 성향이 개발자 개인 취향에 따라 편중되는 경우가 있으므로 이런 경우를 배제하기 위해서 여러 차례의 내부 테스트와 함께 품평회를 통해 특정 개인의 취향에만 치우치지 않도록 하고 있는 것이다. 한 개발자는 “알툴즈 특성상 사용자층이 다양하고 사용자 환경을 예측하기 힘들다. 그래서 회사에서는 아무 문제없는데 나가면 상상을 초월하는 버그가 생기기도 해 아무리 해도 문제가 일어나지 않을 때는 사용자 시스템 사양으로 맞춰놓고 에러날 때까지 계속 해보고 결국에 잡은 경우도 있다”고 말한다. 다른 개발자가 개발한 제품을 버전 업 하는 경우는 소스가 마음에 안들 때도 있지만 나름대로 전임 개발자의 고충을 이해하는 단계가 온다고 한다. 흔히 개발 과정에서 난관에 봉착했을 때 담배 피우거나 간식(주로 새우깡, 짱구 같은 과자다)을 먹다가 이야기하는 중에 해결되는 경우도 많다. 선배의 툭 던지는 한 마디에 실마리가 풀린다고. 한편으로는 자체 세미나를 진행하면서 진행하고 있는 작업이나 개발에 필요한 기본적인 지식도 다양하게 공유한다. 회사 내 게시판에 강좌라는 공부방이 있어서 강좌를 자율적으로 진행하고 있어 자료가 축적되는 이점이 있다. 알툴즈 개발팀에게는 베타 테스트 전에 거쳐야 할 ‘알파2 테스트’가 있다. 알파는 베타 이전을 의미하는 것으로 회사 자체적으로 붙인 이름이다. 세부적인 프로세스는 다음과 같다. ① 사내 인트라넷의 아이디어 게시판과 홈페이지에서 취합된 고객 건의를 활용하여 아이디어 수집② 주간 회의에서 해당 아이디어에 대한 사업성 평가 및 개발팀, 개발자 선정③ 기술적 검토 및 유사 제품에 대한 조사④ UI를 배제한 프로토 타입 개발⑤ 프로젝트 관련 조사 결과와 2차 아이디어 회의 내용을 취합해 프로젝트 목표 및 고객층 설정⑥ 설정된 컨셉에 따라 UI 설계, 아이콘 디자인 및 알파 버전 개발⑦ 개발팀 내부 테스트⑧ 1차 개발 성과에 대한 토의 및 수정안 취합⑨ 알파2 버전 개발⑩ 사내 테스트 ⑪ 사내 버그 리스트를 활용하여 체크리스트 작성/개선 및 수정안 취합⑫ 베타 버전 개발 ⑬ 체크리스트를 활용하여 내부 테스트 시행⑭ 베타 릴리즈⑮ 사용자 평가 및 사용자 버그 리포트를 취합해 재수정16 베타 2 릴리즈 혹은 정식 버전 릴리즈17 정식버전 발표 후 ⑥번부터 다시!자체 개발한 인트라넷이스트소프트는 알툴즈를 포함해 프로그램 개발과 관련해 내부적으로 필요한 시스템은 자체적으로 개발해 사용하고 있다. 먼저 고객지원시스템은 2000년부터 회사 방침에 따라 사용자 게시판의 모든 게시물에 대해서 100% 답변을 작성하고 있고 유사한 질문이 계속 반복되는 점을 관리하고 개선하기 위해 시스템을 개발해 활용중이다. 웹 메일로 접수된 질문을 취합해 늘 반복되는 답변은 자동으로 입력되게 하고 질문자 이외에도 유사한 상황이 있을 것으로 판단되거나 계속 반복되는 질문은 홈 페이지의 FAQ로 옮겨지게 하는 시스템을 개발했다. 이를 통해 사용자는 빠른 답변을 얻을 수 있고 내부 인력의 업무 부하를 줄이고 있다.또 특이할 만한 시스템은 알파2 테스트용 체크리스트다. 개발 과정에서의 실수로 이미 수정된 버그를 다시 삽입하거나 성능을 개선하기 위해 옵션으로 처리한 부분을 원상태로 돌려놓지 않는 경우 등을 이 체크리스트를 통해 가려내고 한 번이라도 버그가 발생됐던 부분에 대해 집중 점검하고 있다. 그 밖에 회사 인트라넷, 사내 게시판을 아이디어, 강좌, 공부, 최신정보 등 용도별로 구별해 개발 과정에서 얻게 된 정보를 공유하고 새로운 제품이나 기존에 개발하고 있는 제품에 대한 아이디어를 취합하고 있다. 아이디어를 내고 제품으로 선정된 경우에는 포상(?)해 동기부여도 하고 있다. 요즘 이스트소프트는 신규 사업을 위해 신입 개발자 면접을 실시하고 있단다. 면접시 주로 보는 관점이 무엇이냐고 개발팀장에게 물었더니 세 가지 조건을 제시한다. 첫째 자기 자신을 책임지고 살아갈 줄 아는 사람인지, 둘째 프로그래밍을 사랑하는 사람인지, 마지막으로 똘똘한지…. 무겁지 않고 실생활에 필요한 소프트웨어 개발에 관심 있고 안정감 있는 개발팀을 찾는다면, 또한 병역특례 업체를 구한다면 이스트소프트, 금상첨화다. @