1. 클로드 코드(Claude Code) 소개 및 시작하기 [6]

thumbnail 클로드 코드(Claude Code)는 코드 작성 및 문제 해결을 돕는 AI 비서로, 기존 워크플로우를 변경하지 않고 다양한 개발 환경에서 사용할 수 있다.

1.1. 클로드 코드의 특징 및 설치 [18]

  1. 클로드 코드의 역할 [18]
    1. 클로드 코드는 기존 AI 비서와 달리 한 번에 몇 줄의 코드를 완성하는 것이 아니라, 전체 기능 구축, 함수 및 파일 작성, 버그 수정 등 전체적인 작업을 처리하는 데 중점을 둔다. [18]
  2. 다양한 개발 환경 지원 [22]
    1. 클로드 코드는 사용자의 기존 워크플로우를 변경할 필요 없이 모든 IDE(VS Code, Xcode, JetBrains 등)와 터미널에서 작동한다. [22]
    2. 로컬 환경, 원격 SSH, Tmux 등 어떤 환경에서도 실행 가능하다. [25]
  3. 자유로운 활용성 [26]
    1. 클로드 코드는 다양한 용도로 사용 가능한 강력한 도구이며, 특정 워크플로우를 강요하지 않고 엔지니어가 원하는 방식으로 사용할 수 있도록 설계되었다. [26]

1.2. 초기 설정 및 유용한 기능 [29]

  1. 환경 설정 권장 사항 [29]
    1. terminal setup 명령어를 실행하여 새 줄 입력 시 Shift + Enter를 사용할 수 있도록 설정한다. [30]
    2. /theme 명령어로 라이트 모드, 다크 모드 또는 Daltonize 테마를 설정한다. [32]
    3. /install GitHub app 명령어를 실행하여 GitHub 앱을 설치한다. [33]
      1. 이 앱을 통해 GitHub 이슈나 풀 리퀘스트에서 클로드를 멘션하여 사용할 수 있다. [34]
    4. 허용된 도구 세트를 사용자 정의하여 매번 승인할 필요 없이 편리하게 사용할 수 있다. [37]
  2. 음성 입력 활용 [40]
    1. Mac OS 사용자는 시스템 설정의 손쉬운 사용에서 받아쓰기 기능을 활성화하여 음성으로 프롬프트를 입력할 수 있다. [40]
    2. 이는 코드를 많이 입력하지 않고도 다른 엔지니어와 대화하듯이 클로드 코드와 소통하는 데 도움이 된다. [44]

1.3. 코드베이스 Q&A로 시작하기 [47]

  1. 가장 추천하는 시작 방법 [47]
    1. 클로드 코드를 처음 사용할 때 가장 추천하는 방법은 코드베이스 Q&A(질의응답)로, 코드베이스에 질문을 던지는 것이다. [47]
    2. Anthropic에서는 신입 사원 기술 온보딩 시 클로드 코드를 설치하고 코드베이스에 질문하는 방법을 가르친다. [48]
    3. 과거에는 기술 온보딩에 2~3주가 걸렸지만, 클로드 코드를 사용하면 2~3일로 단축된다. [50]
  2. Q&A의 장점 [59]
    1. 코드 보안: 클로드 코드는 코드 인덱싱을 하지 않으며, 코드를 원격 데이터베이스에 업로드하거나 생성 모델 학습에 사용하지 않는다. [59]
      1. 코드는 로컬에 유지되며 사용자가 제어한다. [62]
    2. 빠른 시작: 별도의 설정이나 인덱싱 대기 시간 없이 바로 사용할 수 있다. [65]
  3. 질문 예시 및 심층 분석 [68]
    1. "이 코드 조각은 어떻게 사용되나요?" 또는 "이 객체는 어떻게 인스턴스화하나요?"와 같은 질문을 할 수 있다. [69]
    2. 클로드 코드는 단순 텍스트 검색을 넘어, 클래스 인스턴스화 및 사용 예시를 찾아 더 깊이 있는 답변을 제공한다. [70]
    3. Git 기록에 대한 질문도 가능하다. 예를 들어, "이 함수에 왜 15개의 인수가 있고, 이름이 왜 이렇게 이상한가요?"라고 물으면, 클로드 코드는 Git 기록을 통해 인수가 도입된 배경, 도입자, 관련 이슈 등을 요약해 준다. [71]
  4. 모델의 지능적 작동 방식 [78]
    1. 클로드 코드는 시스템 프롬프트에 Git 기록을 찾아보라는 지시가 없어도, 모델 자체가 Git 사용법을 알고 있기 때문에 질문에 따라 Git 기록을 분석한다. [78]
  5. GitHub 이슈 및 주간 업무 요약 [83]
    1. 웹 페치 기능을 사용하여 GitHub 이슈의 컨텍스트를 찾아볼 수 있다. [83]
    2. 매주 월요일에 "이번 주에 무엇을 배포했나요?"라고 질문하면, 클로드 코드가 로그를 확인하고 사용자 이름을 인식하여 배포한 모든 내용을 요약해 준다. [84]
  6. 초보자를 위한 권장 사항 [87]
    1. 클로드 코드를 처음 사용하는 사람이나 팀 온보딩 시에는 코드베이스 Q&A부터 시작하는 것이 좋다. [87]
    2. 이는 프롬프트 작성 방법을 익히고, 클로드 코드의 능력 범위와 한계를 이해하는 데 도움이 된다. [88]

2. 코드 편집 및 팀 도구 연동 [90]

thumbnail

클로드 코드는 코드 편집 기능을 제공하며, 팀의 기존 도구와 연동하여 생산성을 극대화할 수 있다.

2.1. 코드 편집 및 계획 수립 [90]

  1. 코드 편집 기능 [90]
    1. Q&A에 익숙해지면 코드 편집으로 넘어갈 수 있다. [90]
    2. 클로드 코드는 파일 편집, Bash 명령어 실행, 파일 검색 등 소수의 도구를 마법처럼 조합하여 사용한다. [91]
    3. 사용자는 특정 도구 사용을 지시할 필요 없이, 원하는 작업을 요청하면 클로드 코드가 스스로 적절한 도구를 활용하여 작업을 수행한다. [96]
  2. 계획 수립의 중요성 [99]
    1. 클로드 코드가 코드를 작성하기 전에 아이디어를 브레인스토밍하거나 계획을 세우도록 요청하는 것이 좋다. [100]
    2. 이는 클로드 코드가 방대한 기능을 한 번에 구현하려 할 때, 원하는 결과와 다른 결과가 나올 수 있는 문제를 방지한다. [103]
    3. "코드를 작성하기 전에 계획을 세워줘"라고 요청하면, 클로드 코드는 스스로 계획을 수립하고 승인을 요청한다. [106]
  3. 자동화된 Git 작업 [112]
    1. "commit, push PR"과 같은 명령어를 사용하면, 클로드 코드가 커밋 생성, 브랜치 푸시, GitHub 풀 리퀘스트 생성을 자동으로 처리한다. [112]
    2. 클로드 코드는 코드와 Git 기록을 분석하여 올바른 커밋 형식과 푸시 방법을 스스로 파악한다. [116]
    3. 이는 시스템 프롬프트에 지시된 것이 아니라, 모델 자체의 뛰어난 능력 덕분이다. [118]

2.2. 팀 도구 연동 및 워크플로우 최적화 [121]

  1. 팀 도구 연동의 이점 [121]
    1. 클로드 코드는 팀의 기존 도구와 연동될 때 진정한 잠재력을 발휘한다. [121]
  2. 배치 도구(Batch Tools) 활용 [123]
    1. barley CLI와 같은 배치 도구를 클로드 코드에 알려주고, --help 옵션을 사용하여 사용법을 파악하도록 지시할 수 있다. [123]
    2. 자주 사용하는 도구는 ClaudeMD에 저장하여 세션 간에 기억하도록 할 수 있다. [127]
  3. MCP 도구 연동 [130]
    1. 클로드 코드는 Bash 도구뿐만 아니라 MCP(Multi-Cloud Platform) 도구도 사용할 수 있다. [130]
    2. 새로운 코드베이스에서 작업할 때, 팀이 이미 사용하는 모든 도구를 클로드 코드에 알려주면 클로드 코드가 대신 사용할 수 있다. [132]
  4. 워크플로우 최적화 [133]
    1. 탐색 및 계획 후 확인: 코드를 작성하기 전에 탐색하고 계획을 세운 후 사용자에게 확인을 요청하는 워크플로우를 따른다. [133]
    2. 작업 검증 및 반복: 클로드 코드가 자신의 작업을 확인할 수 있는 도구(예: 단위 테스트, Puppeteer 스크린샷, iOS 시뮬레이터 스크린샷)를 제공하면, 클로드 코드는 이를 기반으로 반복 작업을 수행하여 거의 완벽한 결과를 도출한다. [134]
  5. 다음 단계: 도구 교육 및 워크플로우 파악 [139]
    1. 클로드 코드에 팀의 도구 사용법을 가르치고, 적절한 워크플로우를 파악하는 것이 중요하다. [139]
    2. 코드를 바로 작성하게 할지, 브레인스토밍 및 계획을 세우게 할지, 반복 작업을 수행하게 할지 등 원하는 작업에 맞춰 클로드 코드에 프롬프트를 제공하는 방법을 익혀야 한다. [140]

3. 클로드 코드에 컨텍스트 제공 및 고급 활용 [142]

thumbnail

클로드 코드에 더 많은 컨텍스트를 제공하고 고급 기능을 활용하여 작업 효율성을 극대화할 수 있다.

3.1. ClaudeMD를 통한 컨텍스트 제공 [142]

  1. 컨텍스트의 중요성 [142]
    1. 클로드 코드에 더 많은 컨텍스트를 제공할수록, 더 스마트한 결정을 내릴 수 있다. [142]
    2. 엔지니어가 코드베이스에 대해 가지고 있는 시스템, 기록 등 방대한 컨텍스트를 클로드 코드에 전달하는 것이 중요하다. [143]
  2. ClaudeMD 파일 활용 [145]
    1. ClaudeMD는 클로드 코드에 컨텍스트를 제공하는 가장 간단한 방법이다. [146]
    2. 프로젝트 루트 디렉토리에 ClaudeMD 파일을 두면, 모든 세션 시작 시 자동으로 컨텍스트로 읽어 들인다. [147]
    3. 공유 ClaudeMD: 소스 제어에 체크인하여 팀과 공유할 수 있다. [150]
    4. 로컬 ClaudeMD: 소스 제어에 체크인하지 않고 개인적으로 사용할 수 있다. [152]
  3. ClaudeMD에 포함할 내용 [153]
    1. 일반적인 Bash 명령어, MCP 도구, 아키텍처 결정, 중요한 파일 등 코드베이스 작업에 필요한 정보를 포함한다. [153]
    2. 컨텍스트를 너무 많이 차지하지 않도록 내용을 짧게 유지하는 것이 좋다. [154]
    3. Anthropic의 코드베이스에는 일반적인 Bash 명령어, 스타일 가이드, 핵심 파일 등이 포함되어 있다. [156]
  4. 계층적 ClaudeMD [158]
    1. 중첩된 하위 디렉토리에 ClaudeMD 파일을 두면, 클로드 코드가 해당 디렉토리에서 작업할 때 필요에 따라 자동으로 불러온다. [158]
    2. 회사 전체에서 공유되는 ClaudeMD는 엔터프라이즈 루트에 두어 모든 사용자가 자동으로 사용할 수 있다. [159]

3.2. 다양한 컨텍스트 제공 방법 및 설정 [161]

  1. 슬래시 명령어(Slash Commands) [161]
    1. .clawd 슬래시 명령어를 사용하여 컨텍스트를 제공할 수 있다. [162]
    2. 이는 홈 디렉토리 또는 프로젝트에 체크인할 수 있다. [163]
    3. 예를 들어, GitHub 이슈에 레이블을 지정하는 워크플로우는 슬래시 명령어를 통해 자동화되어 시간을 절약한다. [164]
  2. 파일 및 폴더 멘션 [172]
    1. @ 기호를 사용하여 파일이나 폴더를 멘션하면 컨텍스트로 불러올 수 있다. [172]
    2. 중첩된 디렉토리의 ClaudeMD는 클로드 코드가 해당 디렉토리에서 작업할 때 자동으로 불러온다. [173]
  3. 컨텍스트 튜닝의 중요성 [174]
    1. 클로드 코드에 더 많은 컨텍스트를 제공하고, 이를 튜닝하는 데 시간을 투자하는 것이 중요하다. [174]
    2. 컨텍스트가 누구를 위한 것인지, 항상 불러올지, 필요할 때 불러올지, 팀과 공유할지 등을 고려하여 튜닝하면 성능이 크게 향상된다. [175]
  4. 계층적 설정 관리 [178]
    1. 프로젝트별 설정: Git 리포지토리에 특화된 설정으로, 체크인하거나 개인적으로 사용할 수 있다. [180]
    2. 글로벌 설정: 모든 프로젝트에 적용되는 설정이다. [182]
    3. 엔터프라이즈 정책: 모든 직원을 위해 배포되는 글로벌 설정으로, 슬래시 명령어, 권한 등을 관리할 수 있다. [183]
      1. 예를 들어, 모든 직원이 사용하는 테스트 명령어를 엔터프라이즈 정책 파일에 추가하면 자동으로 승인된다. [186]
      2. 특정 URL을 차단하여 보안을 강화할 수도 있다. [188]
    4. MCP 서버 설정: MCP JSON 파일을 코드베이스에 체크인하면, 해당 코드베이스에서 클로드 코드를 실행할 때 MCP 서버 설치를 자동으로 안내하고 팀과 공유할 수 있다. [190]
    5. 시작 권장 사항: 다양한 설정 옵션 중 어떤 것을 사용할지 모를 경우, 공유 프로젝트 컨텍스트부터 시작하는 것이 좋다. [194]
      1. 이는 한 번 설정하면 팀 전체가 혜택을 받는 네트워크 효과를 얻을 수 있다. [196]
  5. 메모리 관리 도구 [197]
    1. /memory 명령어를 실행하면 불러와진 모든 메모리 파일(엔터프라이즈 정책, 사용자 메모리, 프로젝트 ClaudeMD, 중첩된 ClaudeMD 등)을 확인할 수 있다. [198]
    2. /memory 명령어를 통해 특정 메모리 파일을 편집할 수 있다. [200]
    3. # 기호를 사용하여 무언가를 기억하게 할 때, 어떤 메모리에 저장할지 선택할 수 있다. [201]
  6. 팀 전체의 생산성 향상 [203]
    1. ClaudeMD, MCP 서버 등 팀이 사용하는 모든 도구를 한 번 설정하고 팀 전체와 공유하는 데 시간을 투자해야 한다. [203]
    2. Anthropic의 앱 리포지토리에서는 Puppeteer MCP 서버를 팀과 공유하여, 모든 엔지니어가 종단 간 테스트 및 스크린샷 자동화를 쉽게 사용할 수 있도록 한다. [205]

3.3. 유용한 단축키 및 SDK 활용 [208]

  1. 일반적인 단축키 [208]
    1. Shift + Tab: 편집 내용을 수락하고 자동 수락 모드로 전환한다. [216]
      1. Bash 명령어는 여전히 승인이 필요하지만, 편집 내용은 자동으로 수락된다. [218]
      2. 클로드 코드가 올바른 방향으로 가고 있거나 단위 테스트를 반복할 때 유용하다. [219]
    2. # (파운드 기호): 클로드 코드가 무언가를 기억하게 할 때 사용한다. [221]
      1. 예를 들어, 도구를 잘못 사용할 때 올바른 사용법을 알려주면 ClaudeMD에 자동으로 통합된다. [221]
    3. ! (느낌표): Bash 모드로 전환하여 Bash 명령어를 실행한다. [223]
      1. 이 명령어는 로컬에서 실행되지만, 컨텍스트 창에도 기록되어 클로드 코드가 다음 턴에 볼 수 있다. [224]
      2. 장시간 실행되는 명령어 또는 컨텍스트에 포함하고 싶은 명령어에 유용하다. [225]
    4. @ (골뱅이): 파일 및 폴더를 멘션하여 컨텍스트로 불러온다. [226]
    5. Esc (이스케이프): 클로드 코드가 수행 중인 작업을 언제든지 안전하게 중지한다. [227]
      1. 세션이 손상되거나 문제가 발생하지 않는다. [228]
      2. 예를 들어, 클로드 코드가 제안한 편집 내용 중 일부만 수정하고 싶을 때 Esc를 누르고 지시한 후 다시 편집을 요청할 수 있다. [229]
    6. Esc 두 번: 이전 기록으로 돌아간다. [232]
    7. resume 또는 --continue: 세션 완료 후 이전 세션을 재개한다. [233]
    8. Ctrl + R: 더 많은 출력 내용을 확인하여 클로드 코드가 컨텍스트 창에서 보는 것과 동일한 전체 출력을 볼 수 있다. [235]
  2. 클로드 코드 SDK 활용 [236]
    1. SDK의 역할: 클로드 코드 SDK는 클로드 코드가 사용하는 것과 동일한 도구이다. [244]
    2. CLI SDK (Claude-P): 프롬프트, 허용된 도구(특정 Bash 명령어 포함)를 전달하고, JSON 또는 스트리밍 JSON과 같은 원하는 출력 형식을 지정할 수 있다. [246]
    3. 활용 사례: CI/CD, 사고 대응, 다양한 파이프라인에서 사용된다. [251]
    4. Unix 유틸리티처럼 사용: 프롬프트를 주면 JSON을 반환하는 지능적인 Unix 유틸리티로 생각할 수 있다. [253]
      1. 파이프를 통해 Git status 결과를 입력으로 전달하고 JQ로 결과를 선택하는 등 다양한 조합이 가능하다. [259]
      2. GCP 버킷에서 대용량 로그를 읽어 파이프를 통해 클로드 코드에 전달하여 흥미로운 내용을 분석하게 할 수 있다. [263]
      3. Sentry CLI에서 데이터를 가져와 파이프를 통해 클로드 코드에 전달하여 특정 작업을 수행하게 할 수 있다. [265]
  3. 병렬 작업 및 고급 사용 사례 [267]
    1. 파워 유저의 활용법: Anthropic 내부 및 외부의 파워 유저들은 SSH 세션, Tmux 터널, 동일한 리포지토리의 여러 체크아웃, Git 워크트리 등을 사용하여 여러 클로드 코드를 병렬로 실행한다. [268]
    2. 병렬 세션 실행: 원하는 만큼 많은 세션을 실행하여 더 많은 작업을 병렬로 수행할 수 있다. [272]

4. Q&A: 클로드 코드 개발 및 기능 관련 질문 [274]

thumbnail

클로드 코드 개발 과정의 어려움, 멀티모달 기능, CLI 도구 선택 이유, 머신러닝 활용 등에 대한 질문과 답변이다.

4.1. 개발 과정의 어려움 [279]

  1. Bash 명령어의 안전성 확보 [281]
    1. 가장 어려웠던 부분 중 하나는 Bash 명령어를 안전하게 처리하는 것이었다. [281]
    2. Bash는 본질적으로 위험하며 예기치 않게 시스템 상태를 변경할 수 있지만, 모든 Bash 명령어를 수동으로 승인하는 것은 생산성을 저해한다. [283]
    3. 다양한 코드베이스 환경(예: Docker 컨테이너 사용 여부)에서 안전하게 확장 가능한 방법을 찾는 것이 어려웠다. [286]
    4. 해결책으로 정적 분석을 통해 안전하게 결합할 수 있는 명령어를 식별하고, 계층화된 복잡한 권한 시스템을 통해 명령어를 허용하거나 차단할 수 있도록 했다. [287]

4.2. 멀티모달 기능 [289]

  1. 이미지 입력 지원 [289]
    1. 클로드 코드는 완전한 멀티모달 기능을 처음부터 지원했다. [291]
    2. 터미널 환경이라 발견하기 어렵지만, 이미지를 드래그 앤 드롭하거나, 파일 경로를 제공하거나, 이미지를 복사하여 붙여넣는 방식으로 입력할 수 있다. [293]
    3. 예를 들어, 목업 이미지를 입력하고 Puppeteer 서버를 제공하면, 클로드 코드가 자동으로 웹 UI를 구현하고 반복 작업을 수행한다. [296]

4.3. CLI 도구 선택 이유 [299]

  1. 다양한 IDE 지원 [300]
    1. Anthropic 내부에서 다양한 IDE(VS Code, Zed, Xcode, Vim, Emacs 등)를 사용하기 때문에, 모두에게 작동하는 단일 IDE를 구축하기 어려웠다. [300]
    2. 터미널은 모든 개발 환경의 공통 분모이므로 CLI 도구를 선택했다. [302]
  2. 모델 발전 속도 대비 미래 준비 [303]
    1. 모델의 발전 속도가 매우 빨라 연말까지 IDE 사용 방식이 크게 바뀔 가능성이 있다. [303]
    2. 따라서 UI 및 다른 레이어에 과도하게 투자하는 것을 피하고, 미래에 대비하기 위해 CLI 도구를 선택했다. [304]

4.4. 머신러닝 모델링 활용 [306]

  1. Anthropic 내부 활용 [306]
    1. Anthropic의 엔지니어와 연구원들은 클로드 코드를 머신러닝 모델링에 많이 활용한다. [309]
    2. Anthropic 기술 인력의 약 80%가 매일 클로드 코드를 사용한다. [310]
    3. 연구원들은 노트북 도구를 사용하여 노트북을 편집하고 실행하는 데 클로드 코드를 활용한다. [312]