Claude Max를 구독한 뒤 Claude Code를 일상 업무에 활용하며 얻은 실전 팁과 워크플로우를 정리했다. 더 나은 결과를 위한 프롬프트 작성, 서브태스크 활용, 계획/실행 요령, Git 및 IDE/터미널 설정 등 효과적인 사용 패턴을 공유한다.
한 달 전, 나는 Claude Max를 구독했다. 이전에도 Claude Code를 포함한 AI 에이전트를 꽤 써왔지만, 정액제 덕분에 사용량이 폭증했고 지금은 많은 작업에서 매일 쓰는 주력 도구가 됐다. VS Code를 켜는 빈도도 확 줄었다.
지금은 모두에게 AI 에이전트가 새롭다. 최근에 내가 관찰한 몇 가지 패턴을 공유하면 재미있겠다 싶었다. 내가 Claude Code를 이렇게 쓴다.
이 글에서 단 하나만 가져가도 된다면, 바로 "/clear"를 훨씬 자주 쓰라는 것이다.
대화가 길어질수록, 특히 서로 다른 질문을 섞기 시작할수록 AI 에이전트는 점점 더 예측 불가능해진다. 나는 같은 지시를 반복해서 적어야 하더라도 새 프롬프트로 대화를 시작하는 편이 훨씬 효과적이라는 걸 자주 확인했다.
이걸 좀 더 과감하게 적용하기 시작하자 결과가 눈에 띄게 좋아졌다. 그리고 이 조언은 나만의 생각이 아니다.
말할 필요도 없어 보이지만, 나는 Claude를 "기억상실증이 있는 신입"이라고 생각한다. 내 머릿속에 있는 모든 맥락을 프롬프트에 써주는 게 정말 중요하다. 쉽지 않고, 솔직히 나도 아직 잘하지는 못하지만, 맥락을 많이 줄수록 Claude는 더 잘한다. 엣지 케이스가 떠오른다면 반드시 적어라. "이런 종류의 문제를 예전에 이 코드베이스에서 이렇게 풀었다" 같은 기억이 있다면 꼭 적어라! 프롬프트가 정밀할수록 Claude의 성과가 좋아진다. 마음 읽기 기술은 아직 거기까지 가지 못했다.
묵시적 맥락도 생각해 보자. 예를 들어, Claude에게 "모던한 디자인"을 만들라고 하면, 네가 생각하는 모던이 무엇인지 Claude는 모를 가능성이 크다. 대신 예시를 주는 편이 낫다(예: Linear 같은 앱 UI 디자인으로 만들어줘).
Claude Code의 도구들을 MCP 서버로 사용할 수 있다는 걸 알고 있었나?(claude mcp serve) 나는 이걸 알게 된 뒤, 어떤 도구들이 노출되는지 살펴보다가 Task라는 도구를 발견했다. 이 도구의 개념은, 메인 에이전트와 동일한 도구 접근 권한을 가진 서브 에이전트를 띄우고(단, 서브태스크는 또 다른 서브태스크를 만들 수 없다) 결과를 취합해 보고하게 하는 것이다.
이 기능을 알고 있으면 복잡한 문제를 감독자(supervisor)가 필요한 구조로 풀 때 아주 유용하다. 최근에 사용한 예로, 같은 문제를 네 가지 서로 다른 페르소나로 깊이 분석하도록 했던 방법을 공유한다:
> 현재 디렉토리의 파일을 읽고 Tailwind Plus 컴포넌트를 만들기 위한 패턴을 도출해줘. 디자인/컬러 전문가,
접근성 전문가, 모바일/반응형 전문가, 전체 스타일 전문가처럼 우선순위가 조금씩 다른 4개의 서브태스크를
생성해서 각각 분석한 뒤 결과를 비교해.
✻ Thinking…
이제 서로 다른 우선순위를 지닌 4개의 특화된 서브태스크를 생성해 컴포넌트의 다양한 측면을 분석하겠다.
⏺ Task(디자인/컬러 전문가 분석)
⎿ 완료 (도구 24회 사용 · 41.5k 토큰 · 3분 4.4초)
⏺ Task(접근성 전문가 분석)
⎿ 완료 (도구 15회 사용 · 38.0k 토큰 · 2분 0.0초)
⏺ Task(모바일/반응형 전문가 분석)
⎿ 완료 (도구 14회 사용 · 45.5k 토큰 · 2분 1.2초)
⏺ Task(전체 스타일 전문가 분석)
⎿ 완료 (도구 23회 사용 · 58.7k 토큰 · 2분 22.0초)
훌륭하고, 병렬로도 할 수 있다. 메인 태스크의 컨텍스트 윈도를 깔끔히 유지하고 Claude의 집중도를 높이는 아주 좋은 방법이다.
우리처럼 살과 뼈로 된 인간이 그렇듯, Claude도 기본적으로는 게으르다. 무언가를 시키면 가장 손쉬운 경로를 택한다. "최소한 세 가지는 해"라고 하면, 정말로 세 가지만 하고 한 발자국도 더 나아가지 않으려 한다.
확장된 사고(Extended Thinking)를 사용하는 것도 마찬가지다. 특히 기획/계획 단계에서 더 나은 결과를 얻고 싶다면, Claude에게 이른바 "ultrathink" 하라고 지시하길 권한다.
너무 성급하게 전송을 눌렀거나, 이전 메시지를 좀 더 정밀하게 다듬으면 더 좋은 결과가 나오겠다고 느낀다면, ESC를 두 번 눌러 이전 메시지로 점프해 대화를 포크할 수 있다. 나는 프롬프트를 다듬거나 그냥 Claude에게 "다시 시도"하게 할 때 이 기능을 자주 쓴다.
아, 그리고 이전 상태로 돌아가고 싶다면 --resume 플래그로 Claude를 시작해 과거 스레드 목록을 볼 수 있다.
아마 매우 무책임한 일일 테지만, 나는 요즘 대부분 --dangerously-skip-permissions 옵션을 켠 채로 Claude를 실행한다(Peter 덕분에 나쁜 영향 받음). 모든 작업에 필요한 건 아니지만, 오래 도는 작업을 맡겨둘 때마다 매번 새로운 터미널 명령을 실행할 때마다 포커스를 바꿔 확인하고 싶지는 않기 때문이다.
나는 zsh 프로필에 이렇게 설정해 두었다:
alias yolo="claude --dangerously-skip-permissions"
웃긴 점은, Claude가 이제 뭐든 마음대로 할 수 있게 되니 속도 제한 경고를 훨씬 더 자주 보게 되더라.
개인적으로 MCP 서버들에 큰 설렘은 없다. 아직 나에게 실질적인 가치를 준 서버가 거의 없었기 때문이다. 대부분의 경우, 자주 필요하지도 않은 정보로 소중한 토큰을 갉아먹는다고 느낀다. 여기서 소개하는 방식으로 쓰면, Claude Code의 기본 내장 도구만으로도 충분하다.
예전에 Playwright MCP를 써봤다. Claude가 브라우저를 켜고, 버튼을 클릭하고, 스크린샷을 만드는 걸 보는 건 정말 놀랍지만, 실제로는 컨텍스트 윈도를 순식간에 채워버릴 뿐 결과가 나아지는 느낌은 별로 없었다.
Claude에는 SDK가 있다. 특히 stream-json 출력 포맷을 감당할 수 있다면 강력하다. 작은 작업이라도, 프롬프트를 곧장 claude에 넘겨서 답을 출력하게 만들 수 있는 건 훌륭한 지름길이다.
예를 들어, 내 PATH에는 다음을 수행하는 gcauto 실행 파일이 있다:
#!/bin/bash
git commit -m "$(claude -p "스테이지된 git 변경을 보고 요약된 커밋 제목을 만들어줘. 제목만 응답하고 부가 설명은 하지 마.")"
그래서 요즘은 변경을 스테이지하고 gcauto만 실행하면 된다.
Claude Code에는 Shift+Tab을 두 번 눌러 트리거하는 기획 모드가 있다. 이 모드에서는 Claude가 파일 시스템에 쓰기 작업을 하지 않는다.
나는 개인적으로 기획은 다른 모델로 하는 걸 좋아한다. 약간의 변주를 주기 위해서다. 지난 몇 주 동안은 Google AI Studio에서 Gemini 2.5 Pro를 직접 사용했다. 어떻게 가능한지는 모르겠지만, 돈을 안 내고도 되는 것 같기도 하다?
초창기에 내가 했던 초보 실수는 Claude에게 "프레임워크 X로 새 프로젝트를 구성해줘"라고 시키는 것이었다. 물론 동작하긴 하지만, 특히 변화가 빠른 프런트엔드 프레임워크에서는 구식 설정과 프로젝트 구조를 쓰는 경우가 종종 있었다!
이제는 먼저 매뉴얼을 읽게 한다. 방법은 여러 가지다:
Task 도구로 특정 주제에 대해 심층 리서치를 하게 한다심층 리서치 태스크의 예시는 다음과 같다:
> tailwind 3에서 4로 웹사이트를 마이그레이션하는 방법을 조사하는 심층 리서치 태스크를 만들고, 핵심 결과를
간단히 요약해서 보여줘
⏺ Tailwind UI 코드베이스라는 구체적 맥락에 맞춰, Tailwind CSS v3에서 v4로의 마이그레이션을 조사하는 리서치
태스크를 생성하겠다.
⏺ Task(Tailwind v3 → v4 마이그레이션 리서치)
⎿ 완료 (도구 4회 사용 · 29.9k 토큰 · 5분 47.6초)
⏺ 요약
Tailwind CSS v3에서 v4로의 마이그레이션에는 의미 있는 변경이 있지만, 성능(빌드 3.5배 향상)과 개발자 경험이 크게 개선된다.
핵심 포인트:
- 자동 업그레이드 도구 사용: npx @tailwindcss/upgrade@next
- 설정이 JS에서 CSS 우선(@theme 지시문) 방식으로 이동
- 지원 중단된 브라우저, 새로운 import 문법, 제거된 더 deprecated 유틸리티 등 호환성 깨짐이 있음
- 성능 향상: 빌드가 마이크로초 단위로 측정될 수준
- 컨테이너 쿼리가 이제 기본 제공(플러그인 불필요)
업그레이드 도구로 마이그레이션 자체는 단순하지만, 모든 컴포넌트가 올바르게 렌더링되는지 확인하는 테스트 시간을 계획하라.
Superwhisper 같은 앱을 쓰면 프롬프트를 받아쓰기로 쉽게 입력할 수 있다. 긴 프롬프트를 써야 할 때 아이디어를 훨씬 빠르게 머리 밖으로 꺼낼 수 있어서 매우 효과적이었다.
사실 이건 어떤 LLM 입력창에서도 잘 통한다. 전사가 엉망이거나 실수가 많더라도 LLM은 보통 의도를 알아차릴 수 있기 때문이다.
Claude Code에 아쉬운 기능 중 하나는 파일 시스템을 자동으로 스냅샷 뜨는 기능이 없다는 점이다. Claude가 너무 성급해져서 내가 원치 않을 때 대규모 변경을 해버리는 일이 종종 있었다. 좋은 변경을 몇 차례 받은 뒤 이런 일이 일어나면 작업 디렉토리가 꽤 엉망이 된다.
이를 피하려고, 나는 변경을 일찍 그리고 자주 스테이지(즉 git add)하기 시작했다. 한 턴이 마음에 들면 보통 모두 스테이지해 둔다. 나중에 쉽게 되돌릴 수 있다는 심리적 안전망이 생긴다.
나는 Claude Code에 푹 빠져서, 지금은 주요 프로젝트마다 최소 두 개 이상의 워킹 트리를 로컬에 두고 있다. 이렇게 하면 같은 저장소에서 서로 다른 문제를 대상으로 Claude를 두 개 동시에 돌릴 수 있다.
설정도 매우 쉽다! 브랜치를 만드는 것과 비슷하지만, 코드가 다른 디렉터리에 놓인다. git 저장소 안에서 다음을 실행하라:
git worktree add ../tailwindcss.com-2 chore/upgrade-next
자, 이렇게 Claude Code가 마음껏 날뛸 수 있는 또 하나의 작업 디렉토리가 생겼다.
AI 시대에는 코드가 "정말 싸졌다". 즉, 한 번만 쓸 도구라도 죄책감 없이 만들 수 있게 되었다는 뜻이다. 지금 하는 일을 더 쉽게 만들어줄 것이라면 뭐든 허공에서 뚝딱 만들어낼 수 있다. 예를 들어, 최근에 에이전트 없이는 시간 들여 만들지 않았을 것 같은 것들이다:
나는 지금 대규모 변경에 집중하고 있는데, 그 과정에서 Tailwind Plus 컴포넌트들을 많이 건드려야 한다. 순진한 첫 아이디어는 "세심하게 생각해 만든 완벽한 프롬프트 하나로 한 방에 끝내자"였다. 분명 가능하지 않을까?
스포일러: 처참하게 실패했다. 처음 의도했던 대로 동작하지 않았을 뿐만 아니라, 변경사항을 리뷰하거나 의미 있게 수정을 가하는 것도 불가능해졌다. 결국 처음부터 다시 시작했다.
두 번째 시도에서는, 코드를 쓰기 전에 먼저 Claude Code에게 문제들에 대한 질문을 던졌다. 가능한 변경을 토론한 뒤, 한 컴포넌트만 수정하게 했다. 테스트와 피드백을 거쳐 두 개 더, 그다음 다섯 개 더… 이런 식으로 확장해 마지막에는 남은 전부를 처리하게 했다.
완벽한 프롬프트로 한 번에 끝내는 것처럼 화려하진 않지만, 훨씬 빠른 피드백 루프와 감독 하에서 더 빨리 원하는 결과에 도달했다. 수백 개 컴포넌트에 걸친 작업을 손으로 했을 때와 비교하면 시간을 엄청나게 절약했다.
물론 이건 내가 "도구를 잘못 쥔" 탓일 수도 있다. 다른 사람들이 거대한 원샷 태스크에 성공했다는 얘기를 많이 본다(그중 일부는 Claude가 몇 시간씩 연속으로 일한다고도 한다). 하지만 내 경험상, 오류는 금방 누적되고 컨텍스트 윈도가 커질수록 LLM이 맥을 놓치곤 한다(서브에이전트를 많이 돌리고 Gemini 2.5 Pro까지 써 봤는데도). 누군가 비결을 공유해 준다면 정말 기쁘겠다!
위 문제와도 관련된 영역인데, 여기서도 여전히 애를 먹고 있다. AI 에이전트를 칭찬하는 사람들은 보통 LLM이 스스로 결과를 개선할 수 있도록 자율 피드백 루프가 중요하다고 말한다.
하지만 나는 아직 효과적으로 구현하지 못했다. 유닛 테스트나 린터 피드백을 셋업하면, Claude가 그걸 읽고는 "모두 잘된다"고 주장하지만 실제로는 아직 문제/경고가 많이 남아 있는 경우가 잦았다. 페이지로 이동해 스크린샷까지 찍게 만들면, 컨텍스트 윈도가 토큰으로 금방 가득 찬다. 솔직히 말해 내 경험은 썩 좋지 않았다.
대신 나는 개발 서버를 내가 직접 띄워둔다. Claude가 결과를 가져오면, 내가 직접 확인하고 스택 트레이스를 그대로 복붙하거나, 원하는 방향을 더 구체적으로 힌트로 준다. 이 접근이 내가 원하는 결과에 도달할 확률이 훨씬 높다.
무언가 잘못 돌아가는 게 보이면, 보통 ESC를 눌러 Claude를 즉시 중단시키고 방금 한 변경을 되돌리게 한 뒤 원하는 방향으로 더 가이드한다. 물론 이건 옆에서 지켜볼 때만 가능하고, 솔직히 말해 나도 종종 놓치긴 한다.
Claude Code에는 숨겨진 /terminal-setup 명령이 있다. 이 명령은 현재 터미널 설정을 살펴본 뒤, Shift+Enter로 새 줄을 넣거나 적절한 벨 타입을 설정하는 등 몇 가지 변경을 해 준다. Warp에서는 새 줄 설정을 해결하지는 못했지만, 이제 Claude가 사람의 입력이 다시 필요할 때 터미널이 삑 소리를 내준다.
또 비교적 새로운 기능으로, IDE에서 어떤 파일을 열어두었는지, 린터 경고는 무엇인지 등을 Claude가 볼 수 있게 연결할 수 있다. IDE의 터미널에서 claude를 실행하거나 /ide 명령을 실행하면 설정된다. "린터 이슈 고쳐줘" 같은 지시를 내릴 때 유용하다.
Claude Code에서는 커스텀 슬래시 명령어를 만들 수 있다. 비슷한 프롬프트를 두 번 이상 쓰게 된다면 시간을 더 절약할 기회다.
나는 Claude가 좋든 싫든 열심히 만들어대는 임시 스크립트나 헬퍼 파일을 정리(cleanup)하는 걸 하나 만들어 두었다.
Claude Code에는 이미지를 붙여넣을 수 있다. 이미지를 직접 복사하거나 파일을 터미널로 드래그하면, 다음 메시지의 첨부로 추가된다. 작은 시각적 변경을 설명하고 싶을 때 가끔 쓴다.
Claude Code는 내가 많은 프로그래밍 작업에 접근하는 방식을 근본적으로 바꿨다. 완벽하진 않고 워크플로를 조정해야 하긴 하지만, 생산성 향상은 실제다. 핵심은 자동화와 인간 감독 사이의 균형을 찾고, 다양한 접근을 기꺼이 실험하는 것이다.
AI 코딩 어시스턴트가 계속 발전함에 따라, 여기의 패턴들도 달라질 것이다. 하지만 지금으로서는, 이 기법들이 내 일상 코딩을 훨씬 더 생산적이고, 감히 말해 더 즐겁게 만들어 주고 있다.