먼저 이 글을 쓰게 된 이유는 한국에서 "Autohotkey"가 평가절하되고 '게임 매크로'라는 오명을 뒤집어 쓴 상황이 너무 안타까워서 입니다. 해외에서는 IT관련 잡지에도 등장하고, 유명 프로그래머가 극찬을 아끼지 않은 언어임에도 유독 한국에서만 안 좋은 평가를 받고 있습니다. 물론 그 인식이 오토핫키를 잘못 활용한 프로그래머에게 있지만 조금씩 노력하다보면 언젠가 Chris형님의 의도데로 한국에서도 올바르게 사용되어 지지 않을까 하는 마음입니다.
오토핫키는 "윈도우즈에서 작동하는 프로그램과 핫키를 제작하는 자동화 도구" 입니다.
먼저 탄생배경부터 좀 알아보겠습니다.
오토핫키가 세상에 처음 나온것은 2003년 11월 13일 Chris Mallett이 Github에 베타버전의 프로젝트를 등록하면서 부터 였습니다.
위키 상에는 Chris Mallett 과 Steve Gray이 개발자로 등록 되어 있습니다. GNU GPL 라이선스를 따르고 있기 때문에 소스코드 공개는 물론이고 파생 소프트웨어의 상업적인 이용에도 아무런 제약이 없습니다. ( 링크: 라이선스에 대한 논란 )
Chris Mallett은 2003년 당시 Autoit v2의 개발에 참여하다 개발진에게 자신의 권유가 받아들여지지 않아 본인만의 프로그램 만들고자 'Autohotkey' 프로젝트를 시작하게 되었습니다. Autoit v2를 기반으로 여러 명령어를 추가하고 본인이 구상했던 기능을 추가해서 'Autohotkey'를 개발하게 된 것입니다. ( Autoit과의 관계에 대한 논란 )
오토핫키는 대규모 프로젝트 였지만 이례적으로 오랜시간 1인 개발 체제를 유지했습니다. 이는 자칫하면 독선적인 방향으로 프로젝트가 흘러갈수도 있는 구조였는데, 여러 포럼에서 실력있는 프로그래머들의 협력으로 많은 기능들이 지속적으로 추가 될 수 있었습니다.
(소문)
Chris Mallett은 여러 프로그래머들이 개선사항을 권유하면 본인 판단하에 적용시키거나 거절시키는 경우가 있었는데, 거절의 경우 "프로그래머가 아닌 사람들이 이해하기 힘들것 같아서"가 많았다고 합니다. 쉬운 언어라는 특징을 유지하려고 노력한 결과 지금까지 올 수 있었다고 생각합니다.
포럼에서는 이와 같은 이유의 거절을 합당하게 받아들였고, 본인이 꼭 필요하다면 원래의 프로젝트를 'fork'하여 자신만의 색깔로 변경하고 버전을 유지하는 사람들도 있었습니다. AHK_L, AHK_H, AHK_N, HotkeyIt 등 수많은 버전으로 revision 되었습니다.
2009~2010년은 혼란기로 볼 수있습니다. 수 많은 버전때문에 새로운 스크립트가 포럼에 게시될 때마다 호완되는 버전을 물어보는 댓글로 포럼도 혼란스러웠고, 몇 번의 포럼 해킹사건과, AutoIt의 개발자와 Chris Mallett과의 불화때문에 힘든 시기도 있었습니다.
2010년 10월 10일 Chris Mallett은 Autohotkey 개발에서 손을 놓게 됩니다. ( 원본글 )
Chris의 글을 보면 오랜시간 방황(?)한 것을 알 수 있습니다. 글을 작성하기 오래 전부터 프로젝트에 흥미를 잃었으며, 적극적이지 못한 자신의 모습을 잘 알고 있었습니다. 세계 곳곳의 오토핫키 유저들이 원하는 작은 사항들을 충족시켜주지 못하는데서 오는 자괴감이나 본인이 원하지 않는 방향으로 흘러가는 프로젝트를 보고 흥미를 많이 잃은듯 합니다.
I didn't want it to become a full-blown programming language.
오토핫키가 스크립트 언어로 불려져야 하는 가장 큰 이유인듯 싶습니다.
이때부터는 Lexikos가 2006년 부터 rivision해오던 Autohotkey_L 버전이 정식버전으로 홈페이지에 등재되고, 개발은 Lexikos가 총괄하게 됩니다. 원래 AHK_L 버전은 원본에서 fork 되어 유니코드와 64비트 윈도우즈를 지원하기 위한 버전이였습니다.
이때 취합된 L 버전은 지금까지 꾸준하게 개발되어 1.1.16.05버전이 최신 버전이며 여기(Github: Lexikos의 Autohotkey_L)에서 소스코드를 다운받을 수 있습니다.
만약 몇 십년 후에도 오토핫키가 널리 사용되고 좋은 인식으로 자리잡으면 관련 서적도 출간될 것이고 이런 오토핫키의 탄생 배경도 언어의 역사라고 적혀있을 것만 같습니다. 지금 우리가 C언어의 역사에 대해 공부하듯 말입니다.
오토핫키의 과거까지 거론한 것은 지금까지 그 많은 프로그래머들과 수학자, 암호학자들이 참여해서 개발해온 오토핫키는 게임오토나 만들고 놀기위함이 아니라는 것을 강조하기 위해서 였습니다.
저는 C언어와 C++을 주 언어로 사용해온 프로그래머 인데도 불구하고, 업무를 제외한 거의 모든 일에는 오토핫키를 사용하고 있습니다. 주변에 프로그래머를 하고싶어하는 동생들이나 지인에게도 오토핫키를 배워보라고 얘기할 정도입니다.
프로그래밍 언어보다 훨씬 간소화 되어 있고 기본 프로그래밍 문법도 지켜지고 있으며 변수와 함수, 클래스와 COM오브젝트를 이용해 다양한 API를 쉽게 이해하고, OS의 구조와 역할에 대해서도 단시간에 익힐 수 있습니다.
또 비 프로그래머라고 할지라도 각종 컴퓨팅 업무에 적용시켜 엄청나게 많은 효율을 가져올 수 있습니다.
윈도우즈를 포함한 마이크로소프트에서 개발한 많은 프로그램들과 연결도 자유롭습니다. 마이크로소프트에서 개발하지 않았더라도 윈도우즈에서 구동되는 모든 소프트웨어에 접근하고 제어 할 수 있습니다. 이런점이 오토핫키의 엄청난 강점으로 작용하고 있습니다.
예를들어 html, xml, json 등을 파싱해서 보기좋게 표현할 수도 있고, 웹을 조금더 쉽게 이용할 수도 있고, 데이터베이스를 이용해서 엑셀과 같이 연산이나 자료정리로 사용할 수도 있고, 반복작업을 수초내에 끝낼수도 있으며, 멀티미디어를 재생하고, 메일 송수신이 가능하고, FTP를 이용해 파일 송수신, 폴더와 파일정리, 각종 문서의 인코딩.. 단순하게 (윈도우즈가 설치된)컴퓨터에서 사람 손으로 하는 모든 작업을 오토핫키로 구현할 수 있습니다.
오토핫키는 아래와 같이 사용할 수 있습니다.
1. 오토핫키를 설치한다.
2. 메모장을 연다
3. 아래의 소스코드를 적는다
F1::
Msgbox, 안녕
return
4. 저장을 누르고 바탕화면에 test.ahk 로 저장한다.
5. 방금만든 test.ahk 을 더블클릭(실행) 한다.
이제 언제 어디서나 F1키를 누르면 "안녕" 이라는 글자가 써진 메세지 박스가 나타납니다.
"Msgbox, 안녕" 에 해당하는 2번째 줄 위치에 원하는 기능을 써 넣기만 하면 F1번 키를 누를때 실행됩니다.
익스플로러를 켜서 블로그를 바로 켜게 하거나, F1키는 구글, F2키는 네이버, F3키는 티스토리 이처럼 마음데로 지정할수 있고, 인터넷을 키는 대신 계산기를 켜거나 자주하는 게임을 실행시키거나, 복잡한 아이디나 비밀번호를 입력하게 할 수도 있습니다.
이렇게 컴퓨팅 환경을 개선시켜줄 수 있는 스크립트가 "오토핫키" 입니다.
앞으로 Autohotkey 카테고리에 강좌겸 자잘한 유틸리티를 만들어 올릴 계획입니다. 하나하나 따라할 수 있게 소스코드도 설명해볼 요량입니다. 프로그래밍까지 배우기는 무섭지만 생활이나 업무가 컴퓨터와 가까우신 분들은 유의깊게 보시면서 익혀두시면 쓸데가 많을것 같습니다. 관심있게 지켜봐주세요.
오토핫키 공식 사이트 - http://www.autohotkey.com
오토핫키 공식 포럼 - http://www.autohotkey.com/board/