재미있는 Ghostty 이야기
Olivia Novak
Dev Intern · Leapcell

이번 크리스마스 연휴 동안 미첼 하시모토는 Ghostty를 출시했습니다.
출시되자마자 Ghostty는 미첼 하시모토의 정체성(HashiCorp의 창립자) 때문뿐만 아니라 정체된 터미널 에뮬레이터 세계를 뒤흔든 Ghostty 자체의 품질 때문에 빠르게 주목을 받았습니다.
"Public에서 빌드"의 대표적인 예인 미첼은 최근 Changelog 팟캐스트에 출연하여 100분 분량의 에피소드에서 Ghostty 프로젝트의 탄생, 목표 및 개발 프로세스에 대한 통찰력을 포함하여 많은 흥미로운 이야기를 공유했습니다.
다음은 팟캐스트에서 발췌한 Ghostty에 대한 몇 가지 재미있는 사실입니다.
Ghostty의 기원
HashiCorp의 창립자인 미첼은 2023년에 회사를 떠나기 전에 서버 측 개발에서 일해 왔습니다.
그는 항상 코딩을 좋아했고, HashiCorp를 떠난 후 이전 작업과는 다른 새롭고 색다른 것을 탐구하고 싶었습니다. 그에게 이것은 "비인프라", "비서버 측", "데스크탑 소프트웨어"에서 작업하는 것을 의미했으며, 이는 Ghostty의 탄생으로 이어졌습니다.
이미 terminal.app이 있는데 왜 Ghostty를 만들어야 할까요?
터미널의 잠재력은 완전히 탐구되지 않았으며, 시중에는 몇 개의 터미널 에뮬레이터만 있습니다. 대조적으로 수백 개의 브라우저가 있습니다(그리고 그 수는 계속 증가하고 있습니다!).
미첼은 모든 면에서 뛰어난 터미널을 만들고 싶었습니다.
Ghostty의 주요 기능
- 빠른 속도
- 크로스 플랫폼
- 네이티브
빠른 터미널을 정의하는 것은 무엇일까요?
- 파일 로딩 속도: 터미널이 파일을 얼마나 빨리 로딩할 수 있을까요?
- 입력 지연 시간: 키를 누른 후 문자가 터미널에 나타나기까지 얼마나 걸릴까요?
- 렌더링 속도: 큰 파일을 스크롤할 때 프레임 속도는 얼마나 될까요?
왜 Ghostty는 빠를까요?
Ghostty는 각 플랫폼에 대한 특정 최적화를 통해 명령어 수준 아키텍처까지 내려가는 네이티브 애플리케이션으로 개발되었습니다.
예를 들어 Apple Silicon에서는 독점적인 ARM 명령어를 사용하고 Intel에서는 SIMD 명령어를 사용합니다.
렌더링의 경우 Ghostty는 macOS에서는 Metal 프레임워크를 사용하고 Linux에서는 OpenGL을 사용합니다.
터미널의 미래 상상
터미널의 기능을 확장할 수 있을까요?
터미널 내에서 HTML 또는 PDF 파일을 직접 열 수 있을까요? 왜 터미널 환경을 떠나야 할까요?
Ghostty의 목표는 무엇일까요?
영향력.
터미널 개선에 집중하는 사람이 없었기 때문에 Ghostty가 이 역할을 맡아 전체 생태계에 영향을 미치고 지속 가능한 커뮤니티를 조성할 수 있습니다.
이것이 libghostty
가 중요한 이유입니다. 미첼은 Ghostty가 유일한 터미널 프로그램이 되기를 원하지 않습니다. 앞으로는 iOS, Android 또는 기타 플랫폼이든 핵심을 재창조할 필요 없이 누구나 자신의 터미널 프로그램을 개발할 수 있어야 합니다.
왜 더 빨리 공개적으로 출시하지 않았을까요?
미첼은 당시 몇 달 되지 않은 어린 딸과 더 많은 시간을 보내고 싶었습니다.
그녀가 잠들었을 때만 코드를 작성할 시간을 낼 수 있었습니다.
왜 Ghostty에 Zig를 선택했을까요?
Zig는 작업하기 재미있기 때문에 선택되었습니다. Rust도 훌륭한 언어이지만 그렇게 재미있지는 않습니다.
Ghostty는 Zig에 어떤 영향을 미칠까요?
- Zig 팀은 Ghostty를 사용하여 Zig의 반복이 컴파일러의 안정성에 영향을 미치는지 컴파일하고 테스트했습니다.
- 패키지 관리자 기능은 미첼이 Andrew에게 제안한 것으로, Linux에서 Ghostty를 더 쉽게 배포할 수 있습니다.
Ghostty 개발에서 가장 어려웠던 부분은 무엇일까요?
글꼴.
개발 시간의 약 70%가 글꼴 렌더링에 소요되었습니다.
나머지 30%는 터미널 에뮬레이터를 구축하고 만족스러운 기본 글꼴을 선택하는 데 사용되었습니다.
Ghostty를 돋보이게 만드는 것은 무엇일까요?
"애플이 출시한 레티나 스크린과 같은 거라고 설명했습니다. 사용해보기 전에는 얼마나 좋은지 모릅니다." -- 미첼 하시모토
결국
전체 팟캐스트를 들어보면 미첼이 얼마나 열정적인지, 그리고 경계를 넓히려는 끊임없는 노력을 알 수 있습니다. 왜 터미널은 지금과 같아야 할까요? 더 나아질 수 없을까요?
마지막으로 미첼에게 감사드립니다!
Ghostty를 사용하여 로컬 개발을 완료했으면 Leapcell을 사용하여 프로젝트를 클라우드에 배포하는 것은 어떻습니까?
Leapcell은 웹 호스팅, 비동기 작업 및 Redis를 위한 차세대 서버리스 플랫폼입니다.
- 다국어 지원
- JavaScript, Python, Go 또는 Rust로 개발하세요.
- 무제한 프로젝트를 무료로 배포하세요.
- 사용량에 대해서만 비용을 지불하세요. 요청도, 요금도 없습니다.
- 타의 추종을 불허하는 비용 효율성
- 유휴 요금 없이 사용량에 따라 지불합니다.
- 예: $25는 평균 응답 시간이 60ms인 6.94M 요청을 지원합니다.
- 능률적인 개발자 경험
- 간편한 설정을 위한 직관적인 UI.
- 완전 자동화된 CI/CD 파이프라인 및 GitOps 통합.
- 실행 가능한 통찰력을 위한 실시간 메트릭 및 로깅.
- 손쉬운 확장성 및 고성능
- 고도의 동시성을 쉽게 처리하기 위한 자동 확장.
- 운영 오버헤드 제로 — 구축에만 집중하세요.
설명서!에서 자세히 알아보세요.
X에서 팔로우하세요: @LeapcellHQ