AI 뉴스

여분의 Mac을 Claude Code 전용 제어 환경으로 만드는 단계별 가이드 — 보안과 격리, 자동화까지 한 번에

노동1호 2026. 7. 20. 23:03

mac claude code setup

claude code workstation

들어가며: 왜 "여분의 Mac"인가

AI 코딩 도구를 업무용 메인 머신에 그대로 설치하면, 권한 충돌, 키·환경변수 누설, 무한 루프, 의도치 않은 파일 삭제 같은 사고가 일어났을 때 복구 범위가 메인 머신 전체로 번진다. GeekNews에 올라온 "여분의 Mac을 Claude Code 전용 제어 환경으로 만드는 단계별 가이드"는 이런 리스크를 격리된 하드웨어 한 대로 흡수하는 패턴을 정리한다. 본문은 그 내용을 요약·확장한 실전 적용형 정리다.

개인 데이터가 없는 여분의 Mac에 Claude Code를 설치해, 주 Mac의 SSH와 휴대폰 Claude 앱에서 항상 접근 가능한 독립 실행 환경으로 구성함 컨테이너보다 장비 격리 수준이 높고 Unity와 Mac 전용 GUI 앱도 사용할 수 있어, --dangerously-skip…

1단계: 베어 macOS 최소 설치 — 깨끗한 격리 베이스

여분의 Mac에 macOS를 클린 설치한다. Apple ID는 사인인하되, App Store·iCloud·Messages 동기화는 모두 비활성화한다. 목적은 "AI 에이전트가 깰 수 있는 영역을 최소화"하는 것이다.

  • 디스크 암호화(FileVault) 필수 — 분실·도난 시 디스크 내용 노출 방지.
  • 방화벽 활성화 — 시스템 설정 → 네트워크 → 방화벽에서 "모든 내장 서비스에 대한 연결 차단" ON.
  • 방문자 계정 제거 — 다중 사용자 노출 표면을 0으로.
  • Time Machine은 외장 SSD에만 — 네트워크 백업은 본문 변경 추적 위험.

2단계: Claude Code CLI 설치 + 권한 분리

Claude Code는 Homebrew로 설치하고, 개발자 계정을 별도로 만들어 sudo 권한을 제한한다. 명령 한 줄로 끝나지만 격리는 별도 작업이다.

# 1. Homebrew 설치 (Apple Silicon)

/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

2. Claude Code 설치

brew install claude-code

3. 전용 워크스페이스 디렉터리 생성

mkdir -p ~/ai-sandbox && cd ~/ai-sandbox

4. 첫 실행 및 인증

claude auth login

권한 분리의 핵심은 "메인 계정과 다른 UID"이다. Claude Code가 ~/Documents 같은 디렉터리를 절대 못 보게 막아야 한다. 다음 명령으로 권한을 좁힌다:

# Claude Code 전용 사용자 만들기

sudo dscl . -create /Users/claudeagent

sudo dscl . -create /Users/claudeagent UniqueID 550

sudo dscl . -create /Users/claudeagent PrimaryGroupID 20

sudo dscl . -create /Users/claudeagent UserShell /bin/zsh

sudo dscl . -create /Users/claudeagent NFSHomeDirectory /Users/claudeagent

sudo dscl . -passwd /Users/claudeagent (랜덤 비밀번호)

sudo mkdir -p /Users/claudeagent

sudo chown -R claudeagent:staff /Users/claudeagent

그 사용자로 전환해 claude 실행

sudo -u claudeagent -H bash -c 'cd /Users/claudeagent && claude'

3단계: 네트워크 격리 — Tailscale + 화이트리스트

Claude Code가 임의 호스트에 HTTP 요청을 보내지 못하게 막아야 한다. 가장 실용적인 방법은 Tailscale Funnel + DNS 화이트리스트 조합이다.

  • Tailscale 가입 → 이 머신만 가입, 다른 디바이스와 키 공유 안 함.
  • DNS 오버라이드/etc/resolver/tailscale로 tailscale DNS 강제.
  • Little Snitch 또는 LuLu로 outbound 화이트리스트 — claude.ai / Anthropic API / GitHub만 허용.

이렇게 하면 Claude Code가 임의 도메인으로 POST 요청을 보내려 해도 OS 레벨에서 차단된다.

4단계: 작업 디렉터리 — Git worktree로 메인 프로젝트 격리

Claude Code가 실제 프로젝트를 건드릴 일은 드물지만, 실수 방지를 위해 worktree 기반 분리 워크플로를 쓴다.

# 메인 프로젝트의 작업 사본

git worktree add ~/ai-sandbox/worktree-main main

cd ~/ai-sandbox/worktree-main

Claude가 변경할 때마다 자동으로 커밋

claude --auto-commit-on-change

종료 시 검토

git diff main..HEAD # 안전하면 머지, 아니면 폐기

worktree를 쓰면 메인 브랜치는 손상 없이 Claude의 모든 시도를 별도 브랜치에 격리한다. 잘못된 작업은 git worktree remove로 한 줄 정리.

5단계: 안전장치 — 자동 스냅샷 + 알림

Claude Code 세션 시작 시 외장 SSD로 Time Machine 스냅샷을 만들고, 종료 시 변경된 파일 목록을 메일로 전송하는 훅을 건다.

#!/bin/bash

~/.claude/hooks/snapshot.sh

tmutil startbackup --auto

echo "=== Claude session $(date) ==="

git status --short

git diff --stat

macOS Mail로 본문 전송

mail -s "Claude session diff" me@example.com < <(git diff --stat)

이 훅이 발동하는 시점은 세션 종료뿐 아니라 네트워크 오류 / Claude 응답 지연 / 컨텍스트 윈도우 초과 같은 비정상 종료 케이스에서도 동작하도록 OS 레벨 launchd에 등록한다.

6단계: 운영 팁 — 언제 다시 클린 설치할까

격리 머신이라도 Claude Code가 의존하는 패키지 의존성이 망가지는 순간이 온다. 신호는 다음과 같다:

  • Python 패키지 충돌 — pip install이 "externally-managed-environment" 에러로 실패.
  • Homebrew 권한 충돌 — Apple Silicon에서 /opt/homebrew 권한이 망가짐.
  • macOS 자동 업그레이드 후 Claude Code 호환성 깨짐 — 보통 메이저 macOS 업데이트 직후.

이 신호 중 하나라도 나타나면 30분 안에 클린 재설치하는 게 빠르다. 여분의 Mac이니까 가능한 전략이다.

실용 팁 — 업무용 메인 머신과의 차이

영역메인 머신Claude 전용 머신
Apple ID본인없음 (또는 dummy)
iCloudONOFF
방화벽기본모든 inbound 차단
사용자본인claudeagent (UID 550)
Git 브랜치메인 작업worktree 격리
Time Machine여러 대상외장 SSD 1개

이 차이를 지킬수록 Claude Code 사고가 메인 업무로 번질 가능성이 0에 가까워진다.

전망 — 격리 환경의 미래

여분의 Mac을 통째로 Claude 전용으로 묶는 패턴은, 앞으로 더 보편적인 "에이전트 샌드박스" 형태로 진화할 가능성이 높다. Anthropic 자체도 Claude Code의 샌드박스 모드를 정식 기능으로 제공할 가능성이 있고, macOS Sequoia 이후로는 VM-level 격리(Bare-metal Virtualization)가 OS에 내장될 여지도 있다.

지금은 "여분의 Mac 한 대"로 시작하지만, 1~2년 후엔 "에이전트 격리 OS"가 별도 카테고리로 자리 잡을 수도 있다. 그 흐름의 첫 단계로 본 가이드를 적용하면 충분하다.

요약 — 핵심 5가지

  1. 클린 설치 + 방화벽 + FileVault — 베이스 격리.
  2. 전용 사용자(claudeagent) — UID 분리로 권한 차단.
  3. Tailscale + outbound 화이트리스트 — 네트워크 격리.
  4. git worktree — 코드 변경 격리.
  5. 자동 스냅샷 + 종료 훅 — 복구 가능성 확보.

여분의 Mac 한 대로 Claude Code의 무한 자율성을 안전하게 흡수하는 패턴이다. 다음 AI 에이전트를 도입할 때도 같은 베이스를 재활용할 수 있어, "여분의 머신의 활용도"라는 부가 가치까지 챙길 수 있다.

원문: 긱뉴스 토픽 #31591


📰 원본 출처 · https://news.hada.io/topic?id=31591 (#N=31591)

이 글은 GeekNews(긱뉴스)에 게제된 글을 기반으로 작성되었습니다. 원본의 라이선스와 저작권은 원작자에게 있습니다.