Automation Obsessed

Mitchell Hashimoto

자동화에 집착하다

원문은 Mitchell Hashimoto님이 에 게재했습니다. 이 블로그 구독하기

최근 누군가 예전에 했던 작업들을 공유해 달라고 부탁했다. 내 개인적인 발자취를 되돌아보고 지금까지 성공적으로 해온 일들을 되짚어보니, 나는 분명히 내가 해야 할 일을 하고 있다는 것이 명확해졌다. 자동화는 처음부터 나의 열정이었다.

나는 Neopets에서 치트를 쓰고 싶어서 프로그래밍을 시작했다. 매일 Neopets를 했는데, 매일 몇 시간씩 같은 일을 반복하면서 받는 것이라고는 푼돈 같은 Neopoints(Neopets에서 쓰이는 가상 화폐)뿐이라는 사실에 답답함을 느꼈다. 이 작업들을 대신해 줄 프로그램을 만들겠다는 목표로 Visual Basic을 배웠다. 결국 성공했고, 얼마 지나지 않아 아무런 손도 대지 않고 그 푼돈 같은 Neopoints를 벌어들이고 있었다.

더 자동화할 것들을 찾아다니면서 컴퓨터가 인간보다 훨씬 효율적으로 작업을 처리할 수 있으며, 그 덕분에 이전에는 존재하지 않던 기회들이 열린다는 것을 깨달았다. 곧 네오피아 시장의 차익 거래를 통해 시간당 수백만 Neopoints를 만들어낼 수 있게 됐다. 보통 시간당 몇천을 버는 것만으로도 대단하다고 여겨졌으니, 가상 세계에서는 정말 잘나가고 있었던 셈이다. 이쯤 되자 Neopets 자체에는 더 이상 별 관심이 없었다. 자동화라는 것이 내 안에 완전히 자리 잡았고, 그저 어디까지 밀어붙일 수 있는지 보고 싶을 뿐이었다.

Neopets에 질린 뒤에는 진짜 돈을 벌기 위해 자동화를 활용할 수 있을지 궁금해졌다. 광고 클릭을 위조하거나 실제 돈을 주는 온라인 게임을 대신 플레이해 주는 Windows 애플리케이션을 만들기 시작했다. 꽤 돈이 되었지만, 부모님이 법률 관련 통지서를 받으면서 이 시기는 빠르게 막을 내렸다. 결말은 좋지 않았지만, 예전에는 직접 손으로 해야 했던 일들을 컴퓨터가 대신하도록 만드는 그 과정 자체가 좋았다.

대학에 들어가서는 수강신청 시스템의 허술한 기술적 설계 때문에 원하는 수업 조합을 얻기가 엄청나게 어렵다는 것을 알게 됐다. 마감된 강의에 빈자리가 생기면 이를 감지해 문자 메시지로 알려주는 자동 수강신청 소프트웨어를 개발했다. 친구들이 마감된 강의를 들으려고 매일 몇 시간씩 시간표를 새로고침하고 있을 때, 나는 그저 문자 한 통을 기다리기만 하면 됐다. 그리고 나는 항상 원하는 수업을 들을 수 있었다. 브라우저를 새로고침하는 사람이 시간당 수천 번을 확인하는 내 소프트웨어를 이길 수는 없으니까. 또다시 자동화의 승리였다.

그리고 대학 3학년 때 Vagrant를 만들었다. 가상 머신의 생성과 제어를 실제로 자동화할 수 있다는 아이디어가 말로 표현할 수 없을 정도로 강렬하게 다가왔다. 그 아이디어가 떠오른 순간 나는 집착하게 됐다. 무엇을 할 수 있는지, 어떤 한계를 밀어붙일 수 있는지, 어떤 기회가 존재하는지 꼭 확인해야 했다. Vagrant의 성공은 이 영역에서의 자동화가 수많은 사람들의 업무 환경을 크게 개선했다는 증거다.

대학을 졸업한 뒤에는 Kiip에서 2년을 일했다. Kiip에서는 인프라 전체를 자동화했다. 한 번은 실수로 전체 프로덕션 클러스터에서 내 접속을 차단해 버린 적도 있다(앗, 그 실수는 다시는 반복하지 않았다). 전체 프로덕션 클러스터를 30분도 안 돼 처음부터 다시 구축했고, 체감할 수 있는 다운타임 없이 새 클러스터로 전환했다. 프로덕션 클러스터는 50대가 넘는 머신으로 이루어져 있었다. 자동화에 대한 나의 집착은 무언가를 두 번 해야 한다면 반드시 그것을 대신해 줄 프로그램을 작성하는 수준에 이르렀다.

최근에는 HashiCorp를 창업했다. 아직 내가 무엇을 하고 있는지 공개적으로 명확하지 않고, 하고 있는 모든 것을 이야기할 준비가 되지도 않았지만, 한 가지는 확실하다. 나는 바쁘게 자동화를 하고 있다는 것이다. 더 구체적으로 말하면, 모든 것을 자동화하는 소프트웨어를 개발해서 여러분에게 제공하려 한다.

이는 놀라운 일이 아니다. 자동화는 내가 누구인지를 정의하며, 항상 그래왔다.

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

댓글