1. Claude Code 소개 및 기본 설정

Claude Code는 AI 코딩 어시스턴트로, 기존의 코드 완성 방식에서 벗어나 완전한 에이전트 방식으로 작동하며 다양한 도구와 통합되어 워크플로우 변경 없이 사용할 수 있다.

1.1. Claude Code의 특징

  1. 완전한 에이전트 방식 [15]
    • 기능 구축, 전체 함수 및 파일 작성, 버그 수정 등 복합적인 작업을 수행한다. [15]
  2. 다양한 도구와의 통합 [16]
    • 기존 워크플로우를 변경할 필요 없이 어떤 IDE, 터미널 환경에서도 작동한다. [17]
    • VSCode, Xcode, JetBrains IDE 등 모든 IDE와 로컬, 원격 SSH, TMUX 환경에서 사용 가능하다. [19]

1.2. 초기 설정 및 권장 사항

  1. 설치 및 기본 설정 [7]
    • Node.js만 있으면 설치 가능하며, Shift+Enter로 새 줄 입력이 가능하다. [8]
  2. 테마 설정 [29]
    • /theme 명령어로 밝은 모드, 어두운 모드, 달톤화된 테마를 설정할 수 있다. [29]
  3. GitHub 앱 설치 [30]
    • /install-githubapp 명령어로 GitHub 이슈 및 풀 리퀘스트에 @Claude 기능을 사용할 수 있는 앱을 설치한다. [30]
  4. 허용 도구 사용자 지정 [33]
    • 매번 메시지를 표시하지 않도록 허용 도구 집합을 사용자 지정할 수 있다. [33]
  5. 음성 입력 활용 [36]
    • MacOS의 받아쓰기 기능을 활성화하면 음성으로 프롬프트를 입력할 수 있어 편리하다. [37]

2. Claude Code 활용 전략

2.1. 코드베이스 Q&A로 시작하기

  1. 코드베이스 Q&A의 중요성 [42]
    • Claude Code를 처음 사용할 때 가장 추천하는 방법은 코드베이스에 대한 질문부터 시작하는 것이다. [43]
    • 이는 신입 사원 온보딩 시에도 활용되며, 팀의 부담을 줄이고 온보딩 기간을 단축시킨다. [45]
  2. Q&A의 장점 [55]
    • 로컬 코드 유지: 코드를 어디에도 업로드하지 않고 로컬에 유지하며, 생성 모델 학습에 사용하지 않는다. [55]
    • 빠른 시작: 별도의 인덱싱이나 설정 없이 즉시 사용 가능하다. [60]
  3. 구체적인 질문 예시 [64]
    • 특정 코드의 인스턴스화 방법, 사용법 등에 대해 질문할 수 있다. [65]
    • Git 기록을 통해 함수의 인수 개수나 이름 변경 이유 등을 파악할 수 있다. [69]
    • "Git 히스토리 살펴봐"와 같은 간단한 명령으로도 상세한 정보를 얻을 수 있다. [75]
  4. GitHub 이슈 및 로그 활용 [81]
    • GitHub 이슈에 대한 컨텍스트 조회 및 주간 스탠드업 시 "이번 주에 무엇을 출시했나요?"와 같은 질문으로 자신의 출시 내역을 확인할 수 있다. [81]

2.2. 코드 편집 및 고급 활용

  1. 코드 편집 기능 [93]
    • 파일 편집, bash 명령 실행, 파일 검색 등 다양한 도구를 연결하여 코드를 탐색하고 편집한다. [97]
    • "이걸 해봐"와 같은 간단한 지시로 Claude Code가 도구를 연결하여 작업을 수행한다. [103]
  2. 코드 작성 전 계획 수립 [105]
    • 코드를 작성하기 전에 브레인스토밍, 계획 수립, 코드 작성 전 승인 요청을 하도록 요청하는 것이 효과적이다. [106]
    • "코드를 작성하기 전에 계획을 세우세요."라고 말하는 것만으로도 가능하다. [114]
  3. 커밋, 푸시, PR 자동화 [116]
    • "이 커밋 푸시 PR"과 같은 명령으로 커밋, 브랜치 생성, 풀 리퀘스트 생성을 자동화할 수 있다. [116]
    • Claude Code는 Git 로그를 분석하여 올바른 방식으로 작업을 수행한다. [120]
  4. 팀 도구 연결 및 확장 [124]
    • Bash CLI 도구 (예: Barley CLI)나 MCP 도구를 Claude Code에 알려주면 이를 활용할 수 있다. [127]
    • 새 코드베이스에서 팀이 사용하는 도구를 제공하면 Claude Code가 이를 활용하여 작업을 수행한다. [137]
  5. 반복 작업을 위한 도구 활용 [140]
    • 단위 테스트 작성, 스크린샷 촬영 등 작업을 확인할 수 있는 도구를 제공하면 Claude Code가 반복 작업을 통해 결과물을 개선한다. [141]
    • 피드백 도구를 제공하여 Claude Code가 스스로 반복하고 개선하도록 유도하는 것이 중요하다. [144]

2.3. 컨텍스트 제공 및 관리

  1. Claude MD 파일 활용 [154]
    • claude.md 파일을 프로젝트 루트에 두면 세션 시작 시 자동으로 컨텍스트를 읽어온다. [157]
    • 소스 제어에 체크인하여 팀과 공유하거나, 개인적인 용도로 로컬에 둘 수 있다. [159]
    • 일반적인 bash 명령어, 스타일 가이드, 핵심 파일 등 코드베이스 작업에 필요한 정보를 담을 수 있다. [163]
    • 중첩된 하위 디렉터리에 Claude MD 파일을 두면 해당 디렉터리에서 작업 시 자동으로 가져온다. [167]
    • 엔터프라이즈 루트에 두면 모든 사용자가 관리하는 Claude MD를 자동으로 가져올 수 있다. [171]
  2. 슬래시 명령 활용 [175]
    • .claude/commands 파일에 슬래시 명령을 정의하여 Claude Code 자체의 슬래시 명령처럼 사용할 수 있다. [175]
    • GitHub 이슈 레이블 지정과 같은 워크플로우를 자동화하는 데 활용된다. [179]
  3. 컨텍스트 조정의 중요성 [185]
    • Claude에게 더 많은 컨텍스트를 제공하면 더 현명한 결정을 내릴 수 있다. [150]
    • 컨텍스트를 제공하는 대상, 시점, 공유 여부 등을 고려하여 조정하는 데 시간을 투자할 가치가 있다. [188]
    • 제대로 조정하면 성능이 크게 향상된다. [191]
  4. 계층적 컨텍스트 관리 [192]
    • 프로젝트별, 전역 구성, 엔터프라이즈 정책 등 계층적으로 컨텍스트를 관리할 수 있다. [193]
    • 엔터프라이즈 정책 파일을 통해 모든 직원이 사용하는 bash 명령을 자동 승인하거나, 특정 URL 접근을 차단하는 등 보안 및 편의성을 높일 수 있다. [199]
  5. MCP 서버 활용 [204]
    • MCP JSON 파일을 코드 베이스에 저장하면 팀원들이 Claude Code 실행 시 MCP 서버를 설치하고 공유하도록 안내한다. [205]
  6. 메모리 관리 [211]
    • /memory 명령어로 기업 정책, 사용자 메모리, 프로젝트 Claude MD 등 다양한 메모리 파일을 확인하고 편집할 수 있다. [212]

2.4. 고급 사용 사례 및 팁

  1. 팀 도구 구성 및 공유 [217]
    • 팀에서 사용하는 Claude MD, MCP 서버 등을 한 번 설정하고 공유하면 모든 팀원이 혜택을 받을 수 있다. [217]
    • 예시: Anthropic의 앱 리포에서 Puppeteer MCP 서버를 공유하여 엔지니어들이 별도 설치 없이 엔드투엔드 테스트를 수행하도록 한다. [219]
  2. 주요 바인딩 및 단축키 [222]
    • Shift+Tab: 편집 자동 수락 모드로 전환 (bash 명령은 여전히 승인 필요). [228]
    • 백슬래시 (\): Claude에게 실행 취소를 요청. [231]
    • 느낌표 (!): 배치 모드로 전환하여 명령 실행 (로컬에서 실행되며 컨텍스트 창으로 이동). [236]
    • 이스케이프 (Esc): Claude의 작업을 중지. 세션은 손상되지 않는다. [241]
    • Esc 두 번: 히스토리로 돌아가 세션을 다시 시작하거나 계속 진행. [248]
    • Ctrl+R: 전체 출력 보기. [251]
  3. Claude Code SDK 활용 [252]
    • -p 플래그를 사용하여 CLI SDK로 프롬프트, 허용된 도구, 출력 형식 등을 전달할 수 있다. [255]
    • CI, 인시던트 대응, 다양한 파이프라인에서 활용 가능하며, 유닉스 유틸리티처럼 입력/출력 파이핑이 가능하다. [266]
    • 거대한 로그 파일 분석, Sentry 데이터 연동 등 다양한 데이터 처리 및 분석에 활용될 수 있다. [280]
  4. 병렬 세션 실행 [284]
    • 여러 터미널 탭에서 동시에 여러 Claude 세션을 실행하거나, tmux 터널, git 워크트리를 사용하여 격리된 환경에서 병렬 작업을 수행할 수 있다. [285]

3. Q&A 및 개발 비하인드

3.1. 개발 과정에서의 어려움

  1. Bash 명령의 안전성 확보 [301]
    • Bash 명령은 시스템 상태를 예기치 않게 변경할 수 있어 위험하지만, 모든 명령을 수동 승인하는 것은 생산성을 저하시킨다. [301]
    • 다양한 코드 기반에 걸쳐 확장 가능하면서도 안전하게 Bash 명령을 처리하는 방법을 찾는 것이 까다로웠다. [304]
  2. 해결 방안 [305]
    • 읽기 전용 명령 식별, 정적 분석을 통한 안전한 명령 조합 파악, 계층적 권한 시스템 (목록 및 차단 목록) 구축. [305]

3.2. 멀티모달 기능 및 IDE 대신 CLI 선택 이유

  1. 이미지 처리 기능 [307]
    • Claude Code는 처음부터 완전한 멀티모달 기능을 갖추고 있으며, 이미지를 드래그 앤 드롭하거나 파일 경로를 지정하여 처리할 수 있다. [308]
    • 모형을 드래그 앤 드롭하여 구현을 지시하고, Puppeteer 서버를 통해 반복하는 방식으로 활용 가능하다. [316]
  2. CLI 툴 선택 이유 [318]
    • 다양한 IDE 지원의 어려움: Anthropic 내에서도 다양한 IDE를 사용하므로, 모든 사람에게 적합한 IDE 대신 공통분모인 터미널을 선택했다. [319]
    • 미래 지향적 설계: AI 모델의 빠른 발전 속도를 고려하여, UI 및 기타 레이어에 과도하게 투자하기보다 미래에 대비하고자 했다. [321]

3.3. 머신러닝 및 모델링 활용

  1. 활발한 내부 사용 [324]
    • Anthropic 엔지니어 및 연구원의 약 80%가 매일 Claude Code를 사용하며, 노트북 도구를 활용한 연구도 포함된다. [326]