현대 소프트웨어 개발 환경에서는 다양한 도구와 인터페이스를 활용하여 작업의 효율성을 높이는 것이 매우 중요합니다.
많은 도구들이 로컬 브라우저에서 조작할 수 있는 형태의 인터페이스를 제공하곤 하는데요, 의외로 많은 분들이 간과하고 있는 인터페이스가 TUI(Text User Interface) 입니다.
도커와 쿠버네티스, 그리고 인공지능 기술의 발전으로 리모트 서버와 컨테이너 환경에서 개발하는 빈도가 높아짐에 따라, 해외 개발 커뮤니티를 중심으로, 간단하게 사용하면서도 개발자의 생산성을 매우 증진시켜주는 모던 TUI 툴들이 끊임없이 개발되고 있습니다.
옛날의 투박한 TUI / CLI의 시대는 지났습니다. 모던한 TUI를 경험해보세요!
2025년 현재에도 정말 폭발적으로 많은 TUI 툴들이 수만개의 깃헙 스타를 받으며 성장하고 있는데요,
오늘은 한국에는 아직 많이 알려지지 않았지만, 외국에서 폭발적인 인기를 얻고있는 모던한 TUI 애플리케이션들을 소개하고, 이들을 사용했을 때의 장점과 실제 개발 현장에서의 활용 사례에 대해 자세히 알아보겠습니다.
lazygit을 통해 git 커밋을 순식간에 해치울 수 있습니다. 현재 깃헙스타 수: 55.8k
원격 서버나 도커 컨테이너에 접속할 때, GUI 환경을 구성하는 것은 때때로 불가능하거나 비효율적일 수 있습니다. TUI 애플리케이션은 SSH 연결만으로도 완벽하게 동작하며, 네트워크 대역폭도 최소한으로 사용합니다. htop이나 dust와 같은 TUI 도구들은 시스템 모니터링과 디스크 사용량 분석을 텍스트 기반으로 제공하면서도 직관적인 인터페이스를 제공합니다.
dust로 순식간에 서버의 디스크 사용량 상황을 파악할 수 있습니다. 스타 수: 9.3k
도커 컨테이너 내부에서 문제가 발생했을 때, TUI 기반의 디버거나 로그 분석 도구를 사용하면 문제의 원인을 신속하게 파악하고 해결할 수 있습니다. 예를 들어, 기반의 로그 뷰어를 사용하면 실시간으로 로그를 모니터링하면서 패턴을 분석할 수 있으며, 키보드 단축키를 통해 빠르게 검색과 필터링을 수행할 수 있습니다.
termshark로 http, tcp, udp 패킷을 손쉽게 확인할 수 있습니다. 스타 수: 9.3k
TUI 애플리케이션의 가장 큰 장점 중 하나는 마우스 없이도 모든 작업을 수행할 수 있다는 점입니다. neovim이나 zellij 같은 도구들은 키보드 단축키를 통해 복잡한 작업도 빠르게 처리할 수 있게 해줍니다. 이는 다음과 같은 이점을 제공합니다:
zellij (모던한 tmux)를 통해 tui 환경 속에 tab, floating pane, toggle pane등의 기능을 구현할 수 있습니다. 스타 수: 22.9k
GUI 애플리케이션에 비해 TUI 애플리케이션은 매우 적은 시스템 리소스를 사용합니다. 이는 특히 제한된 리소스를 가진 환경에서 중요한 장점이 됩니다:
도커 컨테이너 내부에서 환경 설정을 수정해야 할 때, lazydocker와 같은 도커 TUI를 사용하면 설정과 로그를 한눈에 매우 손쉽게 파악할 수 있습니다. 뿐만 아니라 직접 컨테이너를 멈추거나 실행할 수 있으며, 죽은 컨테이너를 재시작할 수도 있습니다.
lazydocker를 통해 죽은 컨테이너를 'r' 키를 통해 바로 되살립니다. 스타 수: 41.2k
개발할 때 운영서버의 데이터베이스 정보를 확인하는 것이 항상 번거로웠습니다. dblab, harlequin과 같은 TUI 기반 데이터베이스 클라이언트를 사용하면, 자동 완성 기능과 문법 하이라이팅을 통해 SQL 쿼리를 더 정확하고 빠르게 작성할 수 있습니다. 이는 데이터베이스 관리 작업의 효율성을 크게 향상시킵니다. 미리 알았더라면... 사이드 프로젝트를 정말 순식간에 개발 할 수 있었을텐데 하고 아쉬움이 남습니다.
harlequin 스타 수: 4.1k
htop, btop와 같은 TUI 기반 시스템 모니터링 도구는 시스템의 상태를 실시간으로 파악하고 문제가 되는 프로세스를 즉시 처리할 수 있게 해줍니다. 예를 들어, htop을 이용할 때, k를 누르면 원하는 프로세스에 바로 sigterm, sigkill과 같은 시그널을 보낼 수 있습니다.
btop 스타 수: 22.7k
TUI 애플리케이션은 현대 개발 환경에서 없어서는 안 될 중요한 도구입니다. 특히 컨테이너화된 환경에서의 개발과 운영에 있어서 TUI의 장점은 더욱 빛을 발합니다. 키보드 중심의 효율적인 워크플로우, 낮은 리소스 사용량, 그리고 뛰어난 접근성은 개발자의 생산성을 크게 향상시킬 수 있습니다.
TUI 애플리케이션을 적극적으로 활용하면, 복잡한 개발 환경에서도 효율적이고 체계적인 작업이 가능해집니다. 특히 도커와 같은 컨테이너 환경에서의 작업이 많은 현대 개발 환경에서는 TUI 애플리케이션의 가치가 더욱 높아지고 있습니다.
lazygit, fzf, fd, rg, uftrace, delta, diffnav, atuin, eza, zoxide, starship, tealdear, just
sed, awk, jq, direnv, sqlite3 (embedded)
netscanner, bandwhich, termshark, trippy
htop, btop, dust, dua, lazydocker
위와 같은 툴들은 제가 매우 자주 사용하는 툴들의 일부입니다.
리모트 환경에서 일하는 일이 잦다면 꼭 살펴보시는 것을 추천드립니다.
그런데 항상 제가 원하는 툴들이 이미 존재하는 것은 아닙니다.
요즘은 제가 직접 만들고 싶을 때가 많아요. 이것저것 만들다보니 간단한 사내 툴을 만드는데에도 큰 도움이 되고 있습니다.
사실, 위에 언급된 대부분의 모던 TUI 툴이 Ratatui로 만들어졌는데요, TUI툴 제작을 도와주는 프레임워크 중 하나인 Ratatui에 대해서 다음 주에 소개해보겠습니다.
즐거운 TUI 프로그래밍 되세요!
또한, WSL을 사용하면 TUI가 정말 유용합니다 :) 감사합니다!