Google의 IDE 역사와 소프트웨어의 Emacs화

Google의 독자적인 IDE 개발 역사와 함께, 현대 소프트웨어 개발에서 Emacs와 같은 접근 방식이 확산되는 'Emacsification' 현상을 살펴본다.

diff --summary

  • Google은 내부 개발 생산성을 위해 Emacs 기반 IDE 'Egoogle'에서 시작하여 'CitC', 'Code Search', 'Cloud Shell' 등 자체 IDE를 개발해 왔다.
  • Google의 IDE는 코드베이스 규모와 개발 문화에 맞춰 진화했으며, 이는 개발자 경험 최적화의 중요성을 보여준다.
  • 현대 소프트웨어 개발 트렌드가 Emacs의 모듈성, 확장성, 커스터마이징 철학을 닮아가는 'Emacsification' 현상이 나타나고 있다.
  • 웹 기반 개발 환경, 통합 도구, 플러그인 생태계 등 많은 소프트웨어가 Emacs처럼 '만능 도구'를 지향하고 있다.

소프트웨어 개발의 핵심 도구인 IDE. 이 IDE를 둘러싼 흥미로운 두 가지 이야기가 있다. 하나는 Google이라는 거대 기업이 자신들만의 개발 환경을 어떻게 구축해왔는지에 대한 역사이고, 다른 하나는 현대 소프트웨어 개발이 점차 Emacs의 철학을 닮아가는 현상이다. 마치 개발 도구의 진화가 결국 Emacs로 수렴하는 듯한 느낌이랄까.

Google의 IDE 역사: 내부 개발 생산성을 위한 여정

Google은 외부에서 흔히 쓰는 IDE 대신 자체적인 개발 환경을 오랫동안 구축하고 발전시켜 왔다. “A History of IDEs at Google” 글에 따르면, 그 시작은 Emacs 기반의 ‘Egoogle’이었다고 한다. 광대한 코드베이스와 독특한 개발 문화 속에서, Google은 개발자들이 더 효율적으로 일할 수 있도록 끊임없이 IDE를 개선했다.

Egoogle 이후에는 IntelliJ 기반의 ‘CitC(Client in the Cloud)‘가 등장했다. 이는 클라우드 기반 개발 환경의 시초 격으로, 개발자들이 로컬 환경 설정에 시간을 낭비하지 않고 바로 코드 작업에 뛰어들 수 있게 했다. 최근에는 ‘Code Search’와 ‘Cloud Shell’ 같은 도구들이 이 역할을 이어받아, Google 내부 개발자들이 어떤 기기에서든, 어떤 프로젝트든 즉시 작업할 수 있는 환경을 제공한다. 이는 수십억 라인에 달하는 코드를 다루는 Google의 개발 생산성을 유지하는 핵심 동력이다. 마치 전 세계 개발자들이 당근 마켓에서 필요한 IDE를 사는 동안, Google은 자체 공장에서 맞춤형 IDE를 계속 찍어내는 듯하다.

소프트웨어의 Emacs화: 만능 도구의 귀환

흥미롭게도, Google의 초기 IDE가 Emacs에서 시작했듯이, 현대 소프트웨어 개발 트렌드도 Emacs의 철학을 닮아가고 있다는 분석이 있다. “The Emacsification of Software” 글은 이 현상을 ‘Emacsification’이라고 부른다. Emacs는 단순한 텍스트 편집기를 넘어, 메일 클라이언트, 파일 관리자, 웹 브라우저 등 모든 것을 할 수 있는 ‘운영체제’에 가까운 도구였다. 모듈성, 확장성, 깊이 있는 커스터마이징이 핵심이다.

이런 Emacs의 특징은 현대 소프트웨어 곳곳에서 발견된다. 웹 기반 개발 환경, 통합된 생산성 스위트, 풍부한 플러그인 생태계를 가진 코드 에디터(VS Code 등)들이 모두 Emacs처럼 ‘하나의 도구 안에서 모든 것을 해결하려는’ 경향을 보인다. 예를 들어, “The Most Emacs Bzr Saga” 같은 글에서도 버전 관리 시스템을 Emacs 안에서 완벽하게 통합하려는 시도를 볼 수 있다. 이는 개발자들이 여러 도구를 오가는 대신, 익숙한 환경 하나에서 모든 작업을 처리하려는 욕구가 반영된 결과다.

결국, Google의 IDE 역사는 거대 기업의 특수한 개발 환경에 맞춘 최적화의 여정이었다면, ‘Emacsification’은 보편적인 개발자들이 더욱 효율적이고 개인화된 작업 환경을 추구하는 흐름을 보여준다. 이 두 가지 이야기는 모두 개발 생산성과 경험을 향상시키려는 끊임없는 노력의 일환이라는 공통점을 가진다. 결국 개발자들은 더 편하고, 더 잘 맞는 도구를 찾아 헤매는 숙명을 타고난 것 아닐까.

$ sources

  1. [1] A History of IDEs at Google
  2. [2] The Emacsification of Software
  3. [3] The Most Emacs Bzr Saga