작년 DHH가 Linux as the new developer default at 37signals라는 글을 통해 37signals가 20년간 유지해온 Mac 중심 문화에서 벗어나 Linux를 개발자 기본 환경으로 전환한다고 발표했어요. 그리고 최근에는 실제로 새로 채용한 4명의 개발자 모두에게 Framework 랩톱과 Linux를 기본 장비로 지급했다고 트윗하면서 “THE YEAR OF LINUX!!!”라고 외쳤더라고요.

Rails 개발자로서, 그리고 DHH의 생각을 늘 관심있게 지켜봐온 사람으로서 이런 변화가 꽤 인상깊었어요. 특히 단순한 선언에 그치지 않고 실제로 실행에 옮기고 있다는 점이 흥미로웠죠. 하지만 동시에 솔직히 말하면 이해가 안 되는 부분도 있고, 막연한 두려움도 느껴졌어요.

왜 리눅스일까?

DHH가 제시한 이유들을 보면 나름 설득력이 있어요. 특히 두 가지 포인트가 인상적이었어요.

첫 번째는 “오픈소스 생태계에서 일하면서 데스크톱 OS만 상용 제품을 쓰는 것의 모순”이라는 지적이에요. 처음에는 좀 과격한 표현이라고 생각했는데, 생각해보니 일리가 있더라고요. 우리가 Rails, Ruby, VSCode, Git 같은 오픈소스 도구들로 매일 개발하면서, 정작 그 기반이 되는 OS는 애플이라는 거대 기업의 상용 제품에 의존하고 있잖아요.

두 번째는 고객과의 단절감이에요. “고객의 절반이 Windows를 쓰는데 Mac만 쓰면서 단절감을 느꼈다”는 부분은 정말 핵심을 찌르는 말이라고 생각해요. 이건 제품을 만드는 사람이라면 정말 느끼는 바가 클 것 같아요. iOS 앱을 개발하면서 안드로이드폰을 메인으로 쓰거나, 안드로이드 앱을 개발하는데 아이폰을 메인으로 쓰는 개발자들을 보면서 늘 의아했던 점과 같은 맥락이에요. 더 나아가서는 내가 만들고 있는 서비스를 실제 생활에서 잘 쓰지 않는 것도 비슷한 문제라고 생각해요.

하지만 현실적인 벽들

그렇다고 해서 당장 Linux로 갈아탈 수 있을까요? 솔직히 말하면 여러 현실적인 장벽들이 있어요.

우선 비용 문제가 있어요. 지금 개인 장비인 Mac mini M4와 회사 장비인 MacBook Pro 14 M4를 쓰고 있는데, 이 정도 성능의 Linux 장비를 새로 장만하는 것은 부담스러워요. 더 저렴한 중고 장비를 고려해보고는 있지만, 선뜻 도전하기가 어렵더라고요.

앱 생태계에 대한 막연한 두려움도 있어요. 지금 Cursor를 주 에디터로 쓰고 있는데, Linux에서 제대로 지원되는지 모르겠어요. 차선책으로 VSCode에 Cline을 연결해서 써야 할 수도 있고요. Sequel Ace나 DB Browser for SQLite 같은 도구들도 대체재를 찾아야 할 거고요.

가상머신으로 Linux를 경험해봤지만, 메인 머신이 아니면 그 경험을 온전히 느끼기 어렵다는 것도 알고 있어요. 듀얼부팅은 Mac 환경에서 쉽지 않고, 가상환경은 성능 차이가 너무 나죠.

편안함의 함정

그런데 이런 핑계들을 늘어놓다 보니, 문득 이런 생각이 들어요. 혹시 내가 너무 편안함에 안주하고 있는 건 아닐까?

2010년부터 15년 넘게 Mac을 써왔어요. 윈도우에 비해 시간이 지나도 느려지지 않고 안정적이라는 점이 마음에 들어서 계속 써왔죠. 하지만 그만큼 Mac 환경에 익숙해져서, 다른 환경을 시도해볼 용기를 잃은 건 아닐까요?

DHH의 글에서 인상깊었던 부분 중 하나는 “지난 몇 달간 Linux를 파고들면서 개발 플랫폼으로서 얼마나 좋아졌는지 발견하는 것이 즐거웠다”는 표현이었어요. 새로운 도전을 통해 얻는 즐거움, 그리고 그 과정에서 발견하게 되는 새로운 가능성들 말이에요.

개발자로서 늘 새로운 기술을 배우고 도전하라고 하면서, 정작 가장 기본이 되는 개발 환경에 대해서는 안전지대에 머물러 있었던 것 같아요.

메이커의 관점에서

DHH의 또 다른 포인트도 생각해볼 만해요. Framework 같은 회사를 지지한다는 부분 말이에요. “내가 보고 싶은 미래에 투표하는 기분”이라고 표현했는데, 이것도 단순히 도구 선택을 넘어선 가치관의 문제인 것 같아요.

개발자이자 메이커로서, 우리가 사용하는 도구들이 어떤 철학과 가치를 담고 있는지 생각해보는 것도 중요하지 않을까요? 오픈소스 생태계에서 혜택을 받으면서도, 그 생태계를 지지하고 기여하는 방식으로 도구를 선택하는 것 말이에요.

특히 Rails 개발자라면 더욱 그렇지 않을까 싶어요. Rails 자체가 오픈소스이고, Ruby 커뮤니티의 철학도 개방성과 공유를 중시하잖아요.

작은 도전부터

당장 메인 환경을 Linux로 바꾸는 것은 쉽지 않겠지만, 작은 도전부터 시작해볼 수는 있을 것 같아요.

예를 들어 Docker나 dev container를 더 적극적으로 활용해보는 것부터 시작할 수 있겠죠. 지금은 배포할 때만 Docker를 쓰고 있지만, 개발 환경도 컨테이너로 구성해보면 Linux 환경에 조금 더 가까워질 수 있을 거예요.

아니면 중고 장비라도 하나 장만해서 서브 머신으로 Linux를 써보는 것도 방법이겠고요. Flutter 개발의 경우 iOS 빌드는 여전히 Mac이 필요하지만, 주 개발은 Linux에서 하고 빌드만 Mac에서 돌리는 방식도 가능할 테니까요.

마치며

DHH의 글을 읽으면서 가장 큰 깨달음은, 도구 선택도 결국 가치관의 문제라는 점이었어요. 단순히 편리함이나 익숙함만으로 도구를 선택할 것이 아니라, 내가 추구하는 가치와 일치하는지도 생각해봐야 한다는 거죠.

물론 DHH의 결정이 모든 개발자에게 맞는 답은 아닐 거예요. 하지만 적어도 한 번쯤은 생각해볼 만한 문제라고 생각해요. 우리가 너무 편안함에 안주해서 새로운 가능성을 놓치고 있는 건 아닌지 말이에요.

언젠가 다음 글에서는 실제 Linux 도전 경험담을 쓸 수 있기를 바라면서, 일단은 이 글로 제 생각을 정리해봤어요. 편안함에 안주하지 말고 새로운 도전을 해보자는 스스로와의 약속이기도 하고요.

함께 보면 좋은 글

37signals의 새로운 개발자 기본 환경인 Linux (Linux as the new developer default at 37signals) - DHH 20년간의 Apple 생활 이후 Linux 및 Android와 함께 생활하기 (Living with Linux and Android after two decades of Apple) - DHH