Claude Code ↔ GLM(Z.ai) 1초 스위칭 환경 구축기

든든한 항해사 · Claude Code MVP 공장 · · 좋아요 0 · 답글 0

연재 Claude Code MVP 공장 시즌 6 2/4편

1월 20일 오후 3:00 이전에 이 글을 읽으셨던 분들은 다시 한 번 읽어주세요.ㅠㅠ

시도하고자 했던 것과 그 이유를 알려주세요

최근 Claude Code를 사용하면서 비용 효율이 좋은 GLM(Z.ai) 모델과 성능이 강력한 Claude 모델을 번갈아 가며 사용하고 싶었습니다.
하지만 매번 .claude/settings.json 설정 파일을 직접 수정하거나 복사해 넣는 과정이 너무 번거로웠습니다.
작업 흐름이 끊기지 않게 터미널 명령어 한 번으로 두 모델을 1초 만에 전환하는 환경을 구축하고 싶었습니다.


GLM이 뭔가요?

GLM 소개 : https://www.youtube.com/watch?v=nSnZdEjUalo
GLM
vs Claude 스위칭 : https://www.youtube.com/watch?v=T7cOguVYdsU

싸고 좋은건 알겠는데, 매번 환경 설정 파일을 수정해서 사용해야 하는게 너무 불편한 것 같아서,
쉽게 사용할 수 있는 방법을 알려드리도록 하겠습니다.

배운 점과 나만의 꿀팁을 알려주세요

이제 작업별로 터미널에서 gt g라고 치면 바로 GLM 모드가 되고, gt c라고 치면 Claude 모드로 동작하게 되어 쉽게 사용할 수 있게 되었네요.
설정 파일을 일일이 찾아다닐 필요가 없어지니 코딩 리듬(Vibe)이 끊기지 않는 것이 가장 큰 장점입니다.

작업 환경을 자동화를 통해 개선하여 생산성을 높일 수 있다니, 게으른 게발자가 되어 가고 있습니다.

처음에는 설정 파일을 교체하는 방식으로 했었는데, 뭔가 불안정한 것 같았습니다.
gt c 후 claude 실행 시켜 놓고 /usage 로 확인하면, 명령이 수행되지 않을때가 있더라고요
그래서, 환경파일을 교체하는 방식에서, 환경 변수를 바꾸고 터미널이 수행되는 방식으로 바꾸었습니다.( 이것도 좀 더 테스트 하면서 모니터리을 해 봐야 할 것 같습니다.)

또 하나 시행착오는 ~/.zshrc 파일 수정을 llm에게 시켰더니, 기존 내용을 몽땅 다 지워버리고, 위 gt 함수만 남겨놨더라구요.ㅠㅠ
개발자에게, 바이브코더에게 백업 절차는 필수입니다.

앞으로의 계획이 있다면 들려주세요

몇 일 사용해 봤는데, 가성비 측면에서 glm 만족스러운 수준입니다.
제가 어제 오늘은 좀 무거운 작업을 시켜서 인지, 조금 느린 듯 한게 쪼금 아쉽네요.
그래도, glm에게 일 시켜놓고, 사례글 쓸수 있어 좋아요~

ahthropic에서 언제 이렇게 다른 모델이 claude code에 강제 입주하는 기능을 막을지 모르지만,
glm 토큰을 다 쓸 때까지 괴롭히고, 죽여볼 참입니다.
claude 요금제를 100$로 낮출꺼에요!!

더 쉽게/편하게 이용 할 수 있는 방법이 있다면 알려주세요~


(부록) Windows OS
윈도우 사용자분은 아래 내용 참조하셔서, llm에게 물어보고 진행하세요.

PowerShell 프로필 설정 방법:

  1. PowerShell을 관리자 권한으로 실행

  2. 실행 정책 변경 (처음 한 번만):

    powershell

    Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

  3. 프로필 파일 열기:

    powershell

    notepad $PROFILE

    (파일이 없다는 오류가 나면:

    New-Item -Path $PROFILE -Type File -Force

    실행 후 다시 시도)

  4. 위의 함수를 복사해서 붙여넣고 저장

  5. PowerShell 재시작 또는

    . $PROFILE

    실행

Option 2: Batch Script

gt.bat

파일을 만들어서 PATH에 있는 폴더에 저장:

function gt {
    param(
        [string]$mode = "s"
    )
    
    switch ($mode) {
        "g" {  # GLM 모드 (Z.ai)
            $env:ANTHROPIC_AUTH_TOKEN = "여기에 GLM KEY를 입력하세요"
            $env:ANTHROPIC_BASE_URL = "https://api.z.ai/api/anthropic"
            $env:ANTHROPIC_VERSION = "2023-06-01"
            $env:API_TIMEOUT_MS = "3000000"
            $env:ANTHROPIC_DEFAULT_HAIKU_MODEL = "glm-4.5-air"
            $env:ANTHROPIC_DEFAULT_SONNET_MODEL = "glm-4.7"
            $env:ANTHROPIC_DEFAULT_OPUS_MODEL = "glm-4.7"
            Write-Host "🔹 GLM 모드 활성화 (현재 터미널만)" -ForegroundColor Cyan
        }
        "c" {  # Claude 모드 (Anthropic)
            Remove-Item Env:\ANTHROPIC_AUTH_TOKEN -ErrorAction SilentlyContinue
            Remove-Item Env:\ANTHROPIC_BASE_URL -ErrorAction SilentlyContinue
            Remove-Item Env:\ANTHROPIC_VERSION -ErrorAction SilentlyContinue
            Remove-Item Env:\API_TIMEOUT_MS -ErrorAction SilentlyContinue
            Remove-Item Env:\ANTHROPIC_DEFAULT_HAIKU_MODEL -ErrorAction SilentlyContinue
            Remove-Item Env:\ANTHROPIC_DEFAULT_SONNET_MODEL -ErrorAction SilentlyContinue
            Remove-Item Env:\ANTHROPIC_DEFAULT_OPUS_MODEL -ErrorAction SilentlyContinue
            Write-Host "🔸 Claude 모드 활성화 (현재 터미널만)" -ForegroundColor Yellow
        }
        { $_ -in "s", "" } {  # 상태 확인
            if ($env:ANTHROPIC_BASE_URL -like "*z.ai*") {
                Write-Host "🔹 현재: GLM ($env:ANTHROPIC_DEFAULT_SONNET_MODEL)" -ForegroundColor Cyan
            } else {
                Write-Host "🔸 현재: Claude (Anthropic 기본)" -ForegroundColor Yellow
            }
        }
        default {
            Write-Host "사용법: gt [g|c|s]"
            Write-Host "  g - GLM 모드"
            Write-Host "  c - Claude 모드"
            Write-Host "  s - 상태 확인 (기본)"
        }
    }
}

태그: #CTO