노트북은 화면만,
실행은 서버에서
AI한테 큰 작업을 시켜놓고 노트북을 덮으면… 작업이 통째로 날아갑니다.
원격 접속(SSH)만으로는 부족합니다. 세션을 붙잡아 주는 도구가 있어야 끊겨도 살아남습니다.
서버가 맥이면 tmux, 윈도우면 psmux — 쓰는 법은 거의 같습니다.
노트북을 덮는 순간, 작업이 죽습니다
Claude Code 같은 AI 코딩 도구로 오래 걸리는 작업을 걸어놨다고 해봅시다. 30분짜리 코드 수정, 1,000개짜리 데이터 처리 같은 것들요. 이때 노트북을 덮거나, 카페 Wi-Fi가 끊기면? 작업이 통째로 날아갑니다. 작업이 내 노트북 위에서 돌고 있었으니까요.
그래서 작업이 끝날 때까지 노트북 앞을 못 떠납니다. 이 문제, 집에 서버(늘 켜져 있는 컴퓨터 — 맥미니 등)가 한 대 있다면 구조적으로 없앨 수 있습니다. 방법은 간단합니다: 실행은 서버에서 하고, 노트북으로는 화면만 보는 겁니다.
참고로 노트북은 맥이든 윈도우든 상관없습니다. 화면만 보는 쪽이니까요 — 원격 접속(SSH) 기능은 요즘 맥과 윈도우 양쪽 다 기본 내장입니다.
ssh 한 줄이면 끝이에요.공장, 전화선, 그리고 작업반장
용어 세 개만 비유로 정리하면 나머지는 술술 풀립니다.
SSH(에스에스에이치)는 다른 컴퓨터의 터미널을 내 화면으로 끌어오는 원격 접속 통로입니다. 그런데 여기서 초보자가 제일 많이 오해하는 게 있습니다 — SSH는 통로일 뿐, 작업을 붙잡아 주지 않습니다. 전화가 끊기면(노트북 덮기, Wi-Fi 끊김) 그 통로로 하던 일도 같이 끊깁니다.
그래서 서버 쪽에 세션 매니저가 필요합니다. 세션(작업 화면 한 판)을 서버에 살려두는 도구인데, 맥·리눅스는 tmux(티먹스), 윈도우는 psmux(피에스먹스)입니다. 전화가 끊겨도 작업반장이 공장에서 일을 계속 진행하고, 나중에 다시 전화하면 하던 화면 그대로 보여줍니다.
헷갈리기 쉬운 구분 하나 더: 터미널 앱(기본 터미널, Ghostty, CMUX 등)은 화면을 그리는 것이고, 세션 매니저(tmux, screen, herdr)는 세션을 유지하는 것입니다. 층이 달라서 경쟁 관계가 아니라 함께 쓰는 관계예요. 그리고 세션 매니저는 반드시 서버 쪽에 설치해야 합니다 — 노트북에 깔아봐야 소용없습니다. 일이 돌아가는 곳(공장)에 작업반장이 있어야 하니까요.
그래서 무엇을 깔지는 오직 "서버의 운영체제"로 정해집니다. 내 노트북이 무엇인지는 상관없어요:
| 서버가 | 설치할 것 | 설치 명령 (서버에서 한 번만) |
|---|---|---|
| 맥 · 리눅스 | tmux | 맥 brew install tmux · 리눅스 sudo apt install tmux |
| 윈도우 | psmux 윈도우 전용으로 새로 만든 tmux | winget install psmux (PowerShell에서) |
| 윈도우 + WSL | WSL 안의 tmux | sudo apt install tmux (WSL 터미널 안에서) |
Ctrl+B)와 명령이 tmux와 같습니다. 설치하면 psmux·pmux·tmux 세 이름이 다 생겨서, 윈도우에서도 tmux new -s 작업이름이 그대로 동작해요. 그래서 이 글의 나머지 명령은 맥·윈도우 공통입니다.단, 윈도우인데 WSL(윈도우 안의 리눅스) 안에서 작업한다면 세션 매니저도 WSL 안에 tmux로 깔아야 합니다 — 작업이 도는 층과 작업반장이 있는 층이 같아야 하니까요. WSL이 뭔지 모르겠다면 안 쓰고 있는 것이니 psmux를 쓰면 됩니다.
반대로 노트북 쪽 터미널 앱은 아무거나 써도 됩니다. 화면을 그리는 도구일 뿐이라 서버 쪽 tmux와는 무관해요:
| 내 노트북 | 쓸 수 있는 터미널 앱 |
|---|---|
| 맥 | 기본 터미널 · iTerm2 · Ghostty · Warp |
| 윈도우 | Windows Terminal(기본 탑재) · Tabby · WezTerm |
| 공통 | VS Code 안의 내장 터미널도 OK |
실습 순서 — 이 순서가 중요합니다
순서가 뒤바뀌면 작동하지 않습니다. 특히 "tmux 세션을 먼저 만들고, 그 안에서 도구를 실행한다"는 순서가 핵심입니다.
(2번에서 접속이 안 되면 아래 "서버가 전화를 받게 켜 두기"를 먼저 하고 오세요.)
서버에 작업반장 설치 (한 번만)
서버가 맥이면 brew install tmux, 윈도우면 winget install psmux. 노트북이 아니라 서버에 설치합니다(맥에 Homebrew가 없다면 아래 "설치 선택지" 참고).
노트북에서 서버로 접속
ssh 사용자명@서버주소 — 맥은 기본 터미널, 윈도우는 Windows Terminal에서 그대로 치면 됩니다. 이제 노트북 터미널에 보이는 건 서버의 화면입니다. (같은 Wi-Fi 안이면 서버의 내부 주소, 집 밖이면 아래 "집 밖에서 붙기"의 주소를 씁니다.)
세션을 먼저 만든다
tmux new -s 작업이름 — "작업반장, 이 이름으로 일 하나 맡아줘"라고 세션을 만드는 겁니다. 화면이 살짝 바뀌면서 아래에 초록 띠가 생기면 성공.
그 안에서 AI 도구 실행
cd 프로젝트폴더 → Claude Code 등 도구 실행. 이제 이 작업은 tmux 세션 안에 담겨 있습니다.
나올 때는 detach
Ctrl+B 누르고 손을 뗀 뒤 D — "작업은 계속해, 나는 화면만 빠질게"(detach·디태치)입니다. 이제 노트북을 덮어도, Wi-Fi가 끊겨도 서버에서 작업은 계속 돕니다.
돌아올 때는 attach
다시 ssh 사용자명@서버주소 접속 후 tmux attach -t 작업이름 — 하던 화면 그대로 돌아옵니다. 카페에서 걸어놓고 집에 가서 이어서 보는 게 이겁니다.
명령어 5개면 충분합니다
| 명령 | 하는 일 |
|---|---|
tmux new -s 이름 | 이름 붙인 세션 생성 + 진입 |
tmux ls | 살아 있는 세션 목록 보기 |
tmux attach -t 이름 | 해당 세션으로 복귀 |
Ctrl+B → D | 세션 살려두고 화면만 나오기 (제일 중요) |
tmux kill-session -t 이름 | 세션 완전 종료 (작업도 같이 끝남) |
초보자가 하는 실수 3가지
나올 때 exit를 친다
exit→ 세션이 종료되고 안에서 돌던 작업도 같이 죽습니다
- 반드시
Ctrl+B→D(detach) — 작업은 살고 화면만 나옵니다
돌아와서 도구를 다시 실행한다
- 새 세션이 하나 더 생깁니다 — 아까 그 작업이 아니에요
tmux attach -t 이름만 치면 하던 화면 그대로입니다 (이름이 기억 안 나면tmux ls)
SSH 접속하자마자 바로 도구를 실행한다
- tmux 밖이라 세션에 안 담깁니다 — 연결 끊기면 그대로 사라져요
- tmux 먼저, 도구는 그 안에서. 순서만 기억하면 됩니다
세션 매니저, 뭘 깔까
서버가 윈도우면 psmux 하나로 정리됩니다(winget install psmux). 아래는 서버가 맥일 때의 선택지 3가지입니다.
서버가 전화를 받게 켜 두기
전화선을 쓰려면 받는 쪽 전화기가 켜져 있어야겠죠. 서버에서 한 번만 해 두면 됩니다.
| 서버가 | 할 일 |
|---|---|
| 맥 | 시스템 설정 → 일반 → 공유 → 원격 로그인 켜기. 그 화면에 사용자명@주소 형태의 접속 주소가 같이 표시됩니다 |
| 윈도우 | 관리자 PowerShell에서 Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0 → Start-Service sshd; Set-Service -Name sshd -StartupType Automatic. 주소는 ipconfig의 IPv4 주소 |
카페·회사에서 집 서버에 붙는 법
위까지 하면 같은 Wi-Fi 안(집 안)에서는 붙습니다. 집 밖에서는 주소가 달라서 안 붙는데, 방법이 셋 있습니다 — 위에서부터 쉽고 안전한 순서이니 1번이 되면 1번만 하세요.
Tailscale — 집 밖에서도 집 안인 것처럼 (추천)
내 기계들끼리만 통하는 사설 통로를 만들어 주는 무료 프로그램입니다. 공유기 설정을 하나도 건드리지 않고, 인터넷에 아무것도 열지 않으면서 집 밖에서 붙을 수 있습니다.
하는 법: ① tailscale.com/download에서 서버와 내 노트북 양쪽에 설치 → ② 양쪽 다 같은 계정으로 로그인 → ③ 끝. 개인 용도는 무료입니다(기기 수 제한 없음).
설치하면 서버에 어디서든 안 바뀌는 주소가 생깁니다. 앱에 보이는 100.x.x.x 주소나 기계 이름을 그대로 쓰세요 — ssh 사용자명@100.101.102.103. 카페·회사·LTE 어디서든 같은 명령으로 붙습니다.
VS Code 터널 — 브라우저만 있으면
Tailscale 설치가 막히거나(회사 보안 정책 등) 남의 컴퓨터에서 잠깐 봐야 할 때 씁니다. 서버에서 code tunnel을 한 번 실행해 두면(VS Code에 들어 있습니다), 깃허브 계정 인증 뒤 vscode.dev/tunnel/… 주소가 나옵니다.
그 주소를 다른 PC 브라우저에서 열면 VS Code 화면이 뜨고, 그 안의 터미널에서 tmux attach -t 작업이름을 치면 하던 작업 그대로입니다. 따로 설치할 게 없다는 점이 장점입니다.
공유기 포트 열기(포트포워딩) — 권하지 않음
예전부터 쓰던 방법이지만, 내 컴퓨터의 문을 인터넷 전체에 대고 여는 것이라 자동 침입 시도가 곧바로 들어옵니다. 굳이 한다면 비밀번호 로그인은 끄고 키 로그인만 허용하세요. 1번이 되면 1번을 쓰는 게 훨씬 낫습니다.
서버에서 실제 서비스가 돌고 있다면
4줄 요약
SSH는 화면을 잇는 전화선일 뿐, 작업을 붙잡아 주지 않습니다.
작업반장은 서버 쪽에 — 맥이면 tmux, 윈도우면 psmux(명령은 똑같습니다).
나올 땐 exit 말고 Ctrl+B → D — 그러면 노트북을 덮어도 작업은 살아 있습니다.
집 밖에서는 Tailscale만 양쪽에 깔면 어느 PC에서든 같은 작업으로 돌아옵니다.