📚FOS Study
홈카테고리
홈카테고리

카테고리

  • AI 페이지로 이동
    • RAG 페이지로 이동
    • agents 페이지로 이동
    • BMAD Method — AI 에이전트로 애자일 개발하는 방법론
    • Claude Code의 Skill 시스템 - 개발자를 위한 AI 자동화의 새로운 차원
    • Claude Code 멀티 에이전트 — Teams
    • 멀티모달 LLM (Multimodal Large Language Model)
  • architecture 페이지로 이동
    • 캐시 설계 전략 총정리
    • 디자인 패턴
    • 분산 트랜잭션
  • css 페이지로 이동
    • FlexBox 페이지로 이동
  • database 페이지로 이동
    • mysql 페이지로 이동
    • opensearch 페이지로 이동
    • redis 페이지로 이동
    • 김영한의-실전-데이터베이스-설계 페이지로 이동
    • 커넥션 풀 크기는 얼마나 조정해야할까?
    • 인덱스 - DB 성능 최적화의 핵심
    • 역정규화 (Denormalization)
    • 데이터 베이스 정규화
  • devops 페이지로 이동
    • docker 페이지로 이동
    • k8s 페이지로 이동
    • k8s-in-action 페이지로 이동
    • monitoring 페이지로 이동
  • go 페이지로 이동
    • Go 언어 기본 학습
  • http 페이지로 이동
    • HTTP Connection Pool
  • interview 페이지로 이동
    • 210812 페이지로 이동
    • 뱅크샐러드 AI Native Server Engineer
    • CJ 올리브영 지원 문항
    • CJ 올리브영 커머스플랫폼유닛 Back-End 개발 지원 자료
    • 마이리얼트립 - Platform Solutions실 회원주문개발 Product Engineer
    • NHN 서비스개발센터 AI서비스개발팀
    • nhn gameenvil console backend 직무 인터뷰 준비
    • 면접을 대비해봅시다
    • Tossplace Node.js Developer
    • 토스플레이스 Node.js 백엔드 컬처핏
  • java 페이지로 이동
    • jdbc 페이지로 이동
    • opentelemetry 페이지로 이동
    • spring 페이지로 이동
    • spring-batch 페이지로 이동
    • 더_자바_코드를_조작하는_다양한_방법 페이지로 이동
    • Java의 로깅 환경
    • MDC (Mapped Diagnostic Context)
    • OpenTelemetry 란 무엇인가?
    • Java StampedLock — 읽기 폭주에도 쓰기가 밀리지 않는 락
    • Virtual Thread와 Project Loom
  • javascript 페이지로 이동
    • Data_Structures_and_Algorithms 페이지로 이동
    • Heap 페이지로 이동
    • typescript 페이지로 이동
    • AbortController
    • Async Iterator와 제너레이터
    • CommonJS와 ECMAScript Modules
    • 제너레이터(Generator)
    • Http Client
    • Node.js
    • npm vs pnpm 선택기준은 무엇인가요?
    • `setImmediate()`
  • kafka 페이지로 이동
    • Kafka 기본
    • Kafka를 사용하여 **데이터 정합성**은 어떻게 유지해야 할까?
    • 메시지 전송 신뢰성
  • linux 페이지로 이동
    • fsync — 리눅스 파일 동기화 시스템 콜
    • tmux — Terminal Multiplexer
  • network 페이지로 이동
    • L2(스위치)와 L3(라우터)의 역할 차이
    • L4와 VIP(Virtual IP Address)
    • IP Subnet
  • react 페이지로 이동
    • JSX 페이지로 이동
    • VirtualDOM 페이지로 이동
    • v16 페이지로 이동
  • task 페이지로 이동
    • ai-service-team 페이지로 이동
    • nsc-slot 페이지로 이동
    • the-future-company 페이지로 이동
📚FOS Study

개발 학습 기록을 정리하는 블로그입니다.

바로가기

  • 홈
  • 카테고리

소셜

  • GitHub
  • Source Repository

© 2025 FOS Study. Built with Next.js & Tailwind CSS

목록으로 돌아가기
📁linux

tmux — Terminal Multiplexer

약 5분
2026년 3월 24일
GitHub에서 보기

tmux — Terminal Multiplexer

"TMUX Masterclass: Terminal Multiplexing for the AI Agent Era" 영상을 보고 정리한 내용.


tmux가 필요한 이유

일반 터미널 에뮬레이터(iTerm, Terminal.app 등)는 창을 닫으면 프로세스가 종료된다. tmux는 서버 기반 세션 관리를 제공해서 터미널 창을 닫아도 내부 프로세스가 계속 실행된다.

터미널 에뮬레이터:
  창 닫기 → 프로세스 종료

tmux:
  창 닫기(detach) → tmux 서버에서 세션 계속 실행
  다시 접속(attach) → 그대로 재개

개발 서버를 tmux에 올려두면 SSH 연결이 끊겨도, 터미널 앱을 재시작해도 서버는 계속 돌아간다.


3계층 구조

세션 (Session)
  └─ 윈도우 (Window)  ← 탭처럼 전환
       └─ 페인 (Pane)  ← 화면 분할
  • 세션: 가장 상위 단위. 프로젝트 단위로 구성하면 편하다 (백엔드 세션, 프론트엔드 세션 등)
  • 윈도우: 세션 내의 탭. 브라우저 탭과 유사
  • 페인: 윈도우를 수평/수직으로 분할한 단위. 같은 화면에 여러 터미널을 띄울 수 있다

기본 사용법 (터미널에서)

tmux            # 새 세션 시작
tmux new        # 새 세션 시작 (동일)
tmux ls         # 실행 중인 세션 목록
tmux attach     # 세션에 재접속 (tmux a 도 동일)
tmux a -t 이름  # 특정 이름의 세션에 접속

단축키

tmux의 모든 단축키는 Prefix key를 먼저 누른 뒤 입력한다. 기본 Prefix는 Ctrl + b.

세션

단축키동작
Prefix + d세션 빠져나오기 (detach, 세션 종료 아님)
Prefix + s세션 목록 보기 + 전환
Prefix + $세션 이름 변경
Prefix + :newtmux 안에서 새 세션 생성

윈도우

단축키동작
Prefix + c새 윈도우 생성
Prefix + w윈도우 전체 리스트 (선택해서 이동 가능)
Prefix + p이전 윈도우로 이동
Prefix + n다음 윈도우로 이동
Prefix + 0~9번호로 윈도우 바로 이동
Prefix + ,윈도우 이름 변경

페인

단축키동작
Prefix + %수평 분할 (우측에 새 페인)
Prefix + "수직 분할 (아래에 새 페인)
Prefix + 방향키페인 간 이동
Prefix + z현재 페인 최대화 / 원상복구 (zoom toggle)

.tmux.conf 설정

홈 디렉터리의 ~/.tmux.conf 파일로 커스터마이징한다. 변경 후 tmux source ~/.tmux.conf로 적용.

Prefix 키 변경

기본 Ctrl+b는 누르기 불편하다. Ctrl+Space나 Ctrl+a로 바꾸는 경우가 많다.

# Ctrl+Space로 변경
unbind C-b
set -g prefix C-Space
bind C-Space send-prefix

히스토리 늘리기

기본값 2,000줄은 개발 서버 로그 보기에 부족하다.

set -g history-limit 50000

마우스 활성화

마우스로 페인 클릭해서 이동하거나 경계선 드래그로 크기 조절이 가능해진다.

set -g mouse on

VI 키로 페인 이동

hjkl로 페인 간 이동할 수 있게 설정하면 손 이동이 줄어든다.

# Alt + hjkl 로 페인 이동 (Prefix 없이)
bind -n M-h select-pane -L
bind -n M-j select-pane -D
bind -n M-k select-pane -U
bind -n M-l select-pane -R

테마 (Catppuccin)

상태바에 Git 브랜치, CPU, 메모리, 배터리, 시간을 표시하는 테마.

# TPM(Tmux Plugin Manager) 기반 설치
set -g @plugin 'catppuccin/tmux'

AI 에이전트와 tmux 연동

tmux가 AI 에이전트 시대에 다시 주목받는 이유가 여기 있다. tmux 세션을 프로그래매틱하게 제어할 수 있는 CLI 명령어 덕분에, Claude Code 같은 터미널 기반 에이전트가 다른 페인이나 세션을 직접 조작할 수 있다.

핵심 명령어

# 특정 페인으로 명령어 전송
tmux send-keys -t 세션:윈도우.페인 "npm run dev" Enter

# 특정 페인의 출력 캡처
tmux capture-pane -t 세션:윈도우.페인 -p

활용 패턴 1 — 자동 로그 분석

한쪽 페인에 개발 서버, 다른 페인에 Claude Code를 실행해두면:

"0번 페인의 서버 로그를 확인해서 에러 원인 분석해줘"

Claude Code가 capture-pane으로 서버 로그를 직접 읽어와서 분석한다. 로그를 복사해서 붙여넣을 필요가 없다. 다른 세션의 윈도우 로그도 가져올 수 있다.

활용 패턴 2 — 스크립트로 개발 환경 일괄 구성

매번 수작업으로 페인 나누고 서버 올리는 작업을 스크립트로 자동화할 수 있다.

#!/bin/bash
# dev-setup.sh: 백엔드/프론트엔드/에이전트 환경 한 번에 구성

# 백엔드 세션
tmux new-session -d -s backend -n server
tmux send-keys -t backend:server "cd ~/project/backend && npm run dev" Enter

# 프론트엔드 세션
tmux new-session -d -s frontend -n server
tmux send-keys -t frontend:server "cd ~/project/frontend && npm run dev" Enter

# Claude Code 세션
tmux new-session -d -s agent
tmux send-keys -t agent "claude" Enter

tmux attach -t backend

스크립트 하나로 전체 개발 환경이 세팅된다.

활용 패턴 3 — 멀티 에이전트 병렬 실행

여러 페인에 각각 다른 Claude Code 인스턴스를 띄워서 병렬로 작업을 처리할 수 있다. 단일 에이전트의 컨텍스트 한계나 처리 속도 제약을 우회하는 방식이다.

# 3개 에이전트 병렬 실행
tmux split-window -h   # 수평 분할
tmux split-window -v   # 수직 분할

tmux send-keys -t 0 "claude --task 'API 구현'" Enter
tmux send-keys -t 1 "claude --task '테스트 작성'" Enter
tmux send-keys -t 2 "claude --task '문서 작성'" Enter

관련 도구

  • TPM (Tmux Plugin Manager): 플러그인 관리자. ~/.tmux/plugins/tpm
  • yazi: 터미널 파일 탐색기. tmux 단축키로 연동하면 Prefix + Tab으로 즉시 파일 탐색 가능
  • tmuxinator: YAML로 복잡한 세션 레이아웃을 정의해서 재사용하는 도구
linux 카테고리의 다른 글 보기수정 제안하기

댓글

댓글을 불러오는 중...
목차
  • tmux — Terminal Multiplexer
  • tmux가 필요한 이유
  • 3계층 구조
  • 기본 사용법 (터미널에서)
  • 단축키
  • 세션
  • 윈도우
  • 페인
  • .tmux.conf 설정
  • Prefix 키 변경
  • Ctrl+Space로 변경
  • 히스토리 늘리기
  • 마우스 활성화
  • VI 키로 페인 이동
  • Alt + hjkl 로 페인 이동 (Prefix 없이)
  • 테마 (Catppuccin)
  • TPM(Tmux Plugin Manager) 기반 설치
  • AI 에이전트와 tmux 연동
  • 핵심 명령어
  • 특정 페인으로 명령어 전송
  • 특정 페인의 출력 캡처
  • 활용 패턴 1 — 자동 로그 분석
  • 활용 패턴 2 — 스크립트로 개발 환경 일괄 구성
  • dev-setup.sh: 백엔드/프론트엔드/에이전트 환경 한 번에 구성
  • 백엔드 세션
  • 프론트엔드 세션
  • Claude Code 세션
  • 활용 패턴 3 — 멀티 에이전트 병렬 실행
  • 3개 에이전트 병렬 실행
  • 관련 도구