안녕하세요, 자동화 애호가 여러분! 매일 반복되는 지루한 작업에 지쳐 계신가요? 키보드와 마우스를 대신해 주는 오토핫키(AutoHotkey)가 이미 여러분의 든든한 조력자라면, 이제 한 걸음 더 나아가 보세요. 반복문(Loops) 과 조건문(Conditionals) 을 활용하면 단순한 '키 입력 자동화'에서 벗어나, 상황에 따라 '지능적으로 반응하는' 스마트 스크립트를 만들 수 있습니다.
이 글에서는 오토핫키의 핵심 프로그래밍 개념인 반복문과 조건문을 자세히 탐구하겠습니다. 초보자도 쉽게 따라할 수 있도록 실전 예제 코드를 포함했으니, 함께 따라 해보세요. 이 기술을 익히면 파일 처리, 사용자 입력 검증, 심지어 간단한 게임 로직까지 구현할 수 있을 거예요. 자, 시작해 볼까요?
반복문: 효율적인 작업 자동화의 핵심
반복문은 '같은 작업을 여러 번' 수행할 때 필수적입니다. 코드를 복사-붙여넣기 하지 않고도, 루프(Loop)를 통해 효율적으로 자동화할 수 있어요. 오토핫키에는 상황별로 적합한 세 가지 주요 반복문이 있습니다. 각 문법과 활용 팁을 예제와 함께 알아보죠.
1. While 반복문: 조건이 참인 동안 끝없이 반복
While 루프는 '특정 조건이 만족되는 동안' 코드를 반복합니다. 예를 들어, 무한 반복을 피하기 위해 카운터 변수를 사용해 제어할 수 있어요. 이는 센서 데이터 모니터링이나 사용자 응답 대기 같은 동적 작업에 딱 맞아요.
count := 0 ; 카운터 초기화
While (count < 5) { ; count가 5 미만일 때 반복
MsgBox, Count is: %count% ; 메시지 박스 표시
count++ ; count를 1 증가
}
이 코드를 실행하면 "Count is: 0"부터 "Count is: 4"까지 다섯 번의 메시지 박스가 순서대로 나타납니다. 팁: 무한 루프를 방지하려면 항상 종료 조건을 명확히 하세요!
2. Loop 명령어: 정해진 횟수만큼 또는 조건까지 반복
Loop은 가장 간단한 반복문으로, 고정 횟수 반복이나 Break로 조기 종료가 가능합니다. 파일 목록 처리나 클릭 반복 같은 고정 작업에 유용하죠.
Loop, 5 { ; 5회 반복
MsgBox, This loop runs %A_Index% time(s). ; A_Index는 현재 반복 횟수
}
실행 결과: "This loop runs 1 time(s)."부터 "5 time(s)."까지 표시됩니다. 고급 팁: Loop, Parse, 문자열처럼 문자열을 파싱할 때도 활용하세요. 예를 들어, 쉼표로 구분된 목록을 순회할 수 있어요.
3. For 반복문: 배열이나 목록을 순회하며 처리
For 루프는 배열(Array)이나 객체를 순회할 때 최적화되어 있습니다. 데이터베이스나 목록 기반 작업(예: 엑셀 행 처리)에 강력해요.
myArray := ["apple", "banana", "cherry"] ; 배열 정의
For index, value in myArray { ; 각 요소 순회
MsgBox, Item %index%: %value% ; 인덱스와 값 출력
}
결과: "Item 1: apple", "Item 2: banana", "Item 3: cherry" 순으로 표시됩니다. 팁: 오토핫키 v2부터 배열 지원이 강화되었으니, 최신 버전으로 업데이트하세요!
조건문: 스크립트에 지능을 불어넣다
조건문은 '만약 ~라면' 논리를 구현합니다. 스크립트가 환경(예: 시간, 입력값)에 따라 다르게 동작하게 해주죠. 이는 자동화의 '뇌' 역할을 합니다.
If 문: 기본적인 조건 판단과 분기
If는 가장 직관적인 조건문으로, Else나 Else If와 함께 사용해 다중 분기를 만들 수 있습니다. 사용자 나이 확인이나 파일 존재 여부 검사에 필수예요.
age := 18 ; 변수 설정 (실제로는 InputBox로 입력받을 수 있음)
if (age >= 18) {
MsgBox, You are eligible to vote! ; 조건 참 시 실행
} else {
MsgBox, Sorry, you must be at least 18 years old. ; 조건 거짓 시 실행
}
확장 팁: 다중 조건은 && (AND), || (OR)로 연결하세요. 예: if (age >= 18 && country = "KR").
반복문과 조건문의 결합: 복잡한 논리 구현
이 두 개념을 합치면? 진짜 마법이 일어나요! 루프 안에서 조건을 검사하며 각 항목을 '선별' 처리할 수 있습니다. 아래 예제는 숫자 배열을 순회하며 짝/홀수를 구분합니다.
numbers := [1, 2, 3, 4, 5] ; 숫자 배열 정의
For index, number in numbers {
if (Mod(number, 2) = 0) { ; Mod()로 나머지 계산 (짝수 확인)
MsgBox, %number% is even. ; 짝수 처리
} else {
MsgBox, %number% is odd. ; 홀수 처리
}
}
결과: "1 is odd.", "2 is even." 등 순차 출력. 실전 팁: 중첩 루프(루프 안에 루프)로 2D 배열이나 그리드 처리를 해보세요. 성능을 위해 Sleep 명령어로 지연을 추가하면 안정적입니다.
실용적인 적용: 오토핫키의 무한한 가능성
이제 이론에서 실전으로! 반복문과 조건문을 결합하면 오토핫키가 'AI 같은' 도우미가 됩니다. 아래는 실제 활용 사례입니다:
- 작업 자동화: 폴더 내 파일 목록을 루프로 순회하며, If로 '특정 확장자(.txt)만' 복사하세요. 예: 백업 스크립트.
- 사용자 입력 유효성 검사: InputBox로 입력받은 값을 While 루프와 If로 검증. 숫자가 아닌 입력 시 재요청!
- 게임/앱 로직: For 루프로 인벤토리 아이템을 검사하고, If로 '레벨 >= 10' 조건 시 보너스 지급.
- 웹 스크래핑 보조: Loop로 페이지 클릭 반복, If로 '로딩 완료' 확인 후 다음 단계.
이 기능들은 오토핫키 포럼(autohotkey.com)에서 공유되는 스크립트에서 자주 보입니다. 직접 실험하며 커스터마이징하세요!
'ETC > Auto Hotkey' 카테고리의 다른 글
| AutoHotkey 함수: 스크립트 작성의 핵심을 파헤치다 (0) | 2025.10.26 |
|---|---|
| AutoHotkey, 이제 'If-Else If-Else'로 더 스마트하게! (0) | 2025.10.26 |
| AutoHotkey 스크립트의 핵심: 반복문과 조건문 마스터하기 (0) | 2025.10.26 |
| 생산성 극대화: AutoHotkey로 키보드와 마우스 제어 자동화하기 (0) | 2025.10.26 |
| AutoHotkey, 자동화의 마법사: ControlSend와 Click으로 워크플로우를 혁신하다! (0) | 2025.10.26 |