GN⁺: Tmux는 "더 나쁜 것이 더 좋은 것"임
(hiandrewquinn.github.io)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는 매우 매력적인 도구임. 그래픽 환경 없이도 강력한 기능을 제공함.
- tmux와 Kitty를 함께 사용하면, 각 도구의 장점을 최대한 활용할 수 있음. 예를 들어, 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는 진입 장벽이 낮음."