A Timelapse of Timelapse

Matthias Endler

Timelapse의 타임랩스

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

Timelapse는 macOS용 작고 오픈소스인 화면 녹화 도구다. 매 초마다 스크린샷을 찍어 마지막에 하나의 영상으로 만들어 준다.

오늘 있을 법하지 않은 1.0 릴리스를 기념해, 이 프로젝트의 여정을 담은 “타임랩스”를 소개한다. 여기까지 오는 데 꼬박 10년이 걸렸다.

2011 - 모든 것의 시작

솔직히 말하자면, 처음에 왜 이 도구를 만들었는지 기억이 잘 나지 않는다. 아마 개인적으로 화면 녹화 도구가 필요했던 것 같다…

2011년 5월 프로젝트를 시작했을 때 나는 컴퓨터공학 석사 과정 중이었다. 대학 과제 때문에 필요했을 수도 있지만, 아마 과제를 미루기 위한 핑계를 찾고 있었던 것 같기도 하다.

그 시절 나는 이런 도구를 참 많이 만들었다. 대부분 개인적인 필요를 해결하거나, 새로운 프로그래밍 언어를 배워보거나, 그냥 재미로 만든 것들이었다.

그중에는 미국 패스트푸드 체인 서브웨이(Subway)용 랜덤 샌드위치 생성기, WriteRoom에서 영감을 받은 키보드 기반 드로잉 앱인 DrawRoom, 그리고 클라이언트에 판매까지 했던 어쩔 수 없이 만들게 되는 CMS 같은 것들이 있었다. 놀랍게도 그중 어느 것도 크게 성공하지는 못했다.

DrawRoom은 비슷한 시기에 만든 도구인데, 그야말로 예술 작품이다. 지금까지 커밋은 다섯 개, GitHub 스타는 단 하나다(내가 누른 거다, 뭐라 하지 마시길...).
DrawRoom은 비슷한 시기에 만든 도구인데, 그야말로 예술 작품이다. 지금까지 커밋은 다섯 개, GitHub 스타는 단 하나다(내가 누른 거다, 뭐라 하지 마시길...).

한 가지 확실한 건, 당시 존재하던 화면 녹화 도구들이 모두 마음에 들지 않았다는 것이다. 대충 세 부류로 나눌 수 있었다:

  • 돈을 내야 하거나 외부로 데이터를 전송할 수 있는 독점 소프트웨어.
  • macOS에서는 동작하지 않는 도구.
  • 포럼이나 GitHub gist에 떠돌던 작고 불안정한 일회성 스크립트들. 광고한 대로 동작하는 경우는 거의 없었다.

남은 도구 중에는 타임랩스 기능을 제공하는 것이 하나도 없었기에, 나는 직접 만들기로 했다.

지금 말하니 뭔가 대단하게 들리지만, 사실 작업은 하루 만에 끝났다. 2011년 5월 11일, 다섯 번의 영웅적인 커밋을 마친 뒤 프로젝트는 7년 동안 그대로 방치되었다…

2018

한참의 시간이 흐른 뒤에야 흥미로운 일이 생겼다.

2018년 1월, 느닷없이 첫 번째 사용자가 버그 리포트를 남겼다. 제목은 hung when creating the avi였다 😱. 알고 보니 캐나다의 게임 개발자 juul1a가 인디 게임 제작 과정을 기록하려고 이 도구를 쓰고 있었던 것이다 — 정말 멋진 일 아닌가?

그녀를 돕기 위해 나는 전반적인 정리에 나섰다. 프로그램 사용법을 문서로 정리하고, requirements.txt를 추가했으며, 도구를 mencoder에서 ffmpeg로 포팅했다.

그렇게 timelapse는 전성기를 맞을 준비를 마쳤다. 🎬 그녀의 영상에 담긴 타임랩스 장면을 소개한다:

그 시점에도 이 도구는 여전히 불안정했고 커맨드라인에서만 쓸 수 있었지만, 제대로 된 앱으로 만들면 가능성이 있겠다는 생각이 들기 시작했다. 다만 시간을 내지 못했을 뿐이었다.

2018년 10월, 나는 Hacktoberfest 기간에 도움을 요청하기로 했다. 몇 개의 이슈를 만들고 hacktoberfest 라벨을 붙여 기여자를 찾아보았다.

그리고 기다렸다.

먼저 Shreya V Prabhu가 새 녹화가 이전 녹화를 덮어쓰는 문제를 영상 이름에 타임스탬프를 추가하는 방식으로 고쳤다. 이어서 Abner Campanha와 Shane Creedon(더 이상 GitHub에 있지 않다)이 기본적인 테스트 구조를 만들었다. Gbenro Selere는 Travis CI용 CI 파이프라인을 추가했다. 정말 효과가 있었고, 그 덕분에 프로젝트는 훨씬 더 안정적으로 변했다!

2019

1년이 지나고, Kyle Jones가 기여 가이드라인을 추가했고, 나는 CI 파이프라인을 새로 출시된 GitHub Actions로 옮겼다.

Chaitanya는 녹화가 끝났을 때 프로그램이 멈추는 버그를 영상 생성을 스레드에서 별도 프로세스로 옮겨 고쳤다. 그는 계속해서 코드베이스를 더 견고하게 만들었고, 풀 리퀘스트를 리뷰하고 릴리스를 관리하는 핵심 기여자가 되었다.

orcutt989 덕분에 앱은 이제 Python 3.6의 타입 힌트를 활용하게 되었다.

gkpln3는 다중 모니터 구성을 지원하도록 했다. 이제 캡처되는 화면은 항상 마우스가 있는 모니터가 된다.

2020

시간을 빨리 감아 오늘에 이르러, 거의 10년 만에 마침내 멋진 py2app 번들러를 이용해 진정한 macOS 앱을 만들었다. 이제 개발자가 아닌 사람들도 이 도구를 쓸 수 있게 되었다.

백 투 더 퓨처

짧은 여정의 끝에 다다랐다.

1.0까지 오랜 시간이 걸렸다. 이 프로젝트는 오픈소스 협업의 놀라움을 보여주는 증거이며, 전 세계의 기여자들과 함께 작업할 수 있어 자랑스럽다. 인생을 바꾸는 프로젝트가 아니더라도, 무언가를 만드는 즐거움을 함께 나누는 사람들을 모을 수 있다. 이게 이야기의 끝이라면 그걸로도 괜찮다. 하지만 아닐 것 같다. 앞으로의 10년을 위하여!

🎬 GitHub에서 timelapse 다운로드.

보너스

맨 앞에 있는 영상은 내가 이 글을 마무리하는 과정을 타임랩스로 담은 것이다.
참 메타하다.

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

댓글