Claude Code는 왜 TUI를 골랐을까: 2026년 터미널 UI 부활의 진짜 이유

서론: VSCode를 켜놓고 왜 다시 터미널로 돌아갔나 2026년 들어 새로 나오는 AI 코딩 도구가 전부 같은 모양이다. Claude Code, Codex CLI, Gemini CLI, opencode, Aider, Crush, Amazon Q Developer CLI. 다섯 개 회사가 다섯 개 다른 언어로 만들었는데, 결과물은 다…

서론: VSCode를 켜놓고 왜 다시 터미널로 돌아갔나

2026년 들어 새로 나오는 AI 코딩 도구가 전부 같은 모양이다. Claude Code, Codex CLI, Gemini CLI, opencode, Aider, Crush, Amazon Q Developer CLI. 다섯 개 회사가 다섯 개 다른 언어로 만들었는데, 결과물은 다 터미널 안에 산다.

이건 이상한 일이다. 2010년대 내내 우리는 GUI가 이긴 줄 알았다. VSCode, JetBrains, Cursor, Windsurf — 다 Electron이거나 Electron 비슷한 무언가다. 그런데 2026년 4월 30일 Alcides Fonseca가 “Why TUIs Are Back”을 올리자 Hacker News에서 190점, 186 댓글이 달렸다. 댓글의 절반은 “맞아 다시 좋아졌어”였고, 나머지 절반은 “TUI는 부활한 게 아니라 일시적인 hype”였다.

이 글은 그 논쟁을 정리한다. 결론부터: TUI는 부활했다. 하지만 GUI를 이겼기 때문이 아니라 AI 에이전트와 SSH 시대가 만든 틈을 메웠기 때문이다. 그리고 그 부활이 영구적인지 일시적인지는 아직 모른다.

TUI가 뭔지부터

TUI(Terminal User Interface)는 터미널 안에서 돌아가는 인터랙티브 인터페이스다. 그냥 CLI가 아니다. CLI는 명령 한 줄 → 출력 한 덩어리지만, TUI는 상태가 있고 키보드 이벤트를 받고 화면을 다시 그린다. lazygit으로 git을 다루거나 k9s로 쿠버네티스를 보거나 btop으로 리소스를 모니터링하는 것 — 그게 TUI다.

옛날에는 TUI가 ncurses + VT100 escape sequence를 직접 다루는 고통이었다. 지금은 다르다. 모던 프레임워크 4개가 시장을 갈라먹고 있다.

모던 TUI 프레임워크 4파전

프레임워크 언어 패러다임 대표 채택
Bubble Tea Go Elm Architecture (MVU) 25,000+ OSS 앱, NVIDIA, GitHub, Slack, Microsoft Azure, Crush
Ratatui Rust Immediate-mode + Elm 권장 2,100+ crates, Netflix bpftop, OpenAI, AWS amazon-q-developer-cli, Vercel
Textual Python Reactive + CSS + 웹 배포 Toad, Posting, Toolong, Bloomberg Memray, Dolphie, Harlequin
Ink TypeScript/React (Node) React + Yoga flexbox Claude Code, GitHub Copilot CLI, Gatsby, Prisma, Wrangler, Shopify CLI, Linear

Charm은 Bubble Tea v2를 2026-02-23에 정식 출시하면서 “Cursed Renderer”라는 ncurses 알고리즘 기반 신규 렌더러를 도입했다. 출시 글에 NVIDIA/GitHub/Slack/Microsoft Azure가 채택자로 명시됐다. Charm은 같은 글에서 v2를 만든 동기를 직접 인용한다 — “shifts triggered by AI agents and coding tools moving into terminal environments.”

Ratatui는 2023년 tui-rs에서 포크됐다. 0.30.x에서 모듈러 워크스페이스로 재구성되며 Netflix의 bpftop, AWS의 amazon-q-developer-cli, OpenAI 도구들이 채택했다.

Textual은 textual-serve로 동일한 코드를 브라우저에서 돌릴 수 있게 한 게 차별점이다. TUI 한 번 만들고 웹 앱으로도 배포한다.

Ink는 React를 그대로 터미널에 옮긴 것이다. Claude Code가 Ink로 만들어졌다. HN 댓글 중 하나가 이걸 비꼰다 — “ironically using web tech in terminal.”

5가지 부활 동력

1. AI 코딩 에이전트가 모두 TUI

이게 가장 큰 그림이다. 새로 나온 AI 코딩 도구가 거의 다 TUI다.

  • Claude Code (Anthropic) — Ink/React
  • Codex CLI (OpenAI)
  • Gemini CLI (Google)
  • opencode (Sourcegraph 출신) — Go + Bubble Tea로 시작 → 1.0에서 OpenTUI(TS) 마이그레이션
  • Crush (Charm 자체 AI 에이전트) — Bubble Tea v2
  • Aider — 오픈소스 베테랑
  • Amazon Q Developer CLI — Ratatui

왜? HN의 post-it가 정리한다 — “LLMs parse text-based interfaces better than screenshots.” 텍스트는 LLM이 보기에 가장 쉬운 인터페이스다. GUI 스크린샷을 LLM에게 던져주면 vision 모델로 처리하는 비용이 든다. 텍스트는 그냥 토큰이다.

다른 방향에서도 통한다. AI가 TUI를 빨리 만들 수 있어서 TUI가 늘어났다. nrmitchi의 코멘트가 합의에 가깝다 — “AIs can code them up quickly. It used to be a total pain.” Bubble Tea + Lipgloss + Lobsters의 hatchet.run 후기(블로그)를 보면, 회사 하나가 “Claude Code 한 번 돌렸더니 며칠 만에 TUI 출하”한 사례가 있다.

이건 상호 정당화 루프다. AI 에이전트는 TUI에 살고, TUI 부활은 AI 에이전트 UX의 표준이 됐다.

2. 즉시 기동 + 저지연

HN 톱 코멘트가 한 줄로 정리한다 — “low latency, instant startup is by far the primary value add.

VSCode 켜는 데 5초, Cursor 10초. lazygit은 1초도 안 걸린다. 화면 보고 끝낼 작업이 30초인데 IDE 띄우는 데 10초가 걸리면 인지 부담이 다르다.

beej71의 코멘트는 더 직관적이다 — “TUIs launch fast, run fast, and you use them fast.”

3. SSH/원격 친화

클라우드 네이티브 시대다. 서버, 쿠버네티스 클러스터, GPU 박스, devcontainer — 다 SSH 한 줄로만 접근한다. X-forwarding은 농담이고, 노트북 닫으면 끊긴다. tmux 세션 영속이 진짜 답이다.

vladislavp의 Lobsters 코멘트가 정리한다: “tmux로 세션 영속, SSH 보안 모델, 대역폭 절약.”

iPad에서 SSH로 GPU 머신 들어가서 lazygit으로 git을 다루는 게 가능하다. GUI로는 안 된다.

4. GUI 배포 비용 상승

2026년에 GUI 앱을 만들어 배포하려면 비용이 든다.

  • Apple Developer Program $99/년 + 노타리제이션
  • Windows code signing CA 인증서 (연 수백 달러)
  • Linux AppImage/Flatpak/Snap 셋 다 빌드

TUI는? npm install. cargo install. pip install. go install. 끝이다.

Lobsters의 andrewnez가 직접 지목한다 — “shipping a signed, notarized GUI in 2026 means paying Apple, paying a CA for Windows.”

오픈소스 1인 개발자에게 이건 무거운 진입 장벽이다. TUI는 그걸 우회한다.

5. Electron 피로

bartread의 HN 코멘트가 분위기를 잡는다 — “absolutely everything becoming a bloated electron app.”

Slack 1GB RAM, Discord 800MB, VSCode 2GB. 다 다르게 생겼다. 키보드 단축키도 일관되지 않는다. 원저자 Fonseca가 글에 적은 표현이 정확하다 — “post-apocalyptic world where every application looks different.

GTK는 2→3→4로 갈아엎었고, SwiftUI는 매년 API가 바뀐다. 개발자 입장에서 “이번 세대 native API 또 배우기 싫다”는 정서가 진짜다.

진짜 부활인가, 일시적 hype인가

여기서 의견이 갈린다.

부활이다 (구조론): nrmitchi, Charm v2, Hatchet 모두 한목소리다. AI 에이전트 시대가 영구적으로 텍스트 인터페이스를 표준화하고 있다. NVIDIA/GitHub/Slack/Microsoft Azure 같은 빅테크가 Bubble Tea를 채택했다. Bubble Tea 생태계만 25,000+ OSS 앱이다. 정량 지표가 받쳐준다.

일시적이다 (회의론): HN의 tptacek는 “TUI 우세는 a blip”이라고 잘랐다. AI가 native UI 만드는 비용을 떨어뜨리는 순간 GUI/HIG로 회귀한다는 가설이다. Claude가 SwiftUI를 5분 만에 짜는 시대가 오면 누가 lazygit을 또 쓰겠나는 것.

두 진영의 공통 합의도 있다 — mr_mitm의 정리: “TUIs were popular before agents.” 즉 AI는 결정타였지만 원인은 아니다. 저지연, 원격 친화, 화면 제약이 강제하는 디자인 — 이건 AI 등장 전부터 있었다.

그래서 부활이 안 되는 부분도 있다

이 글이 호평받은 이유 중 하나는 솔직하다는 것이다. TUI에는 진짜 약점이 있다.

접근성 위기 (가장 심각)

xogium.me의 비판이 통렬하다 — “Most modern TUIs are often more hostile to accessibility than poorly coded graphical interfaces.”

  • gemini-cli + Speakup 스크린리더 조합: 타이머/스피너 갱신마다 음성이 파편화된다 (“Responding… Time elapsed 1s… Responding… Time elapsed 2s…”)
  • Ink/Bubble Tea의 reactive canvas 재렌더링이 NVDA를 즉시 크래시시킨다
  • paste latency: 수천 줄 레이아웃 재계산으로 문자당 최대 10초 지연

gold standard는 의외로 옛날 도구다. Irssi는 VT100 Scrolling Regions라는 하드웨어 기능을 활용해서 스크린리더 호환성이 좋다. 모던 프레임워크는 거기서 후퇴했다.

Lobsters의 dzwdz가 한 줄로 정리한다 — 네이티브 GUI에는 Accessibility API가 있지만 TUI는 노출할 구조 자체가 없다.

TUI도 비대해진다

Suro의 코멘트가 아프다 — “Claude Code TUI도 메모리 과소비. bad software was the culprit all along.” Electron 욕한다고 TUI가 자동으로 가벼워지는 게 아니라는 것.

실제로:
– Claude Code = 600 Kloc (Node.js + React 의존성 트리 거대)
– Gemini CLI는 HN에서 “4초 기동 hot garbage” 비판

마우스/터치 친화성

라인 단위 스크롤만 된다. 픽셀 스크롤 안 된다. 텍스트 선택은 GUI가 압도적으로 우월하다. 모바일/태블릿에서는 사실상 못 쓴다.

fg137의 코멘트가 솔직하다 — “Most non tech people I know absolutely hate TUI.” 개발자 외 채택률은 거의 0이다.

컬러/그래픽도 진화하긴 했다

옛날 TUI는 16색 박스였다. 지금은 다르다.

  • kitty graphics protocol: Kovid Goyal이 만든 PNG/JPEG/GIF 직접 표시 표준. Ghostty/WezTerm/Konsole이 채택해 사실상 표준이 됐다.
  • Sixel: 폴백. WezTerm은 kitty/sixel/iTerm2 3종 모두 지원하는 유일한 메이저 터미널.
  • Ghostty (2024-12 출시)는 2026-03에 GitHub 45,247 stars로 Hyper/Kitty/WezTerm을 추월했다.
  • Bubble Tea v2 신기능: SSH 클립보드 전송, synchronized rendering, inline images.

24-bit RGB 트루컬러, JetBrains Mono 같은 모던 폰트, 그라디언트 — 다 된다. Lip Gloss, Textual CSS, Ink Yoga로 Flexbox 같은 레이아웃도 가능하다.

디자인 패턴: Elm Architecture가 이겼다

흥미롭게도 4개 프레임워크가 비슷한 패턴으로 수렴한다.

  • Bubble Tea (Go): Elm Architecture (TEA, Model-Update-View) 명시 채택
  • Ratatui (Rust): Elm Architecture를 공식 문서에서 권장 패턴으로 소개
  • Textual (Python): Reactive + CSS, Elm과 다르지만 단방향 데이터 흐름
  • Ink (TS): React Hooks, 결국 같은 함수형 + 단방향

핵심은 순수 View 함수다. 동일한 Model이 들어오면 동일한 화면이 나온다. 테스트하기 쉽고, 재현 가능하고, AI 에이전트가 코드 생성하기에도 단순하다.

1인칭 후기 — 디자이너도 전향한다

가장 흥미로운 사례는 디자이너의 전향이다. Alex Chan의 “A designer’s guide to loving the terminal”에 이런 문장이 나온다 — “A majority of my job is designing highly interactive, visual point and click interfaces. (…) I prefer using the terminal over comparative GUIs.”

일본 사례도 풍부하다. Zenn의 maedana(2026-03-04)는 Rust + ratatui + crossterm으로 자작 TUI 두 개를 Claude Code와 협업으로 만든 후기를 올렸다. tumf.dev는 “2023년이 TUI의 캄브리아 폭발“이라고 표현한다.

한국어 1차 후기는 검색해도 거의 나오지 않는다. 이게 한국 IT 블로그에 콘텐츠 공백이라는 뜻이다.

한국 개발자에게 의미

Claude Code가 한국에서도 빠르게 퍼지고 있다. 그런데 “Claude Code가 왜 TUI인가” 같은 메타 질문은 한국어로 잘 다뤄지지 않았다.

세 가지 시사점이 있다.

1. AI 도구 선택 기준이 바뀐다. “어떤 IDE를 쓰나”보다 “어떤 TUI 에이전트를 쓰나”가 의미 있는 시대다. 이는 단축키 학습 비용이 다시 핵심 자산이 된다는 뜻이다.

2. 자체 도구 만들기 진입 장벽이 낮아졌다. Bubble Tea + Claude Code 조합으로 사내 운영 도구 TUI를 며칠 만에 만들 수 있다. Hatchet 사례가 그걸 보여줬다. 한국 스타트업의 “DevOps 도구 부족” 문제에 의외의 답이 될 수 있다.

3. 접근성 책임을 알자. TUI를 만들 거면 스크린리더 친화성을 처음부터 고려해야 한다. xogium.me의 비판은 한국 개발자에게도 그대로 적용된다. Irssi가 했던 VT100 Scrolling Regions 패턴을 안 쓰면 후퇴다.

다음 글

참고

관련 글

@welltip

정리를 위해 작성하는 개인노트