The Unreasonable Effectiveness of Excel Macros

Matthias Endler

엑셀 매크로의 터무니없는 효율성

나는 인턴십을 그다지 좋아하지 않았다. 재미있어 보이는 회사들은 모두 바이에른의 작은 마을에 있는 내 집에서 너무 멀리 떨어져 있었고, 지원할 용기가 나지 않았기 때문이었다.

단 한 번, 학교 프로그램의 일환으로 아일랜드에서 하는 인턴십에 지원한 적이 있다. 선생님이 일자리를 배정했는데, 친구는 Apple에 배정됐고 나는 중견 IT 유통업체에 가게 됐다. 편의상 PcGo라고 부르겠다.

웹사이트만 보면 꽤 근사해 보이는 회사였지만, 실제로는 코크의 비 오는 공업지대에 있는 외딴 회색 창고에 불과했다. 도착하자 동료 Evgeny를 소개받았는데, 그는 데스크톱 컴퓨터 조립을 담당하는 메인 직원이자 유일한 직원이었다. 내가 보기엔 사실상 가게를 혼자 꾸려가고 있었다. 영어를 서툴게 해서인지 그는 말없이 전동 드라이버와 나사 한 상자를 건네줬고, 나는 바로 일에 투입됐다. 첫 주 동안 우리는 함께 컴퓨터를 많이 조립했고, 꽤 재미있게 지냈다. 어느 날 버스를 놓치자 그가 퇴근길에 차로 집까지 태워줬다. 비가 오는 날이었고, 코크의 좁은 골목을 달리며 우리는 이야기하고 웃고 있었다. 그런데 갑자기 큰 충돌음이 들렸다. 백미러를 확인하려는데 백미러 자체가 사라져 있었다. 알고 보니 다른 차를 들이받아 백미러가 떨어져 나간 것이었다. Evgeny는 대수롭지 않게 여겼다. 짙은 동유럽 억양으로 “이미 백미러 세 개 날려먹었어”라고 말하더니 그대로 운전을 계속했다.

둘째 주에 사장님이 찾아왔다. 3주짜리 인턴십 기간 동안 계획했던 업무를 내가 이미 다 끝냈다는 것이었다. 나는 컴퓨터 조립과 설치에 익숙했으니 당연한 일이었다.

나를 계속 붙잡아 두기 위해 그들은 새로운 일을 만들었다. 뒤편에 있는 오래된 Windows 98 컴퓨터에서 사장님은 브라우저로 silverpages.ie에 접속해 “computer”를 검색했고, 잠시 후 우리는 “컴퓨터와 뭔가 관련 있는” 아일랜드 회사들의 주소가 끝없이 나열된 목록을 보게 됐다. 각 항목은 예상할 수 있는 필드들로 구성돼 있었다. 회사명, 주소, 전화번호, 웹사이트(있는 경우), 그리고 키워드 목록이었다.

사장님은 경쟁 업체들을 정리한 목록이 필요하다고 말했다. 그는 항목에서 필드 하나를 조심스럽게 선택해 복사한 뒤 Excel 시트에 붙여 넣었다. 남은 필드들도 같은 방식으로 옮겼다. “이렇게 하면 돼!” 그는 어색하게 웃으며 말했다. 앞으로 2주 동안 내가 얼마나 지루할지 우리는 둘 다 알고 있었다.

웹 데이터베이스 전체를 수작업으로 긁어오게 해서 나를 바쁘게 만들려는 속셈이었다.

모욕으로 받아들일 수도 있었지만, 나는 오히려 도전으로 받아들였다.

silverpages.ie의 페이지 번호가 GET 파라미터로 조절된다는 것을 알아챘다.

“스크래핑을 자동으로 하는 프로그램을 짜도 될까요?” 사장님은 눈에 띄게 당황했다. “어… 하고 싶은 대로 해. 다만 추가 소프트웨어는 설치하면 안 돼!” 그렇게 말하고는 가버렸다.

설치된 프로그램을 보니 선택지는 많지 않았다. Excel 아니면 지뢰찾기였다. Excel의 Visual Basic 매크로가 꽤 강력하다는 건 알고 있었지만, 그걸로 웹사이트 전체를 긁어올 수 있을지는 확신이 서지 않았다.

잠시 후 웹사이트를 Excel 시트로 바로 불러오는 기능을 발견했다(정말 멋진 기능이었다). 제대로 작동했기에, 이제 할 일은 매크로를 녹화해 페이지마다 임시 시트를 만들고, 중요한 필드를 모두 “마스터 시트”에 복사한 뒤 임시 시트를 삭제하도록 하는 것뿐이었다. 매크로를 녹화하고 코드를 들여다봤다. 남은 하루는 URL을 반복문으로 바꾸는 방법과 매크로를 정리하는 데 썼다. “매크로 실행” 버튼을 누르고는 그냥 앉아 기다렸다. 컴퓨터는 전속력으로 돌아가고 있었다. 가장 두려웠던 건 프로그램이 멈추거나 메모리가 부족해지는 것이었다. 그 컴퓨터로 지뢰찾기를 하지는 않고, 대부분 당구를 치거나 Evgeny와 이야기를 나눴다.

다음 날 아침 사무실에 도착했을 때 프로그램은 작업을 마친 상태였다. 놀랍게도 SilverPages 전체를 긁어왔고, 목록에는 수천 개의 항목이 들어 있었다. 문서를 E-Mail로 사장님께 보내고는 다시 지뢰찾기를 시작했다.

한 시간쯤 지나자 양복을 입은 세 남자가 내 뒤에 서 있었다. 목록을 다시 보여줘야 했다. 내가 혼자 해냈다는 걸 믿지 못했기에 데이터를 긁어온 도구를 보여줬다. 그들에게 나는 일종의 초능력을 가진 사람처럼 보였다.

그들은 다른 업무를 주지 않고 떠났고, 나는 남은 2주 동안 원하는 걸 하며 자유롭게 지낼 수 있었다. 나는 그들을 위해 재고 관리 도구를 만들었다. Excel로 관리할 수 있는 도구였다. 그들이 수동으로 관리하던 스프레드시트를 위한 멋진 Excel 폼에 불과했다. 여름방학 2주를 들여 그 도구를 완성했다. 돈을 주겠다고 해서였는데, 물론 주지 않았다 :).

배운 점

  • 엑셀 매크로의 힘을 절대 과소평가하지 말 것.
  • 지루한 일이 주어지면 제약을 추가해 더 도전적으로 만들어라.

원문은 Matthias Endler님이 에 게재했습니다.

이 글은 muse-spark-1.2-contributor 모델을 사용해 번역했습니다.