1P by neo 17일전 | favorite | 댓글 1개

tmux는 더 나은 선택인가

tmux 소개

  • tmux는 "terminal multiplexer"의 약자로, 터미널을 여러 개의 독립적인 셸로 분할할 수 있게 해줌
  • OpenBSD에 기본적으로 설치되어 있음
  • SSH를 자주 사용하는 프로그래머에게 유용함
  • 그래픽 환경 없이 화면을 분할할 수 있음
  • 디지털 미니멀리즘을 추구하는 사람들에게 적합함

Kovid Goyal의 의견

  • Kovid Goyal은 ePub 소프트웨어 calibre와 터미널 에뮬레이터 Kitty의 개발자임
  • Goyal은 tmux를 좋아하지 않음
  • 그의 FAQ에서 tmux에 대한 부정적인 의견을 밝힘
    • 터미널 멀티플렉서는 불필요한 오버헤드를 추가함
    • 복잡성 증가로 인해 성능 저하가 발생함
    • 에너지와 성능 측면에서 비효율적임
    • 생태계 전체에 부정적인 영향을 미침

개인적인 사용 경험

  • 필자는 집에서는 UNIX를 사용하고, 직장에서는 Windows를 사용함
  • 여러 번 SSH를 사용해야 하는 상황에서 tmux를 자주 사용함
  • tmux는 다양한 터미널 에뮬레이터에서 작동 가능함
  • Kitty는 원격 접속하는 시스템에서 작동해야 함

"Worse is better" 철학

  • "Worse is better"는 소프트웨어 철학이라기보다는 제품 관리 철학에 가까움
  • 소프트웨어의 핵심 기능을 가장 일반적인 사용 사례에 맞춰 최적화하는 것이 중요하다고 강조
  • 필자는 개인적으로 VM을 좋아하지만, 실제로는 tmux를 더 자주 사용함

결론

  • 필자는 주로 Windows에서 원격 접속을 사용함
  • tmux의 단축키를 외우고 있음
  • Kitty의 단축키도 훌륭하지만, tmux가 더 유용함

GN⁺의 의견

  • tmux는 SSH를 자주 사용하는 개발자에게 매우 유용함. 특히, 여러 셸을 동시에 실행할 수 있는 기능은 큰 장점임.
  • Kovid Goyal의 의견처럼, 터미널 멀티플렉서가 성능에 영향을 미칠 수 있지만, 대부분의 사용자는 그 이점을 더 중요하게 생각할 것임.
  • Kitty와 같은 터미널 에뮬레이터는 더 나은 성능을 제공할 수 있지만, tmux의 범용성과 편리함을 대체하기는 어려움.
  • 디지털 미니멀리즘을 추구하는 사람들에게 tmux는 매우 매력적인 도구임. 그래픽 환경 없이도 강력한 기능을 제공함.
  • tmuxKitty를 함께 사용하면, 각 도구의 장점을 최대한 활용할 수 있음. 예를 들어, Kitty를 로컬에서 사용하고, 원격 서버에서는 tmux를 사용하는 방식이 있음.
Hacker News 의견

해커뉴스 댓글 모음 요약

  • "키 입력을 두 번 파싱하는 것이 CPU 사이클을 낭비하고 배터리를 소모하는 주요 원인이라고 생각하지 않음. Kitty가 tmux의 기능을 대부분 내장하고 있지만, SSH 작업을 하는 사람들에게는 큰 도움이 되지 않음. 터미널 에뮬레이터에 모든 것을 묶는 것은 불필요한 기능 추가로 보임."

  • "tmux를 실제로 필요로 하는 이유는 원격 지속성 때문임. 서버 연결이 끊어져도 vim 세션을 잃고 싶지 않음."

  • "tmux의 킬러 기능은 쉘뿐만 아니라 작업 공간을 지속시키는 것임. Kitty와 screen은 이 문제를 해결하지 못함. 터미널 에뮬레이터 기반의 작업 공간 지속성이 있다면 tmux를 버릴 것임."

  • "Kitty의 개발자인 Kovid Goyal은 tmux를 좋아하지 않음. Kitty는 tmux의 기능을 대부분 포함하고 있지만, 원격 지속성은 제공하지 않음. 터미널 에뮬레이터에 의존하면 다른 에뮬레이터로 전환할 때 새로운 근육 기억이 필요함."

  • "기본적인 screen이나 tmux 사용법(시작, 창 생성 및 전환, 연결 재설정)은 서버에 SSH 접속이 필요한 사람의 도구 키트에 포함되어야 함. 특히 스타트업에서는 시스템을 이해하고 창의적이고 효율적으로 작업할 수 있어야 함."

  • "~/.ssh/config에 설정을 추가하여 SSH 세션을 단일 연결로 다중화할 수 있음. 첫 번째 세션에 지문 인증을 사용하고, 이후에는 300초 동안 인증 없이 연결 가능함. Tailscale을 통해 오프라인 상태에서도 세션을 유지할 수 있음."

  • "SSH의 가장 큰 가치는 긴 작업이 연결 끊김에도 불구하고 지속될 수 있다는 점임. 긴 다운로드 작업이 거의 끝나갈 때 연결이 끊기는 것은 매우 좌절스러움."

  • "Windows에서 호스트 OS로 사용하고 Linux에서 작업함. tmux를 사용하여 여러 쉘을 실행함. 성능 문제는 있지만, 생산성 측면에서 매우 유용함."

  • "원격 SSH를 위해 .ssh/config 설정을 사용하여 자동으로 원격 tmux를 시작함. 불안정한 연결에서도 작업을 저장할 수 있음. tmux를 매일 사용하며 다른 대안을 찾지 못함."

  • "Kovid의 의견이 기술적으로 맞을 수 있지만, 사용성 측면에서는 틀림. 사용자는 삶을 더 간단하게 만드는 것을 선호함. zellij를 시도했지만 tmux로 돌아옴. tmux는 진입 장벽이 낮음."