뉴욕에서의 통근 시간을 활용해 지하철에서 프로그래밍하는 경험과 그 장단점, 그리고 팁을 공유한다.
2025년 11월 16일
지하철에서 새벽 1시에 제가 만든 커스텀 SBC용 m68k 어셈블리를 프로그래밍하는 중. 흐릿한 건 양해 부탁! 뉴욕으로 이사 온 뒤로, 제 시간은 전보다 훨씬 더 귀해졌습니다. 일, 밋업, 사교 모임 사이에서 여기 오기 전보다 사이드 프로젝트에 쓸 시간이 눈에 띄게 줄었습니다. 동시에 통근은 엄청난 시간 잡아먹는 요소입니다. 편도 30분씩이라 그렇게 나쁘지 않아 보이지만, 매일 한 시간을 그냥 버리고 있는 셈이거든요.
요즘 저는 이 시간을 프로그래밍에 씁니다.
지하철에서는 평소의 개발 환경이 많이 빠져 있습니다. 다중 모니터도 없고, 멋진 키보드도 없습니다. 인터넷 연결조차 안 됩니다. 그런데도 저는 별로 신경 쓰지 않습니다. 오히려 방해 요소가 없다는 점이 집중에 꽤 도움이 된다고 생각해요. 제가 할 수 있는 건 딱 하나, 지금 하고 있는 그 일뿐입니다.
정말로 인터넷이 필요하다면, 대부분의 지하철 역에는 무료 WiFi가 있고, 내리지 않고도 잠깐 연결해서 쓸 시간은 충분하다는 걸 알게 됐습니다. 패키지를 다운로드하거나 문서를 빠르게 확인하려고 이렇게 해 본 적이 있어요.
제 사이드 프로젝트는 저수준 임베디드 코드가 많은 편입니다. 보통은 하드웨어용 시뮬레이터를 굳이 만들지 않아서, 지하철에서는 컴파일이 되는지 확인하는 것 말고는 코드를 시험할 방법이 없습니다. 저는 일반적으로 빠른 편집/컴파일/실행 사이클의 큰 지지자지만, 코드가 실제로 무엇을 하게 될지 깊이 생각하도록 강제되는 것도 도움이 될 수 있습니다. 이걸 매일 종일 한다면 문제가 될 수도 있겠지만, 하루에 한 시간 정도라면 그렇게 나쁘다고 생각하지 않아요.
지하철이라는 비이상적인 환경 때문에 뇌를 온전히 쓰기가 어렵습니다. 복잡한 상태 머신을 머릿속에 유지하는 건 위험해요. 예를 들어 큰 소리 같은 게 나면 순식간에 내용이 날아가 버리기 쉽거든요. 실제로는 이게 큰 문제라고 느끼지 않습니다. 아무리 복잡한 프로젝트라도 할 일(잡무)이 많기 때문이죠. 제가 만드는 데몬은 systemd 서비스 생성과 Nix 패키징이 필요하고, 임베디드 장치는 하드웨어 초기화가 필요합니다.
드물게 정말 복잡한 일만 남아 있을 때는, 보통 노트북을 가방에 넣어 두고 종이에 다이어그램을 스케치합니다. 무엇을 만들고, 어떻게 만들지 계획을 그려보는 거죠. 그래서 저는 가방에 작은 노트 한 권을 항상 넣어 다닙니다.
친구들은 제 노트북이 아직 안 훔쳐간 게 신기하다고 농담하곤 합니다. 하지만 실제로는 그럴 가능성이 꽤 낮다고 생각해요. 제 노트북은 몇 년 전에 이베이에서 몇 백 달러에 중고로 산 저렴한 ThinkPad입니다. 누군가 훔치려면 역에서 해야 할 텐데, 그래야 바로 열차에서 내릴 수 있으니까요. 그런데 지하철 역은 원래 타고 내리는 사람이 많아서, 그 상황에서 그런 짓을 하는 건 꽤 위험하다고 봅니다.
그래서 너무 걱정하지 않기로 했고, 혹시 실제로 그런 일이 생기더라도 새 ThinkPad를 하나 사고 제 설정에서 Nix를 다시 빌드하면 끝입니다(고마워요 Nix).
제가 뭘 하고 있냐고 물어보는 낯선 사람들과 좋은 대화를 나눈 적이 있습니다. 대체로 약간 이상해 보이는 건 친구를 사귀는 데 좋은 전략이라고 생각해요. 게다가 공공장소에서 프로그래밍을 하면, 프로그래밍을 좋아하는 사람들이 끌리기도 하고, 대화를 시작할 수 있는 주제도 자연스럽게 제공하니까요!
지하철은 붐비고, 특히 러시아워에는 자리를 찾기가 꽤 어렵습니다. 지금으로서는 이게 제게 가장 큰 제약이에요. 뭔가 작업할 생각에 신이 났는데 좌석이 없어서 미뤄야 하면 정말 짜증납니다.
현재 저는 서서도 프로그래밍할 수 있도록 분할 키보드를 바지에 고정하는 방법을 작업 중입니다. 화면으로 쓸 수 있는, 안에 디스플레이가 들어간 안경 같은 제품들도 이미 있고요. 그걸 디스플레이로 쓸 생각입니다. 그러면 프로그래밍할 기회가 더 많아지겠지만, 대신 훨씬 더 이상해 보이겠죠 (^:
이 글의 어떤 부분이든 공감된다면, 지하철에서 프로그래밍해 보세요! 처음엔 좀 이상하게 느껴질 수도 있고, 몰입 상태에 들어가려면 약간의 연습이 필요할 수도 있지만, 그럴 가치가 있다고 생각합니다. 방해 요소에 강해지는 건 지하철 밖에서도 유용한 기술이니까요!