Ghostty 1.0 출시가 다가옵니다
약 2년에 걸친 개발과 비공개 베타 테스트1 끝에, Ghostty 1.0을 2024년 12월에 MIT 라이선스의 오픈소스 프로젝트로 공개 출시하게 되어 기쁘게 생각합니다.
이 글에서는 Ghostty 프로젝트의 더 큰 목표를 다시 짚어보고, 1.0 릴리스의 구체적인 목표를 정리하려고 합니다. Ghostty에 대해 야심 찬 계획을 가지고 있지만, 출시 첫날에 무엇을 기대할 수 있고 무엇이 이후에 이어질지에 대해서도 분명한 기대치를 설정하고 싶습니다.
간단히 말해, Ghostty 1.0은 macOS와 Linux에서 기존 터미널 에뮬레이터를 가장 완벽하게 대체할 수 있는 선택지가 되는 것을 목표로 합니다. Ghostty는 빠르면서도 기능이 풍부하고, 플랫폼 네이티브 GUI를 갖추는 동시에 가장 표준을 잘 준수하는 터미널 에뮬레이터가 될 것입니다.
최고의 기존 터미널 에뮬레이터
2023년 9월에 진행한 Zig Showtime 발표의 다음 슬라이드가 제가 새로운 터미널 에뮬레이터를 만들기 시작한 이유를 가장 잘 요약합니다.

비교한 터미널 에뮬레이터의 수는 주로 슬라이드 디자인상의 이유로 제한되었지만, 핵심은 그대로입니다. 기존 터미널 에뮬레이터들은 속도, 기능, 플랫폼 네이티브 GUI 사이에서 불필요한 선택을 강요한다고 느꼈습니다.2
Ghostty에서는 빠르고, 기능이 풍부하며, 플랫폼 네이티브 GUI를 갖추면서도 크로스 플랫폼으로 동작하는 터미널 에뮬레이터를 만들고자 했습니다. Ghostty 1.0은 이 모든 목표를 달성했다고 생각합니다.
이 목표는 최고의 기존 터미널 에뮬레이터가 되는 데 초점을 맞춥니다. 이 범주 안에서 Ghostty 1.0은 터미널이 할 수 있는 일을 새롭게 발명하려는 것이 아니라, 오늘날 macOS와 Linux에서3 경험할 수 있는 최고의 단일 터미널 에뮬레이터 경험을 제공하려 합니다.
물론 Ghostty가 완벽하거나 모든 기능을 갖춘 것은 아닙니다. 모든 터미널 에뮬레이터의 모든 기능을 구현한 것은 아니므로 아직 갖추지 못한 기능도 많습니다. 하지만 계속 개선해 나가는 과정에서 Ghostty가 대다수 사용자를 충분히 만족시킬 수 있을 것이라 믿습니다.
빠르고, 기능이 풍부하며, 플랫폼 네이티브
Ghostty를 사용하기 전에 들었던 가장 흔한 반응은 이런 것들이 실제로 차이가 있겠느냐는 회의적인 시선이었습니다. Ghostty를 사용한 후에 가장 많이 들은 반응은 생각보다 차이가 크다는 것을 몰랐다며, 이제는 예전으로 돌아갈 수 없다는 말이었습니다.
Ghostty가 빠르고, 기능이 풍부하며, 플랫폼 네이티브하다는 것은 무엇을 의미할까요? 각각은 방대하고 복잡한 주제이므로 여기서는 각 영역의 핵심만 간략히 짚어 보겠습니다.
‘빠름’에 대해서는 최근 Systems Distributed 2024에서 “터미널 에뮬레이터를 정말, 정말 빠르게 만들기: Ghostty”(50분 15초부터 시작하는 타임스탬프 링크)라는 제목으로 5분짜리 라이트닝 토크를 진행했습니다. Ghostty에 담긴 성능에 대한 고민을 잘 개괄하지만, 라이트닝 토크인 만큼 모든 내용을 담지는 못했습니다.
‘기능이 풍부함’에 있어 Ghostty는 무엇보다 가능한 한 폭넓은 터미널 애플리케이션을 지원하고자 합니다. 이를 위해 Ghostty는 xterm 자체를 제외하면 어떤 터미널 에뮬레이터보다도 많은 xterm 이스케이프 시퀀스를 지원합니다. 또한 스타일이 적용된 밑줄, Kitty 키보드 프로토콜, 그래픽스 프로토콜 등 거의 모든 최신 터미널 사양을 지원합니다. (터미널 이스케이프 시퀀스는 아니지만, 네, Ghostty는 리가처도 지원합니다!)
‘플랫폼 네이티브’와 관련해서는 Ghostty는 macOS에서는 네이티브 GUI 툴킷을, Linux에서는 GTK(가능한 경우 libadwaita 포함)를 사용합니다. 즉, Ghostty는 두 플랫폼 모두에서 겉모습과 사용감이 네이티브 애플리케이션 그 자체입니다. 이는 네이티브 GUI 툴킷을 단순히 창을 만드는 용도로만 사용하는 많은 터미널 에뮬레이터와 대비됩니다.
플랫폼 네이티브의 이점을 예로 들면, Ghostty는 네이티브 탭, 분할 창, 우클릭 메뉴, 메뉴 바, Dock 통합, 입력기 지원(이모지 키보드, 받아쓰기 등), 확인 창, 데스크톱 알림, macOS 보안 입력 모드 등을 제공합니다.
플랫폼 네이티브 GUI를 보여주는 macOS와 Linux에서의 Ghostty 스크린샷입니다(둘 다 테마가 적용되어 있지만 설정은 아마 몇 줄 정도일 겁니다).


(두 이미지는 모두 Ghostty Discord 서버의 공개 쇼케이스 채널에 있는 커뮤니티에서 가져온 것입니다)
첫 릴리스는 1.0입니다
Ghostty는 약 2년 동안 비공개 베타 테스트를 진행했습니다. 이 글을 쓰는 시점에서 Ghostty는 macOS와 Linux 전반에 걸쳐 약 2,000명의 테스터를 보유하고 있으며, 이들 대부분은 큰 문제 없이 Ghostty를 주력 터미널 에뮬레이터로 매일 사용하고 있습니다.
이처럼 광범위한 비공개 베타 테스트를 거쳤기 때문에 Ghostty의 첫 공개 릴리스는 바로 버전 1.0이 될 것입니다. ZeroVer는 없습니다!4
이렇게 오랜 비공개 베타를 진행한 가장 큰 이유는 지극히 개인적이었습니다. 첫 아이가 태어났고, 기능 개발이나 버그 수정 같은 외부의 압박보다 가족과의 시간을 우선하고 싶었습니다. 이론상으로는 주변의 소음을 무시할 수 있었겠지만, 실제로는 제 성격을 잘 알기에 그대로 두면 계속 신경이 쓰이고 정신적으로 부담이 될 것이라는 걸 알고 있었습니다.
가족이라는 이유를 넘어, 저는 소프트웨어가 준비되었을 때 출시되던 시절에 대한 향수가 있습니다. 만약 CompUSA 같은 매장이 아직 존재한다면, Ghostty 1.0이 박스에 담겨 비닐 포장된 채 매장 선반에 진열되어 판매되는 모습을 상상하곤 합니다(물론 무료 오픈소스로도 제공되겠지만요).
비공개 베타가 가져온 다른 효과들은 예상하거나 의도한 바가 아니었습니다. 예를 들어, Ghostty가 배타적으로 느껴지도록 할 의도는 전혀 없었고(솔직히 터미널 에뮬레이터에 이렇게 많은 분이 관심을 가질 줄은 예상하지 못했습니다), 비공개 베타로 Ghostty에 대한 과장된 기대를 만들려는 의도도 없었습니다. 만약 그 과정에서 불편함을 느끼셨다면 사과드립니다.
이 접근 방식에 대해 예상보다 많은 비판을 받았고, 제가 작업 과정과 진행 상황을 공유하는 것을 좋아한다는 이유만으로 당연히 무언가를 받아야 한다고 생각하는 분들도 있어 놀랐습니다. 동시에 훨씬 더 많은 분이 제 방식을 지지하고 이해해 주셔서 감사하게 생각합니다.
마지막으로, Ghostty를 사용하며 훌륭한 피드백을 주신 테스터 분들께 감사드립니다. Ghostty의 안정성은 종종 개발자 도구 체인에서 핵심적인 역할을 하는 초기 버전을 기꺼이 사용해 준 다양한 테스터 분들 덕분에 가능했습니다.
큰 비전
앞으로 Ghostty는 두 가지 큰 축에서 야심 찬 계획을 가지고 있습니다. 바로 libghostty와 터미널 애플리케이션 기능입니다.
libghostty는 Ghostty를 구동하는 핵심 크로스 플랫폼 라이브러리입니다. Zig와 C API로 제공되며 현재 macOS와 Linux에서 동작합니다. 목표는 전용 애플리케이션부터 에디터에 내장된 터미널, 웹 기반 터미널, 새로운 터미널 멀티플렉서에 이르기까지 다양하고 풍부한 터미널 에뮬레이터 애플리케이션 생태계가 생겨나도록 하는 것입니다.
libghostty의 아이디어는 개발자가 훌륭한 애플리케이션을 만드는 어려운 작업에만 집중하고, 빠르고 기능이 풍부하며 표준을 준수하는 터미널 에뮬레이션은 기본으로 얻을 수 있도록 하는 것입니다. 여러 면에서 오늘날의 Ghostty를 libghostty 소비자의 “레퍼런스 구현”이라고 설명합니다.
Ghostty 1.0에서는 libghostty가 아직 안정화된 것으로 간주되지 않으며 독립적인 공개 API로도 제공되지 않습니다. 하지만 Ghostty 내부에서는 libghostty를 사용하고 있습니다. 1.0 이후의 목표는 libghostty를 독립 라이브러리로 릴리스하고 macOS와 Linux를 넘어, 특히 WebAssembly까지 플랫폼 지원을 확장하는 것입니다.
libghostty 외에도, 터미널 안에서 애플리케이션이 활용할 수 있는 더 많은 기능을 구축하는 데 관심이 있습니다. 몇 가지 아이디어로는 이스케이프 시퀀스의 보안 개선, 더 현대적인 입력 방식 지원(터치 제스처, 관성 스크롤, 드로잉 장치 등), 애플리케이션이 네이티브 컨텍스트 메뉴를 제공할 수 있도록 하는 기능 등이 있습니다.
터미널 애플리케이션 기능을 확장하려는 목표는 텍스트 기반 애플리케이션을 개발자가 만들기 더 매력적이고 사용자가 사용하기 더 즐거운 것으로 만드는 것입니다. 텍스트 기반 애플리케이션이 소프트웨어 생태계에서 가치 있는 틈새를 차지하고 있다고 믿으며, 그 플랫폼을 현대화하는 데 기여하고 싶습니다.
Ghostty를 향해 가고 있는 더 큰 비전을 보여드리기 위해 이런 장기적인 목표들을 말씀드렸습니다. 단기적으로는 원래의 큰 목표인 ‘빠르고, 기능이 풍부하며, 플랫폼 네이티브한’ 터미널이라는 방향에 따라 사용자의 피드백과 제 아이디어를 바탕으로 Ghostty를 점진적으로 개선해 나갈 계획입니다. 1.0 릴리스에 포함되지 못해 아쉬운 주요 기능들도 있지만, 후속 릴리스에서 선보일 예정입니다.
재정과 지속 가능성
이 글에서 이 주제를 깊게 다루고 싶지는 않지만, 창업가로서의 제 배경과 이 주제에 대한 일반적인 관심을 고려해 혼란이나 추측을 피하고자 Ghostty의 재정 및 지속 가능성 측면에 대해 간략히 말씀드리겠습니다.
Ghostty는 저에게 열정 프로젝트이며, 어떤 형태로든 상업화할 계획이 없습니다. 첫 문단에서 말씀드린 것처럼 Ghostty는 MIT 라이선스의 오픈소스 프로젝트로 공개될 것입니다.
개인적으로는 과거의 성과 덕분에 재정적 압박 없이 Ghostty 같은 프로젝트에 몰두할 수 있는 자유를 갖게 되어 다행이라고 생각합니다. 저는 Ghostty에 대한 작업을 “기술적 자선(technical philanthropy)”의 한 형태로 여러 번 공개적으로 언급해 왔습니다. 보답하는 동시에 제가 필요로 하는 것을 직접 만들고 즐기는 방식입니다.
동시에 Ghostty가 저 없이도 장기적으로 지속되기를 바라며, 주요 기여자분들께 보상을 드릴 수 있는 방안도 마련하고 싶습니다. 이를 위해 저와 [현재는 비공개] 커뮤니티는 Ghostty의 장기적인 지속 가능성을 보장할 비영리 구조를 모색하고 있습니다. 다만 이는 장기 목표이며 1.0 릴리스 시점까지 갖춰질 내용은 아닙니다.
12월에 뵙겠습니다
2024년 12월에 있을 Ghostty 1.0 공개 릴리스를 기대하고 있습니다.
Ghostty는 2년 넘게 이어온 저의 큰 열정 프로젝트입니다. 정규직으로 일하며 가끔 진행하던 사이드 프로젝트로 시작해, 퇴사 후 첫 아이를 맞이한 뒤에는 (여전히 파트타임이지만) 저의 주된 관심사가 되었습니다.
Ghostty 1.0이 완벽하지는 않겠지만, 그 안정성과 기능은 제가 자랑스럽게 생각하는 부분이며 이제 세상에 공유할 준비가 되었다고 생각합니다. 무엇보다 Ghostty에 담긴 애정과 정성을 느끼시고, 여러분의 일상에 (터미널 에뮬레이터가 줄 수 있는 만큼의) 즐거움을 더해 주기를 바랍니다.
👻
각주
글을 무작위로 읽기