프날 오토핫키 강좌
누르면 강좌 리스트가 나와요
프날 오토핫키 강좌

⚠ 이 강좌는 오토핫키 v1을 다룹니다

지금 보시는 강좌는 구버전 오토핫키(v1.1)를 다루고 있습니다. 따라서 본 강좌의 내용은 현재 최신 오토핫키 버전 (v2.0)과 호환되지 않습니다. 구버전의 정보가 필요한 것이 아니라면, 가능한 한 새로운 사이트에 작성한 v2 강좌(https://ahkv2.pnal.dev)를 봐주시길 바랍니다.

누구나 쉽게 배우는 오토핫키(AutoHotkey)를 위하여

안녕하세요.

 

2014년에 처음 오토핫키를 접한 이후, 당시 제대로 된 오토핫키 강좌가 없다는 것을 알고 2016년에 첫 오토핫키 강좌를 작성하기 시작했습니다. 그 후, 잘못된 내용과 오류 수정, 내용의 보충 등을 거치며 2017년에 네이버 블로그에 오토핫키 강좌를 새로 작성했습니다.

 

즉, 이번에 프날이라는 이름을 달고 나온 지금 이 오토핫키 강좌는 세 번째 써보는 강좌글이 되겠네요.

 

기존 강좌의 오류가 너무나도 많고, 서술이 부족하여 이렇게 새로운 강좌로 찾아뵙게 되었습니다. 기존 강좌를 마무리짓지 못한 아쉬움이 크지만, 잘못된 내용을 이어가는 것 보다는 새롭고 정확한 내용으로 다시 작성하는게 맞다고 생각했습니다.

 


 프날 오토핫키 강좌를 보기 전에 

 

프날 오토핫키 강좌는 게임 매크로 강좌가 아닙니다. 오토핫키는 게임 매크로 만드는 도구가 아니고요.

 

오토핫키(AutoHotkey)는 분명 매크로에 특화된 프로그래밍 언어입니다. 그렇지만 강좌에서 말하는 매크로가 "게임 매크로"를 말하는 것은 아님을 알고계셨으면 합니다. 매크로의 의미를 좁은 범위로 보시지 않았으면 좋겠습니다. 게임 매크로를 포함한 불법적이거나 비양심적인, 서비스 제공자의 의사에 반하는 프로그램은 만들어서도, 배포해서도 안됩니다.

 

다시, 오토핫키는 프로그래밍 언어입니다! 스크립트 언어이고요.

여러분은 지금부터 오토핫키라는 프로그래밍 언어를 배우는 것입니다. 오토핫키는 물론 매크로 제작에 용이하지만, 이는 어디까지나 언어 자체를 잘 이해했을 경우의 이야기입니다. 본 강좌는 '매크로 튜토리얼'이 아닌 '오토핫키 튜토리얼'입니다. 매크로 자체가 불법인 것도 아니고, 매크로를 배척하는 것도 아닙니다. 오토핫키가 개발된 주 목적 또한 자동화작업이기 때문입니다. 그러나 오토핫키는 프로그래밍 언어이고, 매크로 개발 능력은 오토핫키라는 프로그래밍 언어를 익히시면 따라오는 부가적인 능력일 뿐입니다.

 

따라서 매크로 제작 위주로 강좌가 진행되지는 않습니다. 그러므로 강좌 내용은 다른 프로그래밍 언어 강좌와 동일하게 기초부터 차근차근 구성되어 있습니다. 즉, 학창시절 공부로 치면 "응용 문제집"보다는 "기본서"에 가까운 포지션으로 구성했습니다. 매크로 강좌가 아니라 프로그래밍 언어 강좌이기 때문에 최대한 기본기부터, 점점 응용력을 키워줄 수 있는 커리큘럼을 배치하였으니 알아두셨으면 좋겠습니다.

 

또한, 하루 3강정도를 적정량으로 잡고 작성한 강좌입니다. 무리한 학습은 오히려 효율을 저하시킵니다.

하루 2~3강으로 분량 조절을 하시며 들으시면 더욱 효과가 좋습니다. 학습 내용을 바탕으로 주어진 예제를 변형하거나, 새로운 예제를 만들어보세요. 학습 효과가 배가 됩니다. 시간이 남으시면 더욱 학습하셔도 좋습니다만, 50분 정도 학습하신 후 10분 정도 머리를 식히는 시간을 가지세요.

 

마지막으로, 모바일이 아닌 컴퓨터에서 강좌를 봐주셨으면 합니다. 백문이 불여일행, 백 번 읽는 것보다 한 번 코드를 짜보는게 낫다는 뜻입니다. 강좌는 컴퓨터 앞에서 오토핫키 코드를 직접 작성하면서 봐주세요.

눈으로만 보는 강좌는 소설책과 다르지 않습니다.

 

오토핫키 로고

 


 강좌의 구성 

 

본 강좌는 Part.1과 Part.2로 이루어져 있습니다.

 

Part.1은 '컴퓨팅 사고'를 기르는 부분입니다. 오토핫키는 프로그래밍 언어이기 때문에, 이를 제대로 다루려면 컴퓨터처럼 생각할 수 있는 사고를 다져야합니다. 컴퓨터는 애매한 기준(주관적 기준)을 이해할 수 없기 때문에, 어떤 동작을 구현하기 위한 동작을 우리가 명확히 작성해주어야합니다. 이렇게 어떤 방법을 명확하고 혼동 없이 순차적인 알고리즘으로 나타낼 수 있는 능력, 즉 '컴퓨터처럼 사고할 수 있는 능력'을 '컴퓨팅 사고'라고 합니다. Part.1에서는 이런 컴퓨팅 사고를 키우기 위해 기본 문법 및 조건문/반복문을 통한 알고리즘 구성 방법, 오토핫키의 주 용례인 '매크로' 제작을 위한 키보드/마우스 제어 및 화면 탐색에 관한 방법을 배울것입니다.

 

Part.2는 '매크로'가 아닌 본격적인 '응용 프로그램'을 개발할 수 있도록, 오토핫키를 이용해 응용 프로그램 화면을 구성해보고 출력해보는 과정을 배웁니다. 또한, 텍스트 파일을 비록하여 저장 및 로드 개념을 통해 Windows와 통신할 수 있도록 파일 입출력 과정을 배우게 될 것입니다.

 

Part.1과 2에 해당하는 본편 강좌는 70편으로 이루어져있습니다. 좌측 상단의 메뉴 버튼을 눌러서 본편 강좌 목록을 확인해볼 수 있습니다. 

 

이후 본편 강좌는 끝나지만, 심화 내용을 다루는 페이지를 별도 개설하여 이와 관련된 여러 강좌가 준비되어있습니다. 그래픽 출력과 관련된 API인 GDI를 사용하여 화면에 그림을 그리거나 화면 상의 이미지를 가져올 수도 있고, 특정 웹페이지에 접근하여 정보를 보내거나 읽을 수 있습니다. 또 본편 강좌에서 다루지 않는 심화 문법(정규식, 배열 등) 강좌가 준비되어있습니다.

 

'프날 오토핫키 강좌'는 주소창에 pnal.kr을 입력하거나, 검색창에 '프날 오토핫키'를 검색하여 찾아오실 수 있습니다. 또한 공식 오토핫키 사이트(www.autohotkey.com)의 하단부에서도 접근하실 수 있습니다.

 

공식 홈페이지에서 강좌 접근
오토핫키 공식 사이트 하단의 링크를 통해서도 본 강좌에 접근하실 수 있습니다.

 


 강좌의 특징 

 

강좌를 효율적으로 보실 수 있도록 많은 고민을 했습니다.

 

1. 방해요소가 없는 사이트 디자인

 

- 사이트 디자인에 오직 "글 목록"과 "글 내용"만 포함시킴으로써 강좌에 집중할 수 있는 레이아웃을 구성했습니다. 강좌를 보는 중엔 본문에 몰입될 수 있도록 글 목록(사이드 바)이 자동으로 접히며, 한 줄에 한글 45자정도가 배치될 수 있는 780px 정도의 본문 폭을 사용하였습니다.

 

본문 전체 사진
본문 전체 사진

 

2. 혼동이 없는 글씨체 사용

- 본문 글꼴은 Spoqa Han Sans Neo를 사용하여 한층 강좌의 가독성을 높혔고, 소스 코드의 글꼴로는 개발 환경과 동일한 Consolas를 사용하여 숫자 '0'과 알파벳 'O', 소문자 'l(엘)'과 대문자 'I(아이)' 등 글자의 혼동을 줄였습니다.

 

강좌 내 소스코드 예시 사진
강좌 내 소스코드 예시 사진

 

3. 표준 및 권장 용법 사용

- 오토핫키는 개발된지 20년 가까이 된 언어입니다. 그동안 언어도 많은 발전이 있었고, 많은 명령어가 대체되고 새로운 문법이 생겨났습니다. 다른 오토핫키 강좌는 표준 문법에 맞추지 않은 여러 용법을 섞어 강좌하는 경우가 많습니다. 현재 나와있는 오토핫키 강좌는 '비표준', '비권장' 문법으로 가르치는 경우가 많습니다.

 

아직 오토핫키를 자세히 모르는 여러분께 드리기엔 죄송스런 말씀이지만, 현재 오토핫키는 언어 파편화가 굉장히 심합니다. 같은 작업을 하는 명령어가 2가지 이상이라는 뜻입니다. 하나는 표준, 하나는 비표준 문법입니다. 비표준 문법은 과거엔 표준(권장) 문법이었지만, 지금은 새 문법이 나와서 더이상 권장되지 않는 문법을 의미합니다.

 

비권장 문법 표지
비표준 문법은 오토핫키 래퍼런스에서 위와 같이 "not recommended(권장하지 않음)" 딱지로 표시되어 있습니다.

오토핫키는 과거에서부터 만들어진 구식 문법이 새 문법으로 교체되어도, 이전 문법에 대한 정상 작동을 여전히 지원합니다. 그래서 사람들은 습관이 든 비표준화된 이전 문법을 쓰려는 경향이 있습니다. 그러나 강좌를 작성하는 입장에서, 그리고 추후 오토핫키의 발전을 위해선 표준 문법으로 통일될 필요성이 있습니다.

 

문법이 여러개면 배우는 사람 입장에서 헷갈립니다. "저기선 이렇게 가르쳤는데 여기선 저렇게 가르쳐요"와 같이 여러 문법이 같은 동작을 하게 되면 헷갈릴 수밖에 없습니다. 심지어 같은 비표준 문법은 모순된 표기 방식이 많아서 여러분의 이해를 떨어뜨리게 됩니다. 이러한 언어 파편화가 오토핫키를 배우는데 걸림돌이 되는 것입니다.

 

오토핫키측은 이런 문제를 해결하기위해 하위 호환성을 버린 새 문법인 오토핫키 V2를 준비중에 있습니다. 이는 현재의 표준 문법과 유사하여 표준 문법으로 배우면 V2의 새 문법을 배우기 쉽습니다. 그러나 현재 비표준 문법과는 괴리가 심하며, 비표준 명령어 중 아예 삭제된 명령어가 수두룩합니다. 미래를 위해서라도 표준 문법을 배워야합니다!

 

프날 오토핫키 강좌는 오토핫키의 최신 문법을 따라가고, 비표준을 철저히 배제하여 강좌를 작성하였습니다. 그것이 오토핫키의 미래에 도움이 된다는 것을 알기에, 또 여러분들이 이해하기도 쉽고 그렇게 배워야만 한다는 점을 잘 알기에 표준적 문법을 사용하여 강좌하였습니다.

 

또한 가능한 한 우리말을 사용하며, 이미 굳어진 외래어를 사용할 경우 (콩글리시가 아닌)최대한 올바른 표기법을 사용했습니다. 또, 표준/비표준 문제를 넘어서 가장 보기가 편한 코딩 스타일과 정형화된 스크립트 작성 방법을 사용하였습니다.

 

다른 강좌 프날 오토핫키 강좌
대입 연산자로 =를 사용 대입 연산자로 :=를 사용
블럭 { }의 남용 꼭 필요한 경우에만 블럭 처리
이미 사장된 비표준 명령어 사용 (StringMid, IfInstring 등) 권장 명령어 사용 (SubStr(), if + InStr() 등)
비권장 Traditional-if 사용 — if var = value 권장 Expression-if 사용 if (var = value)
'라벨' 용어 사용 '레이블' 용어 사용

 


프날 오토핫키 강좌를 선택해주셔서 감사합니다.

 

좌측 메뉴바에서 AutoHotkey강좌를 순차적으로 들어주시면 됩니다. 데스크탑과 모바일 모두 좌상단의 메뉴 버튼을 눌러서 강좌 목록을 확인하실 수 있습니다.

메뉴 아이콘
메뉴 아이콘

위 아이콘이 메뉴 버튼입니다. PC든 모바일이든 좌측 상단에 있으며, 누를 시 강좌 목록을 확인할 수 있는 "메뉴바"가 열립니다.

 

강좌를 보시다가 내용에 대해 궁금한 점이 있으시다면 언제든지 페이지 우하단의 [질문하러 가기] 버튼을 눌러 질문 페이지로 이동하여 질문 남겨주시길 바랍니다. (모바일에선 본문을 너무 많이 가려서 '질문하러 가기' 버튼이 나타나지 않기 때문에, 메뉴의 '오토핫키 질문하기' 링크를 통해 접근해야합니다.)

 

질문하러 가기 버튼
[질문하러 가기] 버튼(PC만)

마지막으로, 메뉴바 상단부분은 아래 사진과 같이 타이틀 / 추가 강좌 모음 / 질문 메뉴로 구성되어 있습니다. 이 중 "추가 강좌 및 기타 글 모음" 메뉴는 완강 후 심화 내용을 위주로 담고 있으니 참고 바랍니다.

 

메뉴 상단 부분
메뉴 상단 부분

감사합니다.

 

 

강좌 처음부터 보기>