시작하기 전에 — 몰라도 된다

Claude Code는 엄청난 무기다.

안드로이드 개발 경험이 전혀 없어도, Kotlin이 뭔지 몰라도 괜찮다. “동화책을 각 페이지별로 사진 찍으면 아이에게 재미있게 읽어주는 앱을 만들어줘”라고 한 마디만 해도, 클로드는 알아서 계획을 세우고 어떤 언어를 쓸지까지 추천해 준다.

Kotlin을 전혀 모르지만 Kotlin 기반의 코드가 작성되고, 빌드와 배포에 필요한 도구들은 클로드가 중간중간 승인을 요청할 때 허락만 해 주면 전부 설치된다.

기본 작업 흐름

Claude Code의 작업 순서는 다음과 같다.

플랜 → 코드 생성 → 테스트 작성 → 코드 리뷰 및 수정 → 빌드 → PR 요약 작성

또 하나 주목할 점은, 지금 사용 중인 Claude Code 데스크톱 앱이 중요한 의사결정 순간마다 여러 선택지를 제시하며 의견을 묻는다는 것이다. 프롬프트가 다소 두루뭉술해도, 꼭 짚고 넘어가야 할 부분은 클로드가 먼저 정확하게 물어봐 준다.

모델 전략 — 토큰을 아끼며 쓰는 법

현재 사용 중인 플로우는 이렇다.

“플랜 작성: Opus 4.8 (최상위 모델)”

“각 구현 작업: Sonnet 4.6 (범용 모델)에 위임”

Opus 4.8로 전 과정을 진행하면 토큰 소진이 너무 빠르다. GitHub Copilot 기준으로 Sonnet이 1x 토큰이라면, Opus 4.6은 3x, Opus 4.8은 무려 7x - 16x (GitHub-copilot 기준)에 달한다.

“토큰 관리 팁: 에이전트, 스킬, Claude.md 파일을 적절히 조합하면 토큰 소모를 크게 줄일 수 있다.”

병렬 에이전트 — 빠르게, 효율적으로

Claude Code는 에이전트 기반 아키텍처 덕분에 병렬 처리가 가능하다. 하나의 작업을 순차적으로 처리하는 것보다, 가능한 경우 병렬로 나눠 실행하면 훨씬 빠르게 결과를 받을 수 있다.

병렬 에이전트를 쓰더라도 토큰 소모 총량 자체는 크게 달라지지 않는다. 하지만 에이전트에 사용할 모델을 미리 지정해 둘 수 있다는 게 핵심이다. 예를 들어, 코딩 전담 에이전트를 만들고 Sonnet 4.6으로 고정해 두면 된다.

이 에이전트는 어떻게 만드냐고? 물론 클로드에게 시키면 된다.

“Kotlin coder agent를 만들어줘. Sonnet 4.6 모델을 사용해줘.”

이후 이렇게 명령해 두면 된다.

“이 프로젝트에서 플랜이 작성되면 code agent를 실행해서 코드를 작성해줘.”

이것만으로도 병렬 에이전트 운용의 토대가 갖춰지고, 토큰도 효율적으로 소모하면서 코드를 만들 수 있다.

유닛 테스트 — 스킬로 만들어 두는 방어막

개발 분야가 무엇이든, 향후 유지보수와 코드 검증을 위해 유닛 테스트는 필수다. 코드가 나중에 수정되더라도 기존 동작이 깨지지 않게 방어해 준다.

이것도 스킬로 만들어 두면 된다.

“커밋되지 않은 수정된 코드 중에 유닛 테스트가 필요한 곳에 테스트를 작성해줘. 너무 뻔한 테스트는 필요 없고, 이 기능에 핵심적인 테스트 위주로 작성해줘. 코드는 coder agent를 호출해서 작성해줘.”

이 프롬프트로 /unitTest 같은 이름의 스킬이 생성된다. 이후로는 /unitTest

라고 입력하든, “유닛 테스트 작성해줘”라고 말하든, 동일한 맥락에서 Sonnet 4.6 모델로 테스트 코드가 자동으로 작성된다.

코드 리뷰 — 에이전트가 동료 개발자가 된다

코드 리뷰는 실제 프로덕션 개발 환경에서도 여전히 여러 개발자가 수정된 코드를 한 줄 한 줄 읽고 검증하는 과정이다. 버그, 코드 스타일, 로직에 대한 다양한 의견이 이 과정에서 나온다.

이 과정을 에이전트로 자동화해 두면, 동료 개발자에게 전달되는 코드가 처음부터 훨씬 깔끔하고 정돈된 상태가 된다.

리뷰 에이전트, md 작성 에이전트 등을 Sonnet 4.6 기반으로 미리 만들어 두고, 코드 리뷰 스킬도 만들어 두자.

“커밋되지 않은 수정된 코드를 리뷰하고 수정해줘. 클린 코드 가이드를 따르고 코드 중복은 피해줘. 리뷰어 에이전트를 사용해서 작업해줘.”

빌드 & 폰 설치 — 케이블 하나면 충분하다

구현한 기능은 최소 동작 단위로 만들고, 실제 폰에 설치해서 바로 테스트해 보는 게 좋다.

폰에 설치하는 방법이 복잡하냐고? 전혀 아니다. 케이블로 폰을 연결하고 클로드에게 그냥 말하면 된다.

“빌드해서 폰에 설치해줘.”

필요한 도구를 알아서 설치하고, APK를 빌드해서 폰에 올려준다. 다만 폰의 개발자 옵션 및 디버그 설정은 미리 켜 두어야 하는데, 이 부분도 클로드가 친절하게 안내해 준다.

PR과 브랜치 관리 — 무너지지 않기 위한 안전망

하나의 기능을 완성했으면, 다음 기능 개발에 앞서 Pull Request(PR)를 생성해서 어떤 기능이 추가되었는지 정리하고, Main 브랜치에 merge해 두는 것이 좋다.

바이브 코딩은 다양한 아이디어를 빠르게 구현해 보고 다시 되돌리는 과정이 많다. 브랜치 관리를 해 두지 않으면, 잘 동작하던 코드가 어느 순간 전부 뒤엉켜 손 쓸 수 없는 상태가 되기 쉽다.

반대로, 브랜치를 잘 관리해 두면 과거의 특정 시점 — 어떤 기능까지는 잘 동작하던 그 지점 — 으로 언제든 돌아갈 수 있다. GitHub 같은 버전 관리 시스템을 적극 활용하자.

세션 관리 — 항상 새로 시작하라

하나의 기능이 정리되면, 다음 기능은 반드시 새로운 Claude Code 세션을 열어서 시작한다. 사실 테스트 작성, 리뷰, 빌드, PR 생성 등 각 단계도 가능하면 새 세션에서 시작하는 게 좋다.

컨텍스트(맥락)가 가벼울수록 토큰 소모도 줄고, 클로드의 집중도도 올라간다. 항상 새 세션을 열거나,

/clear를 실행하자.

Claude.md — 클로드에게 주는 프로젝트 브리핑

새 세션을 열 때마다 클로드는 전체 프로젝트를 파악하려고 코드와 문서를 열어보며 토큰을 소모한다. 이를 막기 위해 Claude.md 파일을 만들고 관리하면 된다. 이것도 클로드 코드에게 시키면 된다.

“이 프로젝트에 대한 Claude.md 파일을 작성해줘. 한 문서에 다 쓰지 말고, 세분화해서 여러 파일로 나눠줘. md 작성 스킬을 사용해서 작성해줘.”

여기서 스킬은 마크다운(md) 작성 스킬이며, 이 스킬은 md 작성 에이전트를 호출한다.

세분화된 Claude.md 파일 덕분에 클로드는 해당 기능에 꼭 필요한 문서만 빠르게 읽고 가볍게 세션을 시작할 수 있다. 기능이 늘어날수록 Claude.md 도 함께 업데이트해 주는 것이 좋다.

결국 Claude Code를 잘 쓴다는 건, 클로드에게 무엇을 시킬지 아는 것이다.

그리고 그 방법을 알려주는 것도, 클로드다.

#클로드코드 #ClaudeCode #바이브코딩 #AI코딩 #AI개발 #생성형AI #앱개발 #안드로이드개발 #안드로이드앱개발 #코틀린 #Kotlin #사이드프로젝트 #1인개발 #개발생산성 #개발자동화 #유닛테스트 #코드리뷰 #깃허브 #GitHub #PR관리 #개발일지 #앱출시 #플레이스토어 #ClaudeMD #에이전트개발