본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 26. 05:06

Claude Code에서 여러 계정 사용하기: 완전한 설정 방법

요약

Claude Code에서 여러 계정을 독립적으로 사용하기 위해 환경 변수를 활용하는 방법을 설명합니다. CLAUDE_CONFIG_DIR를 재정의하여 계정별로 인증 토큰과 설정을 분리하는 셸 별칭(alias) 설정법을 다룹니다.

핵심 포인트

  • CLAUDE_CONFIG_DIR 환경 변수로 설정 디렉토리 재정의 가능
  • 셸 별칭(alias)을 이용한 계정별 독립 인스턴스 생성 방법
  • NVM 업데이트 시 경로 깨짐을 방지하기 위한 상대 경로 사용 권장
  • 프로젝트 수준 설정(.claude/)은 계정 간 공유될 수 있음에 유의

개인용 Claude Code 구독과 업무용 구독을 모두 가지고 있습니다. 또는 각각 자신의 API 키를 제공하는 두 명의 클라이언트에게 프리랜서로 일하고 있을 수도 있습니다. 혹은 메인 설정(config)을 오염시키지 않고 실험을 위한 샌드박스(sandboxed) 계정을 원할 수도 있습니다.

이유가 무엇이든, Claude Code에는 내장된 "계정 전환 (switch account)" 명령어가 포함되어 있지 않습니다. 하지만 아키텍처 덕분에 작업은 간단합니다. 모든 것이 단일 설정 디렉토리(config directory)에 저장되므로, 이를 리다이렉트(redirect)할 수 있습니다.

Claude Code가 상태를 저장하는 방식

Claude Code는 기본적으로 모든 상태를 ~/.claude에 저장합니다. 여기에는 다음이 포함됩니다:

  • 인증 토큰 (Authentication tokens)
  • 프로젝트 수준 설정 (각 리포지토리 내부의 .claude/)
  • 대화 기록 (Conversation history)
  • 메모리 파일 (Memory files)
  • MCP 서버 설정 (MCP server configs)

핵심 통찰: CLAUDE_CONFIG_DIR 환경 변수는 Claude Code가 이 모든 것을 찾는 위치를 재정의(override)합니다. 이를 다른 곳으로 지정하면 완전히 독립된 인스턴스를 얻을 수 있습니다.

기본 설정: 셸 별칭 (shell aliases)

계정당 하나의 설정 디렉토리를 생성합니다:

mkdir -p ~/.claude-personal
mkdir -p ~/.claude-work

Claude 바이너리 경로를 찾습니다:

which claude
# 예: /Users/you/.nvm/versions/node/v22.15.0/bin/claude

~/.zshrc (또는 ~/.bashrc)에 별칭(alias)을 추가합니다:

alias claude-personal='CLAUDE_CONFIG_DIR=~/.claude-personal claude'
alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work claude'

셸을 다시 로드합니다:

source ~/.zshrc

그런 다음 각각 별도로 인증합니다:

claude-personal   # 세션 내부에서 /login 실행
claude-work       # 세션 내부에서 /login 실행

이제 각 별칭은 고유한 인증, 메모리 및 설정을 가진 Claude Code를 엽니다.

별칭 방식의 한계점

별칭 트릭은 작동하지만, 실제 운영 환경(production use)에서 문제를 일으킬 수 있는 빈틈이 있습니다.

문제 1: NVM 버전 업그레이드가 절대 경로를 깨뜨림

많은 가이드에서 제안하는 것처럼 별칭에 바이너리 경로를 하드코딩하면, NVM을 통해 Node를 업그레이드할 때 조용히 작동이 중단됩니다. 절대 경로 대신 그냥 claude를 사용하고 $PATH가 이를 해결하도록 하세요:

# 취약함 (fragile)
alias claude-work='CLAUDE_CONFIG_DIR=~/.claude-work /Users/you/.nvm/versions/node/v22.15.0/bin/claude'

...

문제 2: 계정 간 프로젝트 수준 설정 유출 (project-level config leaks)

Claude Code는 프로젝트 저장소(repo) 내부에 .claude/ 디렉토리를 생성합니다. 해당 디렉토리에는 프로젝트 설정, CLAUDE.md, 그리고 settings.json이 저장됩니다. 이 파일들은 설정 디렉토리가 아닌 저장소 내에 존재하기 때문에, 모든 alias(별칭)에서 공유됩니다.

이는 업무용 계정과 개인용 계정이 동일한 프로젝트 수준의 지침(instructions)을 보게 된다는 것을 의미합니다. 보통은 문제가 없지만, 프로젝트별로 계정에 따라 서로 다른 MCP 서버나 권한이 필요한 경우에는 다르게 처리해야 합니다 (아래의 래퍼 스크립트(wrapper script) 섹션 참조).

문제 3: 훅(hooks) 및 MCP 서버는 설정 디렉토리(config-dir)별로 관리됨

만약 ~/.claude/settings.json에 커스텀 훅(hooks)이나 MCP 서버를 설정했다면, 새로운 설정 디렉토리에는 해당 내용이 존재하지 않습니다. 공유하고 싶은 부분은 복사하거나 심볼릭 링크(symlink)를 생성해야 합니다:

# 계정 간에 훅(hooks) 공유하기
ln -s ~/.claude/settings.json ~/.claude-work/settings.json

또는, 계정마다 서로 다른 훅을 사용하고 싶다면 복사하여 커스텀화하세요:

cp ~/.claude/settings.json ~/.claude-work/settings.json

문제 4: 메모리(memory)가 전송되지 않음

각 설정 디렉토리는 고유한 메모리 시스템을 가집니다. 개인용 계정은 업무용 계정이 학습한 내용을 기억하지 못합니다. 메모리 사용량이 많은 워크플로우를 사용하는 경우, 이러한 격리는 때로는 기능(feature)이 되기도 하고 때로는 문제(problem)가 되기도 합니다.

더 나은 접근 방식: 래퍼 스크립트 (wrapper script)

단순한 alias 대신, 작은 래퍼 스크립트를 사용하면 검증 기능이 포함된 계정 전환을 할 수 있습니다:

#!/usr/bin/env bash
# ~/bin/claude-switch 로 저장하고 chmod +x 실행

...

사용법:

claude-switch work
claude-switch personal --resume
claude-switch work -p "fix the login bug"

이 방식은 모든 인자(arguments)를 그대로 전달하므로, --resume, --print, -p와 같은 플래그(flags)가 모두 정상적으로 작동합니다.

프로젝트별 계정 기본값 (Per-project account defaults)

특정 저장소(repo)가 항상 특정 계정을 사용해야 한다면, (direnv를 사용하는 경우) .envrc 파일에 설정할 수 있습니다:

# /path/to/work-project/.envrc
export CLAUDE_CONFIG_DIR="$HOME/.claude-work"

이제 해당 프로젝트로 cd하여 claude를 실행할 때마다 자동으로 업무용 계정을 사용하게 됩니다. 별도의 별칭(alias)이 필요 없습니다.

direnv를 사용하지 않는다면, 프로젝트의 셸 히스토리(shell history)나 셸이 불러오는(source) 로컬 .env 파일에 추가할 수 있습니다.

API 키 계정 vs OAuth 계정

Claude Code에는 두 가지 인증 모드가 있으며, 이는 멀티 계정 설정과 서로 다르게 상호작용합니다:

OAuth (기본값): /login을 실행하고 Anthropic의 웹 플로우를 통해 인증합니다. 토큰은 설정 디렉토리(config directory)에 저장됩니다. 이것이 대부분의 사용자가 Claude Pro/Max 구독과 함께 사용하는 방식입니다.

API 키 (API key): ANTHROPIC_API_KEY를 환경 변수(environment variable)로 설정합니다. 이는 설정 디렉토리의 인증 과정을 완전히 우회합니다.

API 키 설정의 경우, 인증을 위해 별도의 설정 디렉토리가 필요하지도 않습니다. 단순히 키만 교체하면 됩니다:

alias claude-client-a='ANTHROPIC_API_KEY=$CLIENT_A_KEY claude'
alias claude-client-b='ANTHROPIC_API_KEY=$CLIENT_B_KEY claude'

하지만 격리된 메모리(memory), 훅(hooks), 또는 MCP 서버가 필요한 경우에는 여전히 별도의 설정 디렉토리를 사용하는 것이 좋습니다.

두 방식의 결합: API 키 + 설정 격리

프리랜서나 컨설턴트를 위한 가장 강력한 설정 방법입니다:

# ~/.zshrc
export CLIENT_A_KEY="sk-ant-..."  # 또는 시크릿 매니저(secrets manager)에서 가져오기

...

각 클라이언트는 다음을 갖게 됩니다:

  • 고유한 API 키 (결제가 올바른 곳으로 청구됨)
  • 고유한 메모리 (클라이언트 컨텍스트가 분리되어 유지됨)
  • 고유한 MCP 서버 (클라이언트마다 다른 도구 사용)
  • 고유한 훅 (클라이언트마다 다른 코드 리뷰 표준 및 워크플로우 적용)

계정 동시 실행

여러 개의 Claude Code 인스턴스를 각각의 터미널 탭에서 병렬로 실행할 수 있습니다. 설정 디렉토리가 독립적이므로 잠금(locking)이나 충돌이 발생하지 않습니다.

# 터미널 1
claude-work

...

두 세션은 서로 간섭 없이 동시에 실행됩니다. 이는 한 계정에서 긴 작업이 진행되는 동안 다른 계정으로 다른 작업을 하고 싶을 때 유용합니다.

빠른 참조 (Quick reference)

원하는 것설정할 항목
다른 인증 (auth)CLAUDE_CONFIG_DIR
...

더 나아가기: 여러 개의 Claude Desktop 인스턴스

위의 모든 내용은 Claude Code (CLI)에 관한 것입니다. 만약 **Claude 데스크톱 앱 (Claude desktop app)**도 사용 중이며, 서로 다른 계정으로 두 개의 인스턴스를 나란히 실행하고 싶다면 접근 방식이 다릅니다. 앱 자체를 복제해야 합니다.

macOS에서는 Parallels Toolbox를 사용하여 Claude의 두 번째 복사본 역할을 하는 "앱 바로가기 (app shortcut)"를 만들 수 있습니다. 각 복사본은 자체적인 로그인 세션을 유지하므로, 로그아웃과 로그인을 반복할 필요 없이 한 창에서는 업무용 계정을, 다른 창에서는 개인용 계정을 실행할 수 있습니다. 이 가이드 영상에서 전체 설정 과정을 확인할 수 있습니다.

과정은 다음과 같습니다: Parallels Toolbox를 열고, Claude를 가리키는 앱 바로가기를 생성한 뒤, 별도의 이름(예: "Claude Work")을 지정합니다. 그 다음 macOS 보안 설정에서 승인하고 두 번째 계정으로 로그인합니다. 두 인스턴스는 독(dock)에 표시되며 독립적으로 실행됩니다.

이는 CLI 멀티 계정 설정과 잘 결합됩니다. 터미널 작업에는 CLAUDE_CONFIG_DIR 별칭(alias)을 사용하고, 데스크톱 GUI에는 Parallels 앱 바로가기를 사용하세요.

내가 실제로 사용하는 방식

두 개의 설정 디렉토리를 사용합니다: 개인 프로젝트용으로는 ~/.claude-personal, 클라이언트 업무용으로는 ~/.claude-work를 사용합니다. Direnv가 프로젝트별로 전환을 처리해주므로, 저는 그냥 claude라고 입력하기만 하면 올바른 계정이 선택됩니다. 모든 곳에서 동일한 훅(hooks)을 사용하고 싶기 때문에 개인 설정의 settings.json을 업무용 설정에 심볼릭 링크 (symlink)로 연결하지만, 메모리는 별도로 유지됩니다.

전체 설정에는 5분이 걸렸습니다. 가장 오래 걸린 부분은 각 설정 디렉토리를 생성한 후 각 디렉토리에서 /login을 다시 실행해야 한다는 사실을 깨닫는 것이었습니다.

원문은 jguillaumesio.com에 게시되었습니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0