좋은 명명 규칙
10대 규모 서버 함대에 가장 큰 레버리지를 주는 한 가지는 이름을 잘 짓는 것입니다. 나쁜 이름——server1, vps-2, random-vps——은 반쯤 잠든 상태에서 보면 휴대폰 목록을 추측 게임으로 만듭니다. 좋은 이름은 한눈에 어떤 머신이 무엇을 하고 어디 있는지 알려줍니다.
제가 이것저것 시도한 끝에 정착한 형식:
<role>-<env>-<number>-<region>
prod-web-01-sgp
prod-db-01-sgp
stage-web-01-sgp
dev-web-01-local
home-nas
home-pihole 역할을 맨 앞에. 가장 먼저 읽는 부분이니까. 환경이 두 번째——피곤할 때 prod와 staging이 섞이지 않도록. 리전은 가장 덜 변하므로 마지막. 홈랩과 개인 머신은 구조적 명명을 그냥 포기——home-nas면 충분합니다. 100대가 아니라 3대니까요.
제값을 하는 태그
TermAI는 연결마다 여러 태그를 붙일 수 있습니다. 방심하면 과도하게 태깅하게 되고——서버마다 태그 5개씩, 전부 노이즈가 됩니다. 절제가 도움이 됩니다.
저에게 꾸준히 값을 해온 태그:
prod/staging/dev——가장 중요한 필터web/db/worker——두 번째로 중요oncall——현재 로테이션에 있는 머신에 붙이고, 빠지면 떼기. 새벽 2시 목록은 짧아야 합니다.home——개인용과 업무용 분리
붙이기를 멈춘 태그: 리전(이미 이름에 있음), OS 버전(목록 뷰에서는 무관함), nginx 같은 서비스별 태그(신호가 약함). 적은 게 더 낫다.
시각적 구조를 위한 그룹
TermAI의 그룹은 사실상 이름 붙인 폴더입니다——호스트 목록에서 접고 펼 수 있습니다. 저는 평탄하게 유지합니다: 환경마다 그룹 하나(Production / Staging / Dev / Home). 그룹 안에서는 역할 순으로 정렬.
Production은 기본 접힘. 앱을 열 때마다 보이는 게 아니라 의도적으로 펼치고 싶습니다. Home은 기본 펼침——일상 사용 목록이니까.
그룹 중첩은 피합니다. "이 prod-db는 Production → DB 안에 있나, Production → Critical 안에 있나?" 같은 인지 비용은 추가 정리 정돈으로 얻는 가치보다 큽니다. 평탄한 그룹 + 태그가 계층적 그룹보다 더 멀리 확장됩니다.
검색은 분류 체계를 이깁니다
서버가 8~10대를 넘기면, 분류를 고민하기보다 스크롤하는 게 빠릅니다. TermAI 호스트 목록 상단 검색바는 라벨, 호스트, 사용자명, 태그를 모두 매칭합니다. 세 글자만 치면 맞는 서버만 남습니다.
전술적으로, 일상 사용 세트 내에서 3글자 접두사로 유일하게 식별되도록 서버 이름을 지으세요. pro = prod-web-01, nas = home-nas, pi = home-pihole. 세 글자로 모호함이 사라지면, 어떤 연결도 두 번 탭과 한 번 스와이프로 실행할 수 있습니다.
명명이 잘 됐다는 신호는, 목록을 더 이상 읽지 않고 검색바에 터치 타이핑을 시작할 때입니다.
반복 명령을 위한 Snippets
휴대폰에서 치는 쉘 명령은 데스크톱에서 치는 것과 다릅니다. 데스크톱은 탐색과 일회성. 휴대폰은 "매번 같은 다섯 개". 그 다섯 개를 저장하세요.
제가 가장 자주 쓰는 snippets:
journalctl -u nginx --since 1h -n 100——최근 nginx 로그df -h | head——빠른 디스크 점검docker compose ps——뭐가 떠 있는지docker compose logs -f --tail 50 api——특정 서비스 로그 추적sudo systemctl restart caddy——원버튼 "프록시 한 번 차주기"
TermAI의 snippet은 카테고리로 정리되며, 특정 호스트에 핀할 수도 있습니다. 휴대폰 키보드는 영원한 마찰입니다. 이 다섯 명령을 안 치는 것만으로도 모바일 세션 시간 상당 부분을 되찾을 수 있습니다.
휴대폰에 둘 것 vs 랩톱에 둘 것
일부 작업은 그냥 랩톱 거리입니다. 거기에 맞서지 마세요. 휴대폰은 트리아지와 작은 수정용이지, 200줄짜리 Terraform 편집용이 아닙니다.
제 구분:
- 매번 휴대폰: 서비스 재시작. 로그 확인. 프로세스 추적.
top보기. 푸시로 온 Y/n 응답. 나한테 걸려 있는 배포 승인. - 가끔 휴대폰: SFTP로 설정 파일 한 줄 수정. DB 한 줄 쿼리. 원격 tarball 내려받기.
- 매번 랩톱: 주요 스키마 변경. 코드 리뷰. 새 서비스 배포. 실행 전에 100줄짜리 스크롤백을 세 번 다시 읽고 싶은 모든 것.
휴대폰 세션이 3분을 넘기고 있다면, 그건 신호입니다——빨리 끝내든지, 랩톱으로 에스컬레이션하든지. 휴대폰은 "그 일을 한다"에 좋고, "그 일을 생각한다"에는 나쁩니다.
새벽 2시 워크플로
위 모든 걸 합치면, 애초에 TermAI를 만든 시나리오가 됩니다:
- 알람 발생——휴대폰이 진동, 알림에 서버 이름과 문제가 표시됨.
- TermAI 열고, 검색바 탭——서버 이름 3글자 입력. 정확한 호스트가 강조됨.
- 접속——한 번 탭. 앱이 열린 시점에 Tailscale 터널은 이미 올라와 있음.
- Snippet——타이핑 대신, 매칭되는 저장된 명령(로그 / 상태 / 재시작)을 탭.
- 출력 읽고 수정 실행——대개 재시작 명령 하나. 복잡하면 AI 헬퍼에게 설명 요청.
- 확인하고 종료——같은 snippet으로 서비스가 돌아왔는지 다시 검증, 휴대폰 잠그고, 잠.
목표 시간: 휴대폰 꺼내기부터 수정 확인까지 90초 이내. 잘 명명된 함대와 몇 개의 snippets가 있다면 도달 가능합니다. 모바일 SSH의 핵심은, "알람 → 해결" 간격을 침대에서 끝낼 수 있을 만큼 작게 줄이는 데 있습니다.
핵심 요약
- 대규모 정리: 태그와 그룹으로 수십 개의 연결도 탐색 가능
- 스니펫: 자주 쓰는 명령을 빠른 바에 고정해 반복 입력 제거
- 멀티 세션: 여러 활성 세션 사이를 위치 손실 없이 전환
- 호스트별 AI: 어시스턴트가 접속 중인 서버(OS, 최근 출력, 실시간 리소스)에 맞춰 제안
- 안정적 주소: 내장 Tailscale로 각 머신이 네트워크와 무관하게 동일 주소 유지
iOS/Android 무료. 무료 플랜은 AI 5회/일, SSH/SFTP 무제한, Tailscale 내장.