[0] 오토핫키 Autohotkey 완벽분해 강좌 - 소개

Posted by 아이티프로13
2018. 4. 26. 00:25 프로그래밍/AutohotKey

안녕하세요. 쿠과자입니다

저는 일반적으로 프로그래밍을 파이썬으로 하는데요,

아주 간단한 매크로를 만들거나 몇십분만에 그냥 필요한 프로그래밍은 오토핫키, Autohotkey를 이용하고 있습니다.

그렇다면 오토핫키 강의를 하기 전에,

왜 오토핫키를 사용하는지, 왜 오토핫키가 그렇게 사랑받는지,

그리고 왜 오토핫키가 그렇게 간편한지 알아보도록 합시다




오토핫키란?


먼저 오토핫키에 대해 알아보도록 합시다.

오토핫키, Autohotkey는 AutoIt에서 파생된 언어입니다.

2003년부터 2014년까지 Chris Mallett에 의해 개발되고,

현재는 Github 닉네임 Lexikos라는 분을 포함한 약 3분과 함께

더 개량된 버전을 개발하고 있습니다.


Chris Mallett이란 분이 개발한 버전은 정식적으로 Autohotkey_B(Autohotkey Basic)이란 버전으로 불리고,

Lexikos님이 현재 개발하고 있는 버전은 정식적으로 Autohotkey_L 이라고 불립니다. 이 버전이 우리가 일반적으로 쓰고, 오토핫키 공식 홈페이지에서도 밀어주는 버전입니다.

그 외에도, Autohotkey_H 버전이란게 있습니다. HotKeyIt이란 분이 개발하셨고, 이는 Autohotkey를 dll로 추출해 다른 언어(파이썬이라던가, C# 등)에서 쓸수있게 하거나, 멀티쓰레딩을 지원해주는 언어입니다. 






오토핫키가 강력한 이유


오토핫키의 가장 큰 장점은 먼저 "쉽다"는 것입니다.

오토핫키는 매크로의 목적으로 만들어진 언어입니다.

그렇기 때문에, C언어나 C#같은 언어의 경우에는 맨 처음 베이스가 굉장히 복잡하고

마우스 조작, 키보드 조작을 배우는데도 몇일이 걸려서 하나하나 쌓아야 만들수가 있습니다.

하지만, 오토핫키의 경우라면 설치하고 한줄만 딱 쓰면 끝입니다.


또한, 설치가 굉장히 쉽습니다.

물론 다른 언어도 설치가 쉬운 경우가 있습니다.

C의 경우라면 MinGW만 깔면 되고, 파이썬의 경우에도 40MB짜리 설치파일만 설치하면 끝이니까요.


하지만, 오토핫키는 이보다 더 쉽습니다.

설치 파일의 경우 10초(이것도 길게잡은겁니다!) 밖에 설치시간이 안걸리죠.

그리고, 오토핫키 코드를 실행하는 인터프리터도, 단 하나의 exe파일밖에 없고

이마저도 용량이 1MB 내외입니다.


다른 컴퓨터에서 급하게 작업을 해야할때,

오토핫키를 딱 설치해서 딱 딱 하면 굉장히 편하죠.




또한, 오토핫키는 이렇게 쉽고 간편함에도 불구하고

왠만한 윈도우 조작은 다 지원합니다.


일단 마우스, 키보드 조작은 물론이고

GUI지원, 윈도우 정보 가져오기, 데이터 파싱,

게다가 Winhttp와 Dllcall까지 지원합니다!


마지막으로, 오토핫키는

인터프리터 언어이기때문에

오류가 난 경우, 그 오류난 지점(줄)을 정확히 알려줍니다.

C언어나 C++같은 경우는

불친절하게 오류만 뛕! 뱉는 경우가 많지만(컴파일러마다 다르긴합니다)

오토핫키의 경우 친절하게 이 구문이 어떻게 잘못됬다!

이렇게 알려주기때문에, 언어를 처음 접하시는분들에게 굉장히 도움되는 부분입니다.




오토핫키의 단점


그렇다면 오토핫키의 단점은 뭐가있을까요?


먼저, 속도가 있습니다.

위에서는 오토핫키가 인터프리터 언어이기때문에 장점이 있다고 했지만,

결론적으로 한줄한줄 읽고 실행하고, 읽고 실행하고 하기때문에

컴파일 언어보다 속도가 느린건 팩트입니다.


Ps. 오토핫키에 컴파일 기능을 이용하면 속도가 빨라지냐? 라고 물을수도 있는데

이 컴파일은 그냥 소스코드 자체를 실행 가능한 파일로 옮긴것이기 때문에

한줄한줄 읽고 실행하고 하는건 변함이 없습니다.



또한, 오토핫키는 보안 문제가 심각합니다.

애초에 오토핫키 취지가 Open Source, Copyleft

즉 오픈소스, 커피레프트를 지향하는 언어이기때문에

컴파일된 파일을 열기만 해도, 아니면 실행후 리소스를 검색하기만 해도

소스코드가 바로 보입니다.

이건 어떤 의미에서는 장점이지만, 저의 경우에는 단점에 따로 기록했습니다.

물론, 이 경우에는 난독화, 암호화 컴파일러를 따로 판매하시는 분들이 계셔서

그쪽에서 구매를 하시면 소스코드가 숨겨지는 경우도 있습니다.


그리고, 오토핫키는

다른 플랫폼(리눅스, 안드로이드)에서의 지원을 안해줍니다.

애초에 윈도우용 프로그램을 목적으로, C언어와 C++언어를 기반으로 만들어진 언어이기때문에

안드로이드에서의 사용은 포기하셔야 합니다.


마지막으로, 오토핫키는 각종 게임 보안 프로그램에 걸리는 경우가 있습니다.

굉장히 이상한(...)문제인데, 애초에 프로그래밍 언어 자체를 게임가드에서 막아버리는 것 부터가 문제가 있습니다 ㅡㅡ;

사실 오토핫키가 매크로용으로 만들어지는 프로그램이 대다수기 떄문에, 게임사 입장에서는 막는게 당연한걸수도 있습니다.

이쪽도, 우회 컴파일러를 따로 구매하시면 이용이 가능합니다.





지금까지 오토핫키를 간략히 소개해보고

오토핫키의 장단점 또한 알아봤습니다.


오토핫키, 정말 강력한 언어라고 저는 생각됩니다.

어떤 목적에서 이 블로그를 찾아오셨든, 오토핫키를 배우시면

굉장히 장점이 많다고 생각되는 바입니다.


다음 시간부터는 설치부터 시작해보도록 하겠습니다.




공감 버튼을 눌러주시면

블로거에게 힘이 됩니다!