ETC/Auto Hotkey

AutoHotkey 표현식 완벽 가이드: 스크립트의 핵심을 파악하라!

shimdh 2025. 10. 26. 10:00
728x90

AutoHotkey는 Windows 환경에서 강력한 자동화 스크립트를 작성할 수 있는 무료 오픈소스 도구로, 키보드 매크로부터 복잡한 워크플로 자동화까지 가능합니다. 이 도구를 깊이 있게 탐구하고 스크립팅 능력을 한 단계 끌어올리고 싶다면, 표현식(expressions) 에 대한 이해는 필수적입니다. 표현식은 스크립트 내에서 데이터를 조작하고 계산을 수행하는 데 핵심적인 역할을 하는 요소로, AutoHotkey의 강력한 자동화 기능을 십분 활용할 수 있게 돕습니다. 오늘은 이 표현식이 무엇이며, 어떻게 활용되는지 자세히 알아보겠습니다. 초보자부터 중급자까지 유용한 팁을 포함해, 실전 적용을 위한 가이드를 제공하겠습니다.

728x90

표현식이란 무엇인가요?

AutoHotkey에서 표현식은 변수, 연산자, 그리고 값들이 결합되어 특정 결과를 산출하도록 평가될 수 있는 조합입니다. 쉽게 말해, 우리가 흔히 생각하는 '수식'이나 '계산식'과 같은 개념으로, 특정 조건에 따라 계산을 수행하거나 정보를 검색하는 데 사용됩니다. 표현식은 단순히 숫자를 계산하는 것을 넘어, 스크립트의 논리적 흐름을 제어하고 동적인 콘텐츠를 생성하는 데 핵심 역할을 합니다.

AutoHotkey v1(현재 가장 널리 사용되는 버전)에서는 표현식이 %${} 같은 구문으로 처리되며, v2에서는 더 현대적인 문법으로 진화했습니다. 이 가이드에서는 v1을 기준으로 설명하되, v2 팁도 간단히 추가하겠습니다.

표현식은 단순히 숫자를 계산하는 것을 넘어 다양한 형태로 나타날 수 있습니다. 주요 유형은 다음과 같습니다:

  1. 산술 연산: 덧셈(+), 뺄셈(-), 곱셈(*), 나눗셈(/), 그리고 나머지(%)와 같은 기본적인 수학적 연산을 포함합니다. 우리가 일상에서 사용하는 계산기와 비슷하게 작동하며, 루프나 반복 작업에서 자주 활용됩니다.
  2. 문자열 연결: 두 개 이상의 문자열을 하나로 결합하는 데 사용되는 점(.) 연산자를 사용합니다. 예를 들어, '이름'과 '성'을 연결하여 '전체 이름'을 만들 때 유용하게 활용됩니다. AutoHotkey에서는 문자열이 숫자와 섞여도 자동으로 변환되어 유연합니다.
  3. 비교 연산: = (같음), != (같지 않음), < (작음), > (큼), <= (작거나 같음), >= (크거나 같음)와 같은 비교 연산자를 사용하여 조건을 평가합니다. 이를 통해 스크립트의 흐름을 제어하고 특정 조건에 따라 다른 동작을 수행하게 할 수 있습니다.
  4. 논리 연산 (추가 유형): && (AND), || (OR), ! (NOT) 같은 논리 연산자를 통해 복잡한 조건을 결합합니다. 예를 들어, 여러 조건이 모두 참일 때만 실행되는 로직을 만들 수 있습니다. 이는 if문이나 while 루프에서 필수적입니다.

이러한 유형들을 이해하면, AutoHotkey 스크립트가 단순한 매크로를 넘어 지능적인 자동화 도구로 변모합니다.

표현식의 주요 구성 요소

표현식을 효과적으로 구성하고 활용하기 위해서는 몇 가지 핵심 구성 요소를 이해하는 것이 중요합니다. 아래는 주요 요소들입니다:

  • 변수: 스크립트 실행 중에 변경될 수 있는 값을 저장하기 위한 임시 저장 공간입니다. 변수를 사용하면 데이터를 동적으로 처리할 수 있어 스크립트의 유연성이 크게 향상됩니다. 예를 들어, 사용자 입력을 저장하거나, 계산 결과를 보관하는 데 사용될 수 있습니다. AutoHotkey에서 변수는 :=으로 할당되며, %var%로 참조합니다. (v2에서는 ${var} 사용)
  • 연산자: 피연산자(조작되는 값) 사이에서 수행될 동작을 정의하는 기호입니다. 앞에서 언급했듯이, 연산자는 계산, 비교, 문자열 연결 등 다양한 기능을 수행하며 표현식의 '동작'을 결정합니다. 연산자의 우선순위(예: *+보다 높음)를 이해하면 복잡한 표현식을 안전하게 작성할 수 있습니다.
  • 값(리터럴): 표현식의 기본 재료로, 숫자(예: 42), 문자열(예: "Hello"), 또는 불리언(예: true/false)입니다. 이 값들은 변수 없이도 직접 사용 가능하며, 표현식의 출발점이 됩니다.

이 구성 요소들을 조합하면, 표현식이 스크립트의 '뇌' 역할을 하게 됩니다. 예를 들어, result := (num1 + num2) * factor처럼 괄호를 사용해 우선순위를 명확히 할 수 있습니다.

실제 예시를 통해 배우는 표현식 활용법

이제 실제 예시를 통해 AutoHotkey 표현식이 다양한 시나리오에서 어떻게 활용되는지 살펴보겠습니다. 각 예시는 간단한 스크립트로, 복사해서 바로 테스트할 수 있습니다. (AutoHotkey를 설치한 후 .ahk 파일로 저장하고 실행하세요.)

1. 산술 연산

표현식 내에서 직접 산술 연산을 수행하는 가장 기본적인 예시입니다. 이는 반복 작업(예: 파일 크기 계산)에서 유용합니다.

; 두 변수를 정의합니다.
num1 := 10
num2 := 5
; 덧셈을 수행합니다.
result := num1 + num2  ; result 변수는 이제 15의 값을 가집니다.
MsgBox % "두 수의 합은 " result "입니다."  ; "두 수의 합은 15입니다."를 표시합니다.

; 추가 예시: 복잡한 계산
factor := 2
total := (num1 + num2) * factor  ; 30이 됩니다.
MsgBox % "총합(배율 적용): " total

이 예시에서 := 연산자는 계산된 값(여기서는 num1num2의 합)을 result라는 다른 변수에 할당합니다. MsgBox에서 사용된 %는 변수의 값을 동적으로 출력할 때 사용되는 중요한 표기법입니다. (v2 팁: % 대신 직접 result 사용)

2. 문자열 연결

표현식을 사용하여 문자열을 결합하면 동적인 텍스트를 손쉽게 생성할 수 있습니다. 파일 경로나 로그 메시지 생성에 자주 쓰입니다.

firstName := "John"
lastName := "Doe"
fullName := firstName . " " . lastName  ; 이름과 성을 공백으로 연결합니다.
MsgBox % fullName  ; "John Doe"를 표시합니다.

; 추가 예시: 동적 파일 경로 생성
folder := "Documents"
fileName := "report.txt"
path := folder . "\" . fileName  ; "Documents\report.txt"
MsgBox % "파일 경로: " path

여기서 점(.) 연산자는 여러 문자열을 함께 연결하는 역할을 합니다. 이는 사용자에게 맞춤형 메시지를 표시하거나, 파일 경로를 동적으로 생성하는 등 다양한 상황에서 매우 유용하게 사용될 수 있습니다. 숫자와 문자열이 섞이면 자동 변환되니 주의하세요.

3. 비교를 통한 조건 평가

표현식 내에서 비교 연산자를 사용하여 조건을 평가하고, 이에 따라 스크립트의 흐름을 제어할 수 있습니다. 이는 브라우저 자동화나 사용자 입력 검증에 필수입니다.

age := 20
if (age >= 18)
{
    MsgBox % "당신은 성인입니다."
}
else
{
    MsgBox % "당신은 성인이 아닙니다."
}

; 추가 예시: 논리 연산 결합
isAdult := age >= 18
hasLicense := true
if (isAdult && hasLicense)
{
    MsgBox % "운전 가능합니다."
}
else
{
    MsgBox % "추가 조건이 필요합니다."
}

이 경우, 조건 (age >= 18)age 변수의 값이 18보다 크거나 같은지 확인합니다. 이 조건의 평가 결과에 따라 스크립트는 다른 메시지 박스를 표시하게 됩니다. 논리 연산(&&)을 추가하면 더 복잡한 시나리오를 처리할 수 있습니다.

4. 고급 활용: 함수와 표현식 결합 (부족 부분 보완)

표현식은 내장 함수(예: StrLen())와 결합해 더 강력해집니다. 문자열 길이 체크 예시:

text := "Hello World"
length := StrLen(text)  ; 11 반환
if (length > 10)
{
    MsgBox % "텍스트가 길어요: " length "자"
}

이처럼 표현식을 함수와 섞으면 데이터 검증이나 루프 조건에 활용할 수 있습니다.

결론

AutoHotkey의 표현식은 스크립트 내에서 계산을 수행하고, 문자열을 결합하며, 조건을 원활하게 평가함으로써 데이터를 효율적으로 처리할 수 있도록 하는 강력한 도구입니다. 이러한 기본적인 문법 및 명령어 개념을 숙달하는 것은 앞으로 더욱 복잡하고 정교한 AutoHotkey 스크립트를 작성할 수 있는 튼튼한 기반을 다지는 것입니다.

AutoHotkey를 계속 학습하면서, 여러분 자신만의 특정 자동화 요구 사항에 맞춰 다양한 유형의 표현식을 만들어 연습하는 것이 중요합니다! 예를 들어, 키보드 단축키로 날짜 계산기를 만들거나, 엑셀 데이터 자동 입력 스크립트를 시도해보세요. 반복적인 연습을 통해 표현식의 진정한 힘을 이해하고 여러분의 자동화 스킬을 한 단계 더 발전시켜 보세요. 더 궁금한 점이 있으시면 AutoHotkey 공식 문서(autohotkey.com)를 추천합니다.

728x90