tmux를 개발 워크플로우에서 대체하기

15 hours ago 1

  • tmux 대체를 고민하게 된 이유로는 복잡성, 생태계 발전 저해, 그리고 일상적으로 발생하는 사용상 불편 등이 있음
  • tmux의 주요 강점으로 세션 유지윈도우 관리가 꼽히지만, 실제 사용에서 색상 문제나 버퍼 스크롤, 마우스 복사 등 여러 불편함이 있음
  • 최근에는 shpool 등 경량화된 툴로도 세션 유지가 가능하며, 네이티브 스크롤백 등 장점이 있음
  • 리모트 서버 작업 시에도 window manager와 연동해 여러 세션 관리가 가능하고, 자동 접속 및 복구도 가능함
  • shpool도 완벽하지 않지만, 기본적인 개발 흐름에서는 tmux의 의존도를 크게 낮출 수 있음

개요

최근까지 7년 넘게 tmux를 일상적으로 사용해온 경험 기반에서, 워크플로우에서 tmux를 대체할 수 있는 가능성에 대해 고찰함. 컬러 표시 오류, 스크롤 개선, 마우스 복사 문제 등 실제 사용에서 매번 마주치는 몇몇 pain point와, 터미널 생태계 전체에 미치는 영향에 주목함.

tmux의 장점과 단점

  • 세션 유지(detach/attach), 윈도우 관리(탭, split) 등, 기존에 tmux가 제공하던 기능이 워크플로우 핵심이었음
  • 하지만, 올바른 TERM 설정이 없을 경우 색상 렌더링 문제, 터미널과 tmux 간의 상호작용 고려 필요 등 복잡도가 증가함
  • 스크롤 버퍼 사용도 tmux만의 별도 방식에 익숙해져야 하며, 마우스를 이용한 영역 복사도 splits 환경에서 불편함이 있었음
  • kitty graphics protocol 등 신규 터미널 기능 지원 미흡, 실험적 프로토콜 미지원 이슈도 존재함

터미널 멀티플렉서에 대한 회의와 대안 모색

  • 중복된 escape code 재해석과 세션/윈도우 개념 부여로 인해 멀티플렉서가 터미널 생태계의 발전을 저해한다는 비판 존재
  • session persistence와 window management를 대체할 수 있는 기본 bash 툴(예: ctrl-z, nohup, disown)은 완벽하지 않음. 실제 세션 유지, 재접속(Aattach)이 매끄럽지 않음
  • 윈도우 매니저를 활용한 탭/스플릿 윈도우 관리는 로컬 환경에선 가능하지만 SSH 원격 서버 접속에서 장벽이 존재함

tmux 대체를 위한 신형 경량 툴 테스트

  • 세션 유지만을 목표로 한 여러 툴(shpool 중심)이 등장
    • fork() 및 UNIX 소켓 조합으로 daemon과 클라이언트 간 연결
    • tmux와 달리 가상 split 없이 네이티브 스크롤백 지원, 버퍼 복원 기능도 일부 제공
  • 사용 경험상, 대체 툴 대부분은 버그 및 nvim 내에서 detach 키합이 동작하지 않는 등 완성도가 낮음
  • shpool만이 detach/attach 커맨드와 keymap 커스터마이징 측면에서 가장 완성도가 높았음

개발 워크플로우에 적용한 방법

  • 개인적으로 ghostty(노트북), sway+foot(개인 PC)로 윈도우 관리. 서버는 프로머스(Proxmox) 기반 headless VM, 항상 SSH 개발 환경 유지
  • 각각의 shpool 세션을 SSH 연결로 생성 및 관리 가능
    • ssh_config에서 각 호스트별로 shpool 세션 attach 자동화
    • 터미널마다 IRC, dotfiles 관리, 별도 neovim 환경 등 다중 세션 개별 접속 가능
  • autossh 활용시, 네트워크 복구 시 터미널 창도 자동 재연결되어 실시간 업무 생산성 유지

실사용 체감 및 남은 이슈

  • shpool 기반 워크플로우 전환 후, tmux 없이도 대부분의 니즈 충족 및 생활 패턴 적응 완료
  • 오히려 네이티브 스크롤, 터미널 알림, 터미널 타이틀 등에서 기존 tmux 대비 자연스러운 동작 확인
  • 현존 이슈: 재attach 후 터미널 상태 복구 지연, nvim 사용 시 리사이즈 문제 존재(워크어라운드 단축키로 임시 해결)
    • 멀티플레이어 미지원(여러 클라이언트에서 autossh 동시 발생 시 세션 충돌)

결론

현재 시점에서 shpool을 중심으로 한 신형 세션 매니저와 윈도우 매니저, SSH 자동화 조합으로, 대부분의 개발 현장에서 tmux를 대체할 수 있는 실질적 대안을 확보함. 기존 tmux가 지녔던 독특한 pain point 해결, 사용자별 맞춤화, 새로운 터미널 생태계 적응 전체에서 긍정적 전환 경험이 발생함.

Read Entire Article