기록을 넘어: 스크립트의 조건 분기, 루프, 변수
조작을 기록하고 재생하는 매크로는 반복 작업을 자동화하는 가장 간편한 방법입니다. 하지만 기록된 매크로에는 근본적인 특성이 있습니다. 바로 ‘매번 완전히 똑같은 작업을 수행한다’는 것입니다. 실제 업무에는 ‘재고가 0이면 발주한다’, ‘합계가 예산을 초과하면 경고한다’처럼 상황에 따라 동작을 바꾸는 판단이 많이 포함됩니다. 기록만으로는 이러한 ‘판단’을 처리할 수 없습니다.
이때 등장하는 것이 ‘스크립트’입니다. 스크립트를 사용하면 조건 분기(만약 ~라면), 루프(반복), 변수(값을 기억해 두는 상자) 같은 프로그램의 기본 요소를 자동화에 통합할 수 있습니다. ‘프로그래밍’이라는 말에 부담을 느낄 수도 있지만, 이것들은 일상적인 판단을 그대로 형태로 옮긴 것이므로 사고방식 자체는 전혀 어렵지 않습니다. 이 글에서는 기록 다음 단계로서 스크립트의 세 가지 핵심 요소를 알기 쉽게 설명합니다.
조건 분기(IF/ELSE): 판단시키기
조건 분기는 ‘특정 조건이 성립할 때만 특정 처리를 수행하는’ 구조입니다. IF 블록은 조건이 참(올바름)일 때만 내부 처리를 실행하며, ELSE는 그 밖의 경우를 담당합니다. 예를 들어 ‘화면에 “오류”라는 문구가 있으면 담당자에게 알리고, 없으면 그대로 다음 단계로 진행한다’와 같은 동작을 표현할 수 있습니다.
조건으로는 화면에 표시된 값, 특정 픽셀의 색상, 변수에 들어 있는 숫자 등을 사용할 수 있습니다. 사람은 ‘화면을 보고, 상황을 판단하고, 다음 행동을 결정하는’ 일련의 과정을 무의식적으로 수행합니다. 조건 분기는 바로 그 판단을 자동화에 반영하기 위한 것입니다. 한 번 작성해 두면 그다음부터는 컴퓨터가 매번 여러분을 대신해 올바르게 판단합니다.
루프(LOOP): 반복시키기
루프는 같은 처리를 여러 번 반복하는 구조입니다. 매크로의 ‘재생 횟수’를 지정하는 것과 비슷하지만 스크립트의 루프는 훨씬 유연합니다. ‘10번 반복’처럼 횟수를 지정하는 것은 물론, ‘목록에 행이 없어질 때까지 반복’하거나 ‘특정 조건이 충족될 때까지 반복’하는 등 상황에 맞게 반복할 수 있습니다.
루프의 진가는 대량의 데이터를 처리할 때 드러납니다. ‘데이터 한 건을 처리하는’ 작업을 루프로 감싸기만 하면 ‘목록의 모든 데이터를 처리하는’ 작업으로 바뀝니다. 100건이든 1000건이든 작성할 처리는 한 건 분량뿐이며, 나머지는 루프가 자동으로 모든 항목을 순회합니다. 수작업으로 몇 시간이 걸리는 처리도 루프를 사용하면 한 번만 작성하고 기다리면 됩니다. 바로 이 지점에서 자동화는 ‘몇 분’이 아니라 ‘몇 시간’을 절약하게 됩니다.
변수: 값 기억하기
변수는 처리 도중 값을 일시적으로 기억해 두기 위한 ‘상자’입니다. 카운터(몇 번째인지), 파일 이름, 화면에서 읽어 온 숫자, 계산의 중간 결과 등을 변수에 넣어 두면 이후 단계에서 재사용할 수 있습니다. 예를 들어 “셀 값을 변수로 읽어 들인 뒤 그 값이 1만을 넘으면 다른 시트에 옮겨 적는다”와 같은 처리는 변수와 조건 분기를 조합해 구현합니다.
변수, 조건 분기, 루프의 세 가지를 갖추면 자동화의 표현력이 단숨에 넓어집니다. “데이터를 읽고(변수), 내용에 따라 처리를 바꾸고(조건 분기), 모든 항목에 적용한다(루프)”—이 조합만으로도 실무의 상당 부분을 처리할 수 있습니다. 단순한 기록과 재생으로는 구현하지 못했던 ‘지능형 자동화’의 출발점이 바로 여기에 있습니다.
오류 처리로 ‘멈추지 않는 자동화’ 만들기
조건 분기, 루프, 변수에 익숙해졌다면 다음으로 배워야 할 것은 ‘오류 처리’입니다. 자동화를 오래 운영하다 보면 예상하지 못한 일은 반드시 발생합니다. 네트워크가 순간적으로 끊기거나, 열려야 할 파일을 찾지 못하거나, 화면 표시가 평소와 다를 수 있습니다. 이런 상황에서 아무런 대비가 없는 스크립트는 그 자리에서 완전히 멈춥니다. 야간에 무인으로 실행 중이라면 다음 날 아침까지 작업이 중단된 채로 남을 수도 있습니다.
이때 유용한 것이 TRY/CATCH 오류 처리 구조입니다. “TRY 블록 안에서 실패가 발생하더라도 모든 처리를 멈추지 않고 CATCH 블록에 작성한 처리(오류 기록, 알림 전송, 해당 항목만 건너뛰고 다음 항목으로 진행 등)로 전환”하도록 구성할 수 있습니다. 이를 통해 한 항목이 실패해도 나머지는 끝까지 처리하는 견고한 자동화를 만들 수 있습니다. 사람이 당연하듯 수행하는 “실패하더라도 일단 기록하고 계속 진행한다”는 대응 방식을 스크립트에 가르치는 셈입니다.
자주 사용하는 SCR 명령 알아 두기
makuroku의 SCR 스크립트에는 실무에서 자주 사용하는 명령이 갖춰져 있습니다. 모든 명령을 한 번에 외울 필요는 없지만 어떤 작업을 할 수 있는지 알아 두면 ‘이것도 자동화할 수 있겠다’는 아이디어가 넓어집니다. 대표적인 명령을 살펴보겠습니다.
- • FIND_IMAGE / WAIT_IMAGE: 이미지로 화면 요소 찾기 및 기다리기
- • IF / ELSE / LOOP: 조건 분기와 반복
- • SET / ADD / SUB: 변수 대입과 계산
- • READ_FILE / WRITE_FILE: 파일 읽기 및 쓰기
- • HTTP_GET / POST: 외부 서비스와 통신
- • NOTIFY / PROMPT: 알림 표시, 사용자 입력 요청
이 기능들을 조합하면 “파일에서 데이터를 읽고, 조건에 따라 처리 방식을 바꾸고, 결과를 외부 서비스로 전송한 뒤 완료를 알리는” 것처럼 단순한 기록만으로는 도저히 구현할 수 없는 고급 자동화가 가능합니다. 게다가 각 명령의 역할은 단순하므로 익히기도 어렵지 않습니다. 필요한 명령부터 하나씩 배워 도구 상자를 조금씩 넓혀 가면 됩니다.
스크립트로 구현할 수 있는 자동화 예시
조건 분기, 반복문, 변수, 오류 처리를 조합하면 단순한 기록만으로는 도저히 구현할 수 없는 자동화가 가능합니다. 몇 가지 구체적인 예를 살펴보겠습니다. 예를 들어 “폴더 안의 모든 파일을 하나씩 열어 내용을 확인하고, 조건에 맞는 파일만 다른 폴더로 이동하는” 작업이 있습니다. 반복문으로 모든 파일을 순회하고 조건 분기로 분류하는 방식을 조합하면 구현할 수 있습니다. 수작업으로는 한 시간이 걸리는 분류도 스크립트를 한 번 작성해 두면 몇 분 만에 끝납니다.
또 다른 예로, “웹사이트에서 정기적으로 데이터를 가져와 이전 값과 비교하고, 변화가 있으면 알리는” 모니터링 작업도 스크립트가 잘하는 분야입니다. HTTP 통신으로 데이터를 가져와 변수에 저장된 이전 값과 비교한 다음, 조건 분기로 “변화가 있으면 알림”을 실행합니다. 이를 예약 실행과 결합하면 아무것도 하지 않아도 변화를 놓치지 않는 모니터링 체계를 만들 수 있습니다.
이러한 자동화는 언뜻 어려워 보이지만 각각의 요소, 즉 반복문, 조건 분기, 변수, 통신, 알림은 모두 단순합니다. 어려운 것은 “모든 것을 한꺼번에 이해하는 것”이지 “하나씩 조합하는 것”이 아닙니다. 먼저 조건 분기만, 다음에는 반복문만 배우는 식으로 필요한 요소부터 조금씩 범위를 넓혀 가면, 어느새 상당히 고급스러운 자동화까지 직접 만들 수 있게 됩니다.
중요한 것은 처음부터 완벽한 스크립트를 목표로 하지 않는 것입니다. 먼저 실행되는 최소 버전을 만들고 실제로 돌려 본 뒤, 잘되지 않는 부분을 조금씩 고쳐 나가세요. makuroku 에는 실행 중인 줄을 실시간으로 강조 표시하는 디버깅 기능이 있어 “지금 어디에서 무엇이 일어나고 있는지”를 눈으로 확인하며 개선할 수 있습니다. 시도하고, 고치고, 다시 시도하는 이 반복이야말로 스크립트를 능숙하게 활용하는 가장 빠른 길입니다.
스크립트를 읽기 쉽게 유지하는 요령
스크립트는 한 번 작성하고 끝나는 것이 아니라 나중에 다시 살펴보고 수정하는 경우가 많습니다. 따라서 작성할 때부터 “가독성”을 의식하면 미래의 자신에게 큰 도움이 됩니다. 몇 가지 요령이 있습니다. 먼저 변수에는 의미를 알 수 있는 이름을 붙이세요. “x”나 “a” 대신 “총금액”, “대상파일명”처럼 내용을 알 수 있는 이름을 사용하면 나중에 다시 봐도 처리 의도를 바로 이해할 수 있습니다.
다음으로, 처리 단위마다 주석을 달아 두세요. “여기서부터 데이터 가져오기”, “여기서 금액 확인” 같은 짧은 메모만 있어도 스크립트 전체의 흐름을 따라가기 쉬워집니다. 또한 복잡한 처리는 여러 개의 작은 스크립트로 나누는 것도 효과적입니다. 하나의 긴 스크립트보다 역할별로 나뉜 짧은 스크립트 모음이 수정하고 재사용하기 쉽습니다. “미래의 내가 읽고 이해할 수 있는가”를 기준으로 작성하는 것이 오래 쓸 수 있는 스크립트를 만드는 비결입니다.
스크립트 디버깅 방법
스크립트를 작성하다 보면 생각대로 작동하지 않는 경우가 반드시 생깁니다. 그럴 때 당황하지 않고 원인을 찾아내는 과정이 “디버깅”입니다. 디버깅의 기본은 “어디까지 올바르게 작동하고 어디서부터 예상과 달라지는지”를 구분하는 것입니다. makuroku 에는 실행 중인 줄을 실시간으로 강조 표시하는 기능과 중간값을 화면에 표시하는 PRINT 출력이 있어 “지금 어디에서 무엇이 일어나고 있는지”를 눈으로 확인하며 원인을 찾을 수 있습니다.
효과적으로 디버깅하려면 먼저 처리 과정을 작은 단위로 나누고, 한 단위씩 동작을 확인해야 합니다. 모든 것을 한 번에 완성하려 하면 어디에서 문제가 발생했는지 파악하기 어려워집니다. 조금씩 작성하고 자주 실행하면서 올바르게 동작하는지 확인한 뒤 다음 단계로 넘어가세요. 이런 꾸준한 반복이 결과적으로 가장 빠르고 확실한 스크립트 작성으로 이어집니다. 오류가 발생하더라도 이를 ‘어디를 고쳐야 하는지’ 알려 주는 단서로 받아들이면 디버깅은 두렵지 않습니다.
스크립트 학습의 권장 순서
스크립트의 각 요소를 어떤 순서로 익히면 좋은지 살펴보겠습니다. 가장 먼저 배워야 할 것은 역시 조건 분기(IF/ELSE)입니다. ‘만약 ~라면’이라는 판단은 모든 자동화의 기초가 됩니다. 다음은 루프(LOOP)입니다. 반복 처리는 대량의 데이터를 다룰 때 엄청난 효과를 발휘합니다. 이 두 가지만 사용할 수 있어도 단순한 기록만으로는 처리할 수 없었던 많은 작업을 자동화할 수 있습니다.
그다음은 변수입니다. 값을 기억해 두는 기능을 조건 분기나 루프와 조합하면 더욱 유연하게 처리할 수 있습니다. 여기까지 익혔다면 오류 처리(TRY/CATCH)를 배워 보세요. 장시간 무인으로 운영하려면 도중에 실패해도 멈추지 않는 구조가 필수입니다. 마지막으로 파일 조작, HTTP 통신, OCR처럼 목적에 맞는 전문 명령은 필요해진 것부터 익히면 충분합니다.
중요한 것은 모든 것을 한 번에 외우려 하지 않는 것입니다. 실제 작업 중에 ‘이런 것도 할 수 있으면 편리하겠다’고 생각될 때 해당 기능을 찾아보고 사용해 보세요. 이처럼 ‘필요에 의해 배우는’ 방식이 결국 가장 잘 익힐 수 있는 방법입니다. 교재를 처음부터 순서대로 읽는 것보다 당장 눈앞의 작업을 자동화하면서 그때그때 필요한 요소를 습득하는 편이 실전 능력을 키우는 데 더 효과적입니다.
스크립트는 언뜻 어려워 보여도 각각의 요소는 단순하며, 순서대로 배우면 반드시 익힐 수 있습니다. 한번 익혀 두면 자동화할 수 있는 작업의 범위가 크게 넓어집니다. 우선 기록부터 시작한 뒤 조건 분기 하나를 추가하는 것부터 스크립트의 세계로 첫걸음을 내디뎌 보세요.
기록에서 스크립트로 자연스럽게 전환하기
‘스크립트는 어려울 것 같다’고 느끼는 분일수록 알아 두어야 할 점은 빈 화면에서 처음부터 작성할 필요가 없다는 것입니다. makuroku에서는 먼저 GUI로 조작을 기록한 다음, 해당 매크로를 편집 가능한 SCR 스크립트로 변환할 수 있습니다. 즉, 처음부터 동작하는 뼈대를 얻을 수 있습니다. 그 뒤에는 반복하려는 부분을 LOOP로 감싸거나 판단이 필요한 부분에 IF를 추가하는 식으로 필요한 부분만 수정하면 됩니다.
또한 입력하는 동안 구문 검사가 작동하므로 작성 오류를 그 자리에서 알려 줍니다. 실행 중인 줄을 실시간으로 강조 표시하는 디버깅 기능도 있어 ‘지금 어디를 처리하고 있는지’를 눈으로 바로 확인할 수 있습니다. 이러한 지원 덕분에 기록에서 스크립트로 자연스럽게 전환할 수 있습니다. 먼저 기록으로 뼈대를 만들고 거기에 조건과 루프를 조금씩 추가하는 방식이라면 프로그래밍 경험이 없어도 실용적인 자동화를 직접 만들 수 있습니다. makuroku에서는 이 모든 기능을 무료로 사용해 볼 수 있습니다.
무료로 사용해 보기
makuroku로 자동화하세요
makuroku는 마우스와 키보드 동작을 기록해 자동으로 재생합니다. 더 필요하면 SCR 스크립트와 AI(MCP) 연동도. 모든 기능을 Windows에서 무료로 사용하세요.