TECH 으로 돌아가기
TECH HACKER NEWS 7분 읽기 30 READS

Ghostty 1.4, 성능·메모리 대폭 개선과 Kitty 그래픽 100% 구현

Ghostty 1.4, 성능·메모리 대폭 개선과 Kitty 그래픽 100% 구현
SOURCE IMAGE · HACKER NEWS

오픈소스 GPU 가속 터미널 에뮬레이터 Ghostty가 2026년 10월 27일 1.4.0 버전을 내놨다. 약 7개월간 172명의 기여자가 2,889건의 커밋을 쌓은 대형 릴리스로, 성능과 메모리 사용량 전반을 끌어올리는 한편 Kitty 그래픽 프로토콜을 공개 명세 기준 100% 구현했다. Ghostty 측은 이번 구현으로 Kitty 자체를 제외하면 해당 명세를 완전히 지원하는 첫 터미널이 됐다고 밝혔다. macOS에서는 새 버전 macOS 27(Golden Gate)을 지원하면서도 macOS 13(Ventura)까지의 하위 호환을 유지했다.

처리량과 메모리를 동시에 손본 내부 개선

실무자가 체감할 가장 큰 변화는 입출력 처리 속도다. 개발진은 macOS 커널이 pty에서 한 번에 읽는 양을 버퍼 크기와 무관하게 약 1KiB로 제한한다는 점을 발견했다. 기존에는 1KiB마다 읽기 오버헤드를 반복해서 치렀고, 출력하는 프로그램은 파싱이 끝날 때까지 블로킹됐다. 1.4는 한 스레드가 pty를 비우는 동안 다른 스레드가 파싱을 진행하도록 분리해, macOS(M4 Max 기준)에서 종단 간 I/O 처리량을 1.3.x 대비 25~55% 끌어올렸다. VT 파서 자체도 빨라져 평문 ASCII 처리 속도가 128MB/s에서 725MB/s로 약 5.7배, CJK 텍스트는 3.4배 향상됐다. 그 결과 macOS에서 150MB 텍스트 파일을 cat으로 출력하는 시간이 1.5초에서 566밀리초로 줄었다.

메모리 쪽에서는 스크롤백 압축이 핵심이다. 화면에 보이지 않는 스크롤백을 투명하게 압축해, 텍스트 위주 기록 기준으로 물리 메모리 사용량을 70~90% 줄인다. 압축은 터미널이 유휴 상태일 때만 돌고, 스크롤이나 검색 시점에 필요한 페이지만 해제하므로 처리량에는 측정 가능한 영향이 없다고 한다. 덕분에 기본 스크롤백 한도는 터미널당 10MB에서 50MB로 상향됐다. 다만 이 기능은 가상 메모리가 아니라 상주(물리) 메모리를 줄이는 것이라 측정 시 resident 메모리를 봐야 하며, 현재 macOS와 64비트 리눅스에서만 제공된다.

그래픽과 클립보드 프로토콜 확장

Kitty 그래픽 프로토콜에서 마지막까지 빠져 있던 애니메이션과 상대 배치가 추가됐다. 이제 kitten icat 등으로 표시한 애니메이션 GIF가 정지 프레임이 아니라 실제로 움직이며, 터미널이 보이지 않을 때는 재생이 멈춘다. 상대 배치는 한 이미지를 다른 이미지의 배치 위치를 기준으로 놓아 부모 이미지와 함께 움직이게 한다. 명세 및 Kitty 본체와의 적합성 점검으로 수십 건의 동작 차이도 바로잡았고, 이미지 페이로드를 바이트 단위가 아니라 SIMD로 일괄 파싱하도록 바꿔 대용량 이미지 전송 파싱이 약 16배 빨라졌다.

클립보드에서는 Kitty 클립보드 프로토콜(OSC 5522)을 macOS와 GTK 양쪽에 구현했다. 평문만 다루는 OSC 52와 달리 이미지나 HTML 같은 임의 형식을 읽고 쓸 수 있고, 붙여넣기 이벤트(모드 5522)를 통해 프로그램이 클립보드에 담긴 형식을 알고 원하는 것만 가져올 수 있다. 접근 권한은 기존 clipboard-read·clipboard-write 설정을 따르며, 읽기는 기본적으로 미리보기와 함께 권한을 묻는다. 한 번의 쓰기 크기를 제한하는 clipboard-write-limit-bytes 설정도 추가됐고 기본값은 64MiB다.

GTK 렌더링 재작성과 SSH 통합

GTK 앱은 렌더링 파이프라인을 새로 짰다. GtkGLArea를 걷어내고 별도 스레드에서 EGL로 그린 뒤 각 프레임을 DMABUF로 내보내 GTK에 전달하며, 삼중 버퍼링으로 테어링을 줄였다. 가장 눈에 띄는 성과는 125%, 150% 같은 분수 배율에서 텍스트와 박스 드로잉 문자가 더 이상 뿌옇게 보이지 않는다는 점이다. 또한 GTK에서도 분할 창을 드래그해 재배치할 수 있게 되면서 1.3에서 macOS에 들어온 기능이 맞춰졌고, drag-handle 설정으로 핸들 표시 여부를 auto·always·never 중에 고를 수 있다.

SSH 통합은 실험적 상태를 벗어나 ghostty +ssh CLI 액션으로 정리됐다. 이 명령은 ssh를 감싸 원격 세션을 Ghostty에 맞게 준비한 뒤 실제 ssh에 인자를 그대로 넘긴다. 접속 전 원격 호스트에 Ghostty 터미널 정보(terminfo)를 설치해 xterm-ghostty TERM 값을 쓰게 하고, 설치가 실패하면 TERM=xterm-256color로 폴백한다. 셸 통합 기능들도 이제 내부적으로 +ssh를 호출해 bash·zsh·fish·elvish·Nushell이 동일하게 동작한다. 이와 함께 터미널 코어는 Thomas Dickey의 esctest 적합성 검사를 CI에 넣었고 DECSTR, DECXCPR, 가시성 보고(모드 2033) 등 새 시퀀스를 추가했다.

도입 전 확인할 제약도 있다. GTK 요구 사항이 GTK 4.18, libadwaita 1.7로 올라가 Ubuntu 24.04 LTS는 기준을 충족하지 못하며, 이 경우 구버전 Ghostty나 Flatpak 패키지로 우회해야 한다. 렌더링이 EGL을 거치게 바뀐 만큼 GPU 드라이버가 정상적인 EGL 구현을 제공해야 하고, DMABUF 내보내기가 안 되는 드라이버에서는 CPU 복사로 폴백해 더 느리게 동작한다. 수치만 보면 화려하지만 상당수 개선이 플랫폼에 종속적이라, 실제 효과는 각자의 운영체제와 그래픽 환경에 따라 달라진다는 점을 염두에 둘 필요가 있다.

SOURCE · HACKER NEWS
원문 전체 보기 → https://ghostty.org/docs/install/release-notes/1-4-0
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...