ETC/Auto Hotkey

오토핫키 스크립팅, 연산자로 마스터하기: 자동화의 핵심!

shimdh 2025. 10. 26. 20:09
728x90

오토핫키(AutoHotkey, 이하 AHK) 스크립팅의 세계에서 연산자는 단순한 기호가 아닙니다. 이들은 데이터를 조작하고 복잡한 작업을 효율적으로 수행하게 해주는 핵심적인 구성 요소입니다. 마치 요리사가 다양한 도구를 사용하듯이, AHK 스크립터는 연산자를 사용하여 계산을 수행하고, 값을 비교하며, 데이터를 정교하게 수정합니다. 연산자에 대한 깊은 이해는 여러분의 작업을 효과적으로 자동화하는 동적이고 반응적인 스크립트를 만드는 데 필수적입니다.

이 글에서는 AHK의 주요 연산자 유형을 자세히 살펴보고, 실제 예시를 통해 그 활용법을 알아보겠습니다. 초보자도 쉽게 따라할 수 있도록 기본 개념부터 실전 팁까지 다루며, 부족한 부분을 보완하여 더 포괄적인 가이드를 제공하겠습니다. AHK를 처음 접하는 분들에게는 공식 문서를 추천합니다!

728x90

AHK 연산자의 종류

AHK의 연산자는 크게 네 가지 주요 유형으로 분류할 수 있습니다. 각 유형은 스크립트 내에서 특정 목적을 달성하는 데 사용되며, 이를 조합하면 강력한 자동화 로직을 구축할 수 있습니다.

  1. 산술 연산자: 기본적인 수학적 계산을 수행합니다.
  2. 비교 연산자: 두 값을 비교하고 논리적 결과(참 또는 거짓)를 반환합니다.
  3. 논리 연산자: 여러 조건이나 표현식을 결합하여 복합적인 결정을 내립니다.
  4. 할당 연산자: 변수에 값을 할당합니다.

각 유형을 실제 예시와 함께 자세히 살펴보겠습니다. 코드 예시는 AHK v2 문법을 기반으로 하며, 간단한 주석을 추가했습니다.

1. 산술 연산자: 숫자를 다루는 마법사

산술 연산자는 숫자 값에 대한 기본적인 수학적 연산을 수행합니다. 복잡한 계산을 자동화하는 데 없어서는 안 될 도구로, 엑셀이나 계산기 역할을 대신할 수 있습니다. AHK에서 숫자는 정수나 실수 모두 지원되며, 결과는 변수에 저장해 재사용할 수 있습니다.

  • 덧셈 (+): 두 숫자를 더합니다. 문자열 연결에도 사용되지만, 여기서는 숫자 연산에 초점.
  • num1 := 10 num2 := 5 result := num1 + num2 ; 결과는 15 MsgBox result ; 팝업으로 15 표시
  • 뺄셈 (-): 한 숫자에서 다른 숫자를 뺍니다.
  • result := num1 - num2 ; 결과는 5
  • 곱셈 (*): 두 숫자를 곱합니다.
  • result := num1 * num2 ; 결과는 50
  • 나눗셈 (/): 한 숫자를 다른 숫자로 나눕니다. 실수 결과를 반환합니다.
  • result := num1 / num2 ; 결과는 2.0
  • 나머지 (%): 나눗셈 연산의 나머지를 반환합니다. 반복 루프나 패턴 확인에 유용합니다.
  • modNum := 10 modDiv := 3 remainder := modNum % modDiv ; 결과는 1

산술 연산자 실제 예시: 간단한 예산 계산기

AHK를 사용해 일상적인 예산 관리를 자동화해보세요. 이 스크립트는 소득에서 지출을 빼서 저축액을 계산하고, 결과를 팝업으로 보여줍니다.

income := 1000  ; 월 소득
expenses := 300  ; 월 지출
savings := income - expenses  ; 저축액 계산
MsgBox, "Your savings are $" . savings . "."  ; "Your savings are $700." 표시

이 예시는 AHK가 일상적인 계산에 얼마나 유용한지 보여줍니다. 더 확장하면 파일에서 데이터를 읽어 연간 예산을 추적할 수도 있습니다!

2. 비교 연산자: 조건의 참/거짓을 판별하다

비교 연산자는 두 값을 비교하고 논리값(참 또는 거짓, 즉 true/false)을 반환합니다. 이를 통해 if 문 등에서 조건부 로직을 구현할 수 있습니다. 문자열 비교도 지원되며, 대소문자 구분에 주의하세요.

  • ==: 두 값이 같은지 확인합니다. (엄격한 등가 비교)
  • num1 := 10 num2 := 10 if (num1 == num2) { MsgBox, "The numbers are equal!" }
  • !=: 두 값이 같지 않은지 확인합니다.
  • num1 := 10 num2 := 5 if (num1 != num2) { MsgBox, "The numbers are not equal!" }
  • <, >, <=, >=: 각각 미만, 초과, 이하, 이상을 확인합니다. 숫자나 날짜 비교에 적합합니다.
  • if (num1 > num2) { MsgBox, "num1 is greater than num2!" } if (num1 <= 10) { MsgBox, "num1 is 10 or less." }

비교 연산자 실제 예시: 사용자 입력 유효성 검사

웹 폼이나 프로그램 입력을 검증할 때 유용합니다. 이 스크립트는 사용자가 나이를 입력받아 18세 이상인지 확인합니다.

ageInput := InputBox("Enter your age:")  ; 사용자 입력 받기
if (ageInput < 18) {
    MsgBox, "You must be at least 18 years old!"
} else {
    MsgBox, "Welcome! You are eligible."
}

이 예시는 스크립트가 사용자의 입력에 따라 유효성 검사를 수행하는 방법을 보여줍니다. 에러 핸들링을 추가하면 더 robust해집니다.

3. 논리 연산자: 조건들을 연결하는 다리

논리 연산자는 여러 조건이나 표현식을 결합하여 더 복잡한 의사 결정을 가능하게 합니다. if 문 안에서 자주 사용되며, AND/OR/NOT 조합으로 고급 로직을 만들 수 있습니다.

  • && (논리 AND): 두 조건이 모두 참인 경우에만 참을 반환합니다.
  • num1 := 7 num2 := 8 if (num1 > 5 && num2 < 10) { MsgBox, "Both conditions met!" }
  • || (논리 OR): 적어도 하나의 조건이 참인 경우에 참을 반환합니다.
  • if (num1 > 5 || num2 < 10) { MsgBox, "At least one condition met!" }
  • ! (논리 NOT): 조건을 부정합니다. 참을 거짓으로, 거짓을 참으로 바꿉니다.
  • number := 10 if (!(num1 == number)) { ; num1이 number와 같지 않은지 확인 MsgBox, "Not Equal!" }

논리 연산자 실제 예시: 맞춤형 알림 시스템

사용자 상태에 따라 메시지를 개인화하세요. 이 스크립트는 회원 여부나 할인 코드를 확인합니다.

isMember := true
hasDiscountCode := false
if (isMember || hasDiscountCode) {
    MsgBox, "Welcome back! Enjoy your discount!"
} else {
    MsgBox, "Join us today for exclusive offers!"
}

논리 연산자는 사용자 경험을 개인화하는 데 핵심적입니다. 더 복잡한 경우 중첩 if와 함께 사용하세요.

4. 할당 연산자: 변수에 값을 부여하다

할당 연산자는 변수에 값을 저장하는 데 사용됩니다. 이는 스크립트에서 데이터를 관리하는 가장 기본적인 방법으로, 다른 연산자와 결합해 동적 업데이트를 합니다. AHK v2에서는 :=가 표준입니다.

  • :=: 가장 일반적인 할당 연산자로, 변수에 값을 할당합니다. 표현식 결과도 저장 가능.
  • myVar := "Hello, AutoHotkey!" ; 문자열 할당 MsgBox myVar

또한 복합 할당 연산자(+=, -=, *=, /=, %=)를 사용해 연산과 할당을 동시에 할 수 있습니다. 예: total += 100 (total에 100을 더하고 재할당).

할당 연산자 실제 예시: 변수 초기화 및 업데이트

사용자 정보를 동적으로 관리하세요.

userName := "홍길동"  ; 초기화
userAge := 30
userName := "김철수"  ; 업데이트
MsgBox, "사용자 이름: " . userName . " 나이: " . userAge  ; "사용자 이름: 김철수 나이: 30" 표시

이 예시는 스크립트에서 동적인 데이터를 처리하는 데 필수적입니다. 루프나 함수에서 자주 사용됩니다.

결론: 연산자로 AHK를 업그레이드하세요!

AHK의 연산자는 자동화의 기반을 이루는 강력한 도구입니다. 산술로 계산을, 비교와 논리로 조건을, 할당으로 데이터를 관리하며, 이들을 조합하면 엑셀 자동화부터 게임 매크로까지 무한한 가능성을 열 수 있습니다. 오늘 배운 내용을 바탕으로 간단한 스크립트를 작성해보세요 – 예를 들어, 키보드 단축키로 예산 계산기를 호출하는 스크립트!

728x90