jaysnote

Claude Code 명령어로 코드 짜기 — 사용법 중심 예제

#claude-code #사용법

“이론”이 아니라 실제 코딩 세션에서 어떤 명령·단축키를 언제 누르는가를 따라가는 문서다. 한 기능을 추가하는 세션을 처음부터 끝까지, 입력 → 동작 → 왜 순서로 보여준다. 관련: docs/06(루프 전체), docs/07(SDD/SpecKit 절차), /clear 상세. 명령·단축키는 Claude Code Commands·Interactive mode 기준(버전에 따라 바뀔 수 있음).


코드 작성에 직접 쓰는 명령·단축키 (먼저 보기)

입력종류하는 일
@경로/파일입력 접두파일을 대화에 첨부(자동완성). “이 파일을 봐”라고 말하는 가장 빠른 방법
Shift+Tab단축키권한 모드 순환: defaultacceptEditsplan
/plan [설명]명령plan mode 진입. 코드를 건드리지 않고 계획만 세움
!명령입력 접두셸 모드. ! npm test처럼 직접 실행하고 출력을 대화에 넣음
Esc단축키Claude를 중간에 멈춤(한 일은 보존). 방향을 다시 잡을 때
Esc Esc단축키(입력칸이 비어있을 때) 되감기(rewind) 메뉴 — 코드/대화를 이전 지점으로
/rewind명령되감기. 별칭 /undo, /checkpoint
/context명령컨텍스트 사용량을 그리드로 시각화
/compact [지침]명령대화를 요약 압축(맥락 유지)
/clear명령대화를 통째로 비움(새 작업) → 상세
/memory / #...명령/접두CLAUDE.md에 규칙·메모 저장
/review [PR]명령PR을 현재 세션에서 로컬 리뷰
/model, /effort명령모델·추론 강도 전환
/agents명령subagent 관리(큰 탐색을 격리된 컨텍스트에 위임)

프롬프트에서 /를 치면 사용 가능한 명령 전체가 뜬다. 명령은 메시지 맨 앞에서만 인식된다.


실전 세션: “할인 쿠폰 적용” 기능 추가

기존 장바구니 코드에 쿠폰 할인을 넣는 작은 작업을 가정한다. 한 줄 한 줄 무엇을 입력하는지 본다.

1. 세션 시작 — 관련 파일을 @로 붙인다

> @src/cart.py @tests/test_cart.py 장바구니에 쿠폰 코드를 적용하는 기능을 추가하고 싶어.
  • 동작: @를 치면 파일 경로 자동완성이 뜬다. 고른 파일이 대화에 첨부돼 Claude가 바로 읽는다.
  • 왜: “cart 파일 찾아줘”라고 시키는 것보다 빠르고, 엉뚱한 파일을 읽느라 컨텍스트를 낭비하지 않는다.

2. 바로 짜지 말고 — /plan으로 계획부터

> /plan 쿠폰 코드를 받아 장바구니 합계에 정률/정액 할인을 적용. 만료·중복적용 규칙 포함.

또는 키보드로 Shift+Tab 을 눌러 모드를 plan으로 바꾼 뒤 요청해도 된다.

  • 동작: plan mode에서는 Claude가 코드를 수정하지 않고 접근법·바꿀 파일·엣지 케이스를 정리해 제시한다. 사람이 승인해야 구현으로 넘어간다.
  • 왜: 여러 파일·낯선 코드·설계 결정이 걸릴 때, 몇 분의 계획이 “20분간 자신만만하게 엉뚱한 걸 구현”하는 사태를 막는다. → docs/06 게이트 2, docs/04 경계

계획이 마음에 안 들면 그 자리에서 고쳐 말한다: > 정액 할인은 빼고 정률만. 만료는 서버 시간 기준으로.

3. 구현 — 모드를 전환해 편집을 맡긴다

계획을 승인하면 Shift+Tab 으로 acceptEdits 모드로 바꿔 편집을 빠르게 진행하게 하거나, 기본 모드로 매 편집을 확인한다.

  • 동작: acceptEdits는 파일 편집을 매번 묻지 않고 적용한다(검증이 갖춰진 작업에서 속도↑). 위험한 작업이면 기본 모드로 두고 사람이 확인한다.
  • 왜: 검증성이 높을수록(테스트가 받쳐줄수록) 자율 편집을 허용하고, 위험할수록 게이트를 건다.

4. 테스트 실행 — !로 직접 돌린다

> ! pytest tests/test_cart.py -q
  • 동작: ! 셸 모드는 Claude를 거치지 않고 명령을 바로 실행하고, 출력을 대화 컨텍스트에 넣는다. Claude가 그 결과를 보고 다음 수정을 한다.
  • 왜: “테스트 돌려줘 → 권한 승인 → 결과 해석”보다 빠르고, 실패 로그가 그대로 맥락에 남아 디버깅이 매끄럽다. TDD 루프(Red→Green)를 이 한 줄로 돌린다. → docs/02 TDD

5. 방향이 틀어지면 — Esc로 끊는다

Claude가 엉뚱한 파일을 고치기 시작하면:

  • Esc 한 번 → 현재 응답/도구 호출을 즉시 중단한다(지금까지 한 일은 남는다). 그리고 다시 지시한다: > 그 파일 말고 cart.py의 apply_coupon만 고쳐.

이미 잘못 만든 편집까지 되돌리려면:

  • 입력칸을 비우고 Esc Esc(또는 /rewind) → 되감기 메뉴에서 코드/대화를 이전 지점으로 복원한다.
  • 왜: 잘못된 변경을 손으로 git checkout 하지 않고 세션 안에서 되돌릴 수 있다.

6. 대화가 길어지면 — /context/compact

> /context        # 컨텍스트 어디에 쓰이는지 그리드로 확인
> /compact 쿠폰 기능의 결정사항과 남은 작업만 남겨줘
  • 동작: /context는 사용량을 보여주고, /compact는 대화를 요약본으로 줄인다(맥락 유지).
  • 왜: 작업을 이어가면서 토큰만 줄이고 싶을 때. 작업이 끝났으면 /compact 대신 /clear. → 차이 상세

7. 작업 종료 — /clear로 비우고 다음으로

> /clear
  • 동작: 대화 기억을 통째로 비우고 새 세션을 시작한다. 코드·파일·CLAUDE.md는 그대로, 이전 대화는 보존되어 나중에 이어볼 수 있다.
  • 왜: 다음 기능으로 넘어갈 때 앞 작업의 맥락이 섞여 답이 흐려지는 것을 막는다.

8. 배운 것 저장 — # 또는 /memory

> # 쿠폰 만료는 항상 서버 UTC 기준으로 비교한다
  • 동작: #로 시작하면 그 내용을 CLAUDE.md(메모리)에 저장한다. /memory로 직접 편집·관리할 수도 있다.
  • 왜: /clear 후에도 살아남아 다음 세션에 자동 적용된다. 같은 맥락을 매번 다시 설명할 필요가 없다. → docs/05 CLAUDE.md

9. 리뷰 — /review

> /review 128        # PR #128을 현재 세션에서 로컬 리뷰
  • 동작: 지정한 PR(또는 현재 변경)을 Claude가 리뷰한다.
  • 왜: 머지 전 게이트 3에서 사람의 diff 리뷰를 보조한다(대체가 아니라 보조).

한 장 치트시트

@파일          → 볼 파일을 콕 집어 첨부
/plan·Shift+Tab→ 짜기 전에 계획 (plan 모드)
Shift+Tab      → acceptEdits로 편집 위임 / default로 매번 확인
!명령          → 테스트·빌드 직접 실행 (출력이 맥락에 들어감)
Esc            → 잘못 가면 즉시 중단
Esc Esc /rewind→ 코드·대화를 이전 지점으로 되감기
/context /compact → 길어진 컨텍스트 점검·압축
/clear         → 작업 끝, 깨끗이 새 출발
# … / /memory  → 배운 규칙을 CLAUDE.md에 저장
/review        → 머지 전 리뷰 보조

핵심 습관 3가지: ① 짜기 전에 /plan, ② 테스트는 !로 돌려 맥락에 남기기, ③ 작업이 바뀌면 /clear. 나머지는 필요할 때 하나씩 붙이면 된다.

← 목록으로