서론
오늘 사내에서 AI 지원 정책이 임시 확정되었습니다. 클로드 코드 맥스, 커서 프로, GPT Plus를 모두 개인 계정으로 지원해주기로 했습니다.
기존에 사용하던 AI 구독료가 굳어서 횡재했다~ 라는 생각을 잠시 했지만, 회사 입장에서는 개인용으로 사용하는 것을 꺼려할 수도 있을 것 같아요. 그래서 개인 계정 구독을 취소하지 않기로 했습니다.
GPT는 GUI로 사용해서 브라우저를 분리하면 되고, 커서도 프로세스별로 다른 계정을 로그인하도록 구성하면 될 것 같은데, 로컬에서 로그인해서 사용하는 CLI 기반의 클로드 코드는 어떻게 다중 접속을 지원하는지 확인이 필요했습니다.
Reddit의 ClaudeAI 커뮤니티
ClaudeAI 커뮤니티에서 이 게시물을 비롯한 다양한 콘텐츠를 살펴보세요
www.reddit.com
음.. 일단 안해주는 것 같군요 그럼 직접 구성해봅시다.
목표
개인 계정과 회사 계정을 환경적으로 분리하고, 클로드 코드 사용은 기존과 동일하게 CLI 명령어로 동작하도록 구성하고 싶었습니다.
그리고 ccusage를 통해 사용량을 보고 있었기 때문에, ccusage도 환경별로 세팅하고 싶었구요.
Docker
독립적인 환경? 바로 컨테이너가 생각났습니다.
# Dockerfile
FROM node:22-slim
# 회사용 Claude Code CLI + ccusage
RUN npm install -g @anthropic-ai/claude-code ccusage
WORKDIR /workspace
CMD ["bash"]
도커 파일을 생성했고, 버전에 따라 설정 경로가 달라질 수 있기 때문에 클로드 코드에 필요한 토큰/환경 설정 디렉토리들을 볼륨으로 설정해서 보존했습니다. 또한 서비스 이름/볼륨 이름 모두 고정하여, 폴더가 바뀌어도 같은 볼륨을 사용할 수 있도록 구성했어요.
# docker-compose.yml
name: claude_company
services:
claude-work:
build: .
tty: true
stdin_open: true
working_dir: /workspace
restart: unless-stopped
command: ["bash","-lc","tail -f /dev/null"] # 데몬처럼 유지
environment:
CLAUDE_CONFIG_DIR: /root/.claude # 설정/토큰 경로를 하나로 고정
volumes:
- ./:/workspace
- claude_work_state:/root/.claude # 메인 저장소(토큰/설정)
volumes:
claude_work_state:
name: claude_work_state
실행 스크립트
최초에 구성하고 실행했더니, CLI로 실행한 디렉토리 루트의 경로를 워크스페이스로 인식하지 않고, 컨테이너 내부의 /workspace를 경로로 인식하는 문제가 있었습니다.
호스트의 현재 프로젝트 루트 경로를 컨테이너에서도 똑같은 절대 경로를 사용하게 하기 위해서 다음과 같이 래핑하여 구성하였습니다.
# ~/bin/claude-company
#!/usr/bin/env bash
set -euo pipefail
PROJECT_DIR="$PWD"
UTIL_DIR="$HOME/Desktop/company-docker" # 실제 경로/대소문자 확인(Desktop)
cd "$UTIL_DIR"
run_compose () {
# 동일 절대경로 마운트 + 동일 절대경로에서 실행
if [ -t 0 ]; then
docker compose run --rm \
-v "$PROJECT_DIR":"$PROJECT_DIR" \
-w "$PROJECT_DIR" \
claude-work "$@"
else
docker compose run -T --rm \
-v "$PROJECT_DIR":"$PROJECT_DIR" \
-w "$PROJECT_DIR" \
claude-work "$@"
fi
}
subcmd="${1-}"
if [ "$subcmd" = "ccusage" ]; then
shift
run_compose ccusage "$@"
else
run_compose claude "$@"
fi
mkdir -p ~/bin
chmod +x ~/bin/claude-company
echo 'export PATH="$HOME/bin:$PATH"' >> ~/.zshrc && source ~/.zshrc
which claude-company
실행
cd ~/Desktop/company-docker
docker compose up -d
docker compose run --rm claude-work claude login
## 성공!!
# 1) Claude account with subscription
# 2) Anthropic Console account
도커 컨테이너를 띄워서, 로그인을 시키고 세팅을 완료했습니다.
확인해보면, 개인 계정(위)과 회사 계정의 기본 세팅이 다른 것을 볼 수 있죠.


ccusage도 잘 동작합니다. 위 사진이 개인 계정(내용이 많아서 짤랐습니다.), 아래가 회사 계정이에요.


도커로 띄워야하나? 로컬로 변경
하필 다 만들고 보니 도커는 기본 메모리 사용량이 엄청 높아서, 굳이 도커로 사용해야하나 라는 생각이 들었습니다.(진작 좀 생각하지 ㅡㅡ)
https://github.com/anthropics/claude-code/issues/261
이미 이슈화 되어있는 내용이길래, 개발할 때 환경 변수를 분리하듯이, 토큰/설정만 분리해주면 된다는 것을 뒤늦게 깨달았습니다.
같은 claude를 실행하면서 실행 전에 바라보는 환경 변수 세팅만 다르게 해주면 되는거였어요
개인 계정은 그냥 그대로 사용할거니, 회사 계정만 따로 세팅했습니다. 셸 함수를 간단하게 설정했어요.
# nano ~/.zshrc
claude-company() { CLAUDE_CONFIG_DIR="$HOME/.claude-company" claude "$@"; }
ccusage-company() { CLAUDE_CONFIG_DIR="$HOME/.claude-company" ccusage "$@"; }
# source ~/.zshrc (적용)
이대로 다시 로그인해서 사용하면 되지만, 저는 이미 도커라이징된 클로드가 있었어서, 도커에 있는 볼륨을 카피해서 사용했습니다.
# 회사 디렉터리 생성
mkdir -p ~/.claude-company
# compose 폴더에서(예: ~/Desktop/company-docker)
cd ~/Desktop/company-docker
docker compose run --rm -v "$HOME/.claude-company":/host claude-work \
bash -lc 'cp -a ~/.claude/. /host/'
# 권한도 부여합시다.
chmod 700 ~/.claude-company
find ~/.claude-company -type d -exec chmod 700 {} \;
find ~/.claude-company -type f -exec chmod 600 {} \;
CCUSAGE를 위한 추가 설정
ccusage는 찾아보니, API로 계정 조회를 하는 것이 아니라, 로컬에 쌓인 클로드 코드 프로젝트 로그 디렉토리를 스캔해서 집계하는 것 같았습니다. (아니라면 피드백 부탁드립니다.)
그래서 회사 계정용 디렉토리를 따로 생성해서, 거기서 보관하면 되지 않을까 생각했어요. 회사 전용 파일을 래핑하고
# 회사 전용 홈 준비(한 번만)
mkdir -p ~/.company-home/.claude ~/.company-home/.config/claude
rsync -a ~/.claude-company/ ~/.company-home/.claude/
rsync -a ~/.claude-company/ ~/.company-home/.config/claude/
find ~/.company-home -type d -exec chmod 700 {} \;
find ~/.company-home -type f -exec chmod 600 {} \;
# ~/bin/ccusage-company (파일 래퍼)
mkdir -p ~/bin
cat > ~/bin/ccusage-company <<'SH'
#!/usr/bin/env bash
set -euo pipefail
env -u ANTHROPIC_API_KEY -u ANTHROPIC_API_KEY_FILE -u ANTHROPIC_API_KEY_PATH \
HOME="$HOME/.company-home" \
XDG_CONFIG_HOME="$HOME/.company-home/.config" \
CLAUDE_CONFIG_DIR="$HOME/.company-home/.claude" \
/usr/bin/env ccusage "$@"
SH
chmod +x ~/bin/ccusage-company
echo 'if [[ ":$PATH:" != *":$HOME/bin:"* ]]; then export PATH="$HOME/bin:$PATH"; fi' >> ~/.zshrc && source ~/.zshrc
마무리
우선 AI를 지원해주는 회사에 무한한 감사를 드립니다.
간단하게 세팅을 마무리해보았는데요, 아마 사내 공통으로 패키징할지는 모르겠어요.
만약 팀 공유에 사용한다면, 공통 스니펫과 래퍼, 체크리스트를 패키징하고 회사 레포에서만 사용할 수 있는 스크립트를 추가하면 회사 내에서만 사용할 수 있는 클로드 코드가 완성될 것 같네요. 쉘을 다루는 낯선 경험을 오랜만에 하게 되어 재밌었습니다.