고급 Ghostty 기능 구현 사례 공유

4 weeks ago 16

  • Ghostty의 비방해형 macOS 자동 업데이트 기능 개발 과정을 상세히 다룸
  • 이 기능은 AI와 agentic 코딩 도구를 적극적으로 활용하며 실제 제품에 적용함
  • 개발 과정은 프리플랜 설계, UI 프로토타이핑, 클린업 및 버그 수정 등 단계로 세분화됨
  • AI는 반복적이고 영감을 주는 역할을 하지만, 최종 품질과 구조는 인간의 수작업에 의해 완성됨
  • 총 16회의 에이전트 세션, 약 $16 토큰 비용과 8시간 정도의 소요 시간이 듦

개요

이 글은 Ghostty의 macOS 비방해형 업데이트 알림 기능 개발 경험을 공유함
주요 작업은 OpenAI 키노트 도중 발생한 불편을 계기로, 작업을 방해하지 않는 경고 시스템 도입을 목표로 함
기능 개발 전체 과정에서 AI 및 에이전트 코딩 도구가 적극적으로 활용됨
사용자는 터미널 창에서 작은 GUI 요소로만 업데이트를 인지할 수 있도록 하여, 창 생성이나 포커스 강탈 등의 방해를 제거함

프리플랜 및 준비

  • 즉시 AI 도구 사용이 아닌, 우선 대략적인 구상 및 리서치로 시작함
  • Sparkle(macOS용 업데이트 프레임워크) 및 Obj-C 프로토콜 기반 커스텀 UI 지원을 확인함
  • 프론트엔드 설계는 미흡하지만, 타이틀바 액세서리 뷰 컨트롤러 등의 macOS 기능을 활용할 가능성 검토
  • AI는 명확히 구상된 계획을 토대로 효과적으로 사용될 수 있음을 인지함

UI 프로토타이핑 및 에이전트 활용

  • Agentic 코딩의 첫 단계로 UI 전용 플랜 기획을 수행하고, AI에게 실제 코드를 바로 요구하지 않고 계획안만 생성하게 함
  • 그 후 UI 코드 일부를 AI가 구현함
  • AI가 만든 초기 UI는 방향성은 좋았으나, 세부 디자인(여백/색상 등)에서 미흡
  • 인간이 직접 편집하며 원하는 방향으로 영감을 받는데 AI가 효과적임

기술적 난관 및 한계

  • 일부 버그(예: 탭바와 알림 뷰간의 충돌)의 경우 AI가 해결하지 못하고 수차례 실패
  • 인간의 반복적 연구와 노력 후에도 해결 불가 시, 기능 설계 자체를 조정하여 임시 해소(예: 타이틀바 문제 시 윈도우 하단 오버레이 방식 적용)

클린업 세션과 코드 품질관리

  • 에이전트에게 코드 리팩토링, 문서화, 함수 역할 분리 등 정리 작업을 지시함
  • 수시로 인간의 수동 편집 병행
  • 클린업을 통해 캡슐화, 역할별 분리, 명확한 명명 등을 실현
  • 문서화는 향후 세션에서 에이전트의 이해도를 높이고 협업에도 도움을 줌

버그와 대체 구현

  • 계속되는 시도에도 불구, 특정 레이아웃 이슈를 AI가 해결 못함
  • 타이틀바 스타일에 대한 한계로 인해, 윈도우 하단 오버레이 방식을 별도로 구현하도록 방향 전환함
  • 이 방식 역시, 향후 타이틀바를 숨기는 옵션 지원을 고려할 때 필수적임

백엔드 개발 및 구조 개선

  • 백엔드 작업 시작 시, 미완성 함수 및 TODO 기반 스캐폴딩 직접 작성 후, 에이전트에게 완성 명령
  • 첫 AI 결과는 구조가 부적합해 전면 폐기
  • 뷰 모델 구조(구조체→태그형 유니언, 불필요한 타입/코드 정리 등) 수동 리팩토링으로 기반 재정비
  • 이후 에이전트에게 재작업 및 불필요 코드 제거, 빌드 오류 자동수정 등 진행
  • UI 뷰 케이스 분리, 옵셔널 변수 취급 개선 등 추가 정리 반복

시뮬레이션/테스트 생성

  • 에이전트에게 다양한 업데이트 흐름(정상/실패/에러 등) 시뮬레이션 코드 생성 요청
  • 이 코드의 품질은 낮았지만, 테스트 목적엔 적합
  • 실제 시뮬레이션을 통해 UX 개선점을 도출

최종 접합 및 개선

  • 백엔드-프론트엔드 연결 완료
  • UpdateController 구현, 앱캐스트 메타데이터 표현 등 마무리 개선
  • 모든 작업 후 에이전트에게 "누락된 개선점" 재점검을 지시
  • 일부 과도한 자동화(메인 액터 적용 등)는 인간이 직접 중단하며 조정함
  • UI 개선(에러 메시지 표현 등) 방법에 대해 AI 의견을 반영하되, 최종 구현은 필요시 직접 개입

시간·비용 측면 및 소회

  • 총 16회 세션, $15.98 토큰 비용, 약 8시간의 실제 작업으로 기능 구현
  • 해당 기간에 다른 업무(업데이트 출시, 외부 방송/행사 참여 등) 병행
  • 반복적 UI 스타일 작업에서 AI의 효율이 특히 높았다고 평가
  • AI가 "내가 자리를 비운 동안" 작업한다는 점에 가치 중점을 둠

결론 및 가치

  • 출시 전 마지막 수동 리뷰를 거쳐 메인 브랜치에 병합
  • Ghostty 사용자 중 tip 릴리즈 이용자에겐 즉시, 태그 릴리즈 이용자에겐 1.3 버전에서 제공 예정
  • 코딩 세션 전체 기록의 공개는 에이전트 자동화 노하우 학습에 매우 효과적
  • 이 글이 실전 코드 자동화/활용 방법에 대한 실용적인 예시로 작용함을 기대함

Read Entire Article