
Claude Code로 장시간·자율적으로 개발을 진행하기 위한 설계
요약
Claude Code를 활용해 AI 코딩 에이전트가 자율적으로 개발을 수행할 수 있도록 설계하는 전략을 소개합니다. 단순 태스크 지시를 넘어 목표 설정, 사전 조사, 시각화, 병렬 에이전트 활용을 통해 개발 효율을 극대화하는 방법을 다룹니다.
핵심 포인트
- 세부 태스크 대신 명확한 목표(Goal)와 성공 조건을 전달할 것
- 구현 전 사전 조사를 통해 미지의 요소를 줄여 재작업 방지
- HTML 목업 등을 활용해 계획을 시각화하여 인식 차이 최소화
- 독립적인 작업은 여러 에이전트로 나누어 병렬 구동 고려
개요
Claude Code 팀의 Thariq Shihipar 씨가 AI 코딩 에이전트(AI Coding Agent)를 활용하여 개발을 진행하는 방법을 해설했습니다.
중요한 것은 AI에게 단발적인 작업을 의뢰하는 것이 아닙니다.
다음의 3가지를 설계하여, AI가 자율적으로 작업과 검증을 반복할 수 있는 환경을 만드는 것이 핵심 테마입니다.
Goal (목표)
↓
Loop (반복·검증)
...
AI 코딩의 성과는 단순한 프롬프트(Prompt) 작성법뿐만 아니라, 목표, 작업 공정, 검증 방법을 어떻게 설계하느냐에 따라 크게 달라집니다.
1. 태스크가 아닌 골(Goal)을 전달하기
Claude Code에 대해 다음과 같은 세세한 태스크(Task)만을 지시하는 방법이 있습니다.
- 이 함수를 수정할 것
- 이 파일을 생성할 것
- 이 CSS를 변경할 것
- 이 테스트를 추가할 것
하지만 세세한 태스크만을 전달하면, Claude는 지시된 범위 내에서만 판단할 수 있습니다.
먼저 공유해야 할 것은 최종적으로 실현하고자 하는 골(Goal)입니다.
예
사용자가 프로필 정보를 편집할 수 있는 화면을 구현한다.
성공 조건:
- 이름과 자기소개를 편집할 수 있다
...
골(Goal)과 성공 조건이 명확하면, Claude 스스로 필요한 작업을 분해하기 쉬워집니다.
- 기존 코드 조사
- API 사양 확인
- UI 구현
- 유효성 검사(Validation) 추가
- 테스트 작성
- 동작 확인
인간의 역할은 모든 구현 절차를 쓰는 것에서, 목적과 완료 조건을 정의하는 것으로 변화합니다.
2. 구현 전에 미지의 부분을 줄이기
Claude에게 갑자기 구현을 시키는 것이 아니라, 먼저 조사를 수행하게 합니다.
조사 대상으로는 다음과 같은 항목이 있습니다.
- 기존 코드가 어떤 구조로 되어 있는지
- 유사한 구현이 리포지토리(Repository) 내에 존재하는지
- 이용 가능한 공통 컴포넌트(Component)가 있는지
- API나 데이터 구조가 어떻게 되어 있는지
- 사양에 모호한 부분이 없는지
- 기술적인 리스크가 없는지
- 어떻게 완성을 확인할 것인지
좋은 계획이란 작업 절차를 세세하고 대량으로 쓰는 것이 아닙니다.
구현 중에 판단이 멈출 것 같은 미지의 요소를 사전에 줄여두는 것이 중요합니다.
조사를 먼저 수행하는 장점
- 기존 구현과 중복되는 코드를 만들기 어려워짐
- 프로젝트의 설계 방침에서 벗어나기 어려워짐
- 구현 도중의 재작업(Rollback)을 줄일 수 있음
- AI가 잘못된 전제로 작업할 가능성을 낮출 수 있음
- 인간이 판단해야 할 항목을 빠른 단계에서 특정할 수 있음
3. 계획을 시각화하기
복잡한 기능을 구현할 경우, Markdown을 통한 문장만으로는 완성 이미지를 공유하기 어려울 때가 있습니다.
그러한 경우에는 HTML 등을 사용하여 계획을 시각화하는 방법이 유효합니다.
시각화에 적합한 것
- 화면 레이아웃
- 사용자 플로우(User Flow)
- 상태 전이
- 컴포넌트 구성
- 비교표
- 네비게이션 구조
- 리뷰용 주석
- 에러 상태나 로딩 상태
특히 프론트엔드(Frontend) 개발에서는 문장뿐인 사양서보다, 간단한 HTML 목업(Mock)이나 화면 이미지를 작성하는 편이 인식의 차이를 빠르게 발견할 수 있습니다.
예
사양을 읽는다
↓
Claude에게 화면 구성을 HTML로 만들게 한다
...
갑자기 본 프로덕션 코드를 만드는 것이 아니라, 저비용의 결과물로 방향성을 확인하는 것이 포인트입니다.
4. 여러 에이전트를 병렬로 구동하기
모든 작업을 하나의 Claude에게 순차적으로 처리하게 할 필요는 없습니다.
독립적으로 진행할 수 있는 작업은 여러 에이전트로 나누어 병렬 실행할 수 있습니다.
역할 분담의 예
| 에이전트 | 담당 |
|---|---|
| 조사 담당 | 코드베이스나 기존 구현을 조사한다 |
| ... |
단, 단순히 에이전트의 수를 늘리는 것만으로는 효과적이지 않습니다.
역할이 모호한 채로 병렬화하면 다음과 같은 문제가 발생합니다.
- 동일한 작업을 여러 에이전트가 수행함
- 서로 다른 설계 방침으로 코드를 작성함
- 파일 변경이 충돌함
- 결과물의 형식이 통일되지 않음
- 누가 최종 판단을 내리는지 알 수 없게 됨
각 에이전트에게는 적어도 다음 항목을 명확히 전달해야 합니다.
- 역할
- 조사·변경 범위
- 입력 정보
...
5. 만드는 에이전트와 검증하는 에이전트를 나누기
AI가 작성한 코드를 동일한 AI에게 그대로 평가하게 하는 것만으로는 불충분한 경우가 있습니다.
구현한 에이전트는 자신이 세운 전제나 선입견을 그대로 이어받을 가능성이 있기 때문입니다.
따라서 다음과 같이 역할을 분리합니다.
Creator
결과물을 생성하는 에이전트입니다.
- 코드를 구현한다
- UI를 생성한다
- 테스트를 작성한다
- 문서를 작성한다
Verifier
결과물을 검증하는 에이전트입니다.
- 요구사항을 충족하는지 확인한다
- 테스트를 실행한다
- 버그나 고려 사항 누락을 찾는다
- 기존 설계와 일치하는지 확인한다
- 보안 및 성능을 확인한다
Verifier에는 완성된 코드뿐만 아니라, 원래의 요구사항과 성공 조건도 공유합니다.
입력:
- 원래의 요구사항
- 성공 조건
...
작성과 검증을 별도의 컨텍스트 (Context)에서 수행함으로써, 구현 시의 선입견을 가져오지 않고 평가하기 쉬워집니다.
6. 검증 가능한 루프를 만든다
AI 에이전트에게 장시간 작업을 시키기 위해서는, 단순히 "완성될 때까지 진행해"라고 지시하는 것만으로는 불충분합니다.
AI 스스로가 결과를 확인할 수 있는 메커니즘이 필요합니다.
기본적인 루프
계획
↓
구현
...
이 루프를 성립시키기 위해서는 AI가 이용할 수 있는 검증 수단을 마련합니다.
검증 수단의 예
- 유닛 테스트 (Unit Test)
- 통합 테스트 (Integration Test)
- E2E 테스트 (End-to-End Test)
- TypeScript의 타입 체크 (Type Check)
- ESLint
- Stylelint
- 빌드 (Build)
- 브라우저 조작
- 스크린샷
- API 응답 확인
- 로그 확인
- 성능 측정
- 접근성 체크
AI에게 중요한 것은 "구현했다"라는 사실이 아니라, "요구사항을 충족했음을 확인할 수 있다"라는 상태입니다.
7. 시스템 프롬프트나 규칙을 너무 늘리지 않는다
Claude Code에서는 프로젝트 고유의 규칙을 CLAUDE.md 등에 기술할 수 있습니다.
하지만 규칙을 많이 쓰면 쓸수록 정확도가 올라가는 것은 아닙니다.
정보가 너무 많으면 다음과 같은 문제가 발생합니다.
- 정말 중요한 지시가 묻힌다
- 규칙끼리 충돌한다
- 현재 태스크에 불필요한 정보까지 읽어 들인다
- 컨텍스트 (Context)를 많이 소비한다
- 상황에 따른 유연한 판단이 어려워진다
항상 읽어 들여야 하는 정보는 중요도가 높고, 폭넓은 태스크에서 필요로 하는 것으로 압축합니다.
항상 읽어 들여야 하는 정보의 예
- 프로젝트의 목적
- 기본적인 기술 스택 (Tech Stack)
- 중요한 설계 원칙
- 필수 검증 커맨드 (Command)
- 반드시 지켜야 할 금지 사항
- 디렉토리 구성의 기본 방침
특정 작업에서만 필요한 상세한 절차는 Skills나 개별 문서로 분리합니다.
CLAUDE.md
├── 프로젝트 전체에서 필요한 최소한의 규칙
│
...
필요한 정보를 필요한 타이밍에 읽어 들이도록 설계하는 것이 중요합니다.
8. AI 시대에도 엔지니어의 기술력은 필요하다
AI가 코드를 작성하게 되더라도, 엔지니어의 기술력이 불필요해지는 것은 아닙니다.
요구되는 기술의 비중이 변화합니다.
기존부터 중요한 능력
- 코드를 작성하는 능력
- 라이브러리나 프레임워크를 다루는 능력
- 버그를 수정하는 능력
- 시스템을 설계하는 능력
AI 활용으로 중요성이 커지는 능력
- 적절한 목표를 정의하는 능력
- 성공 조건을 언어화하는 능력
- 문제를 분해하는 능력
- 미지의 요소를 특정하는 능력
- AI에게 전달할 컨텍스트 (Context)를 설계하는 능력
- 검증 방법을 설계하는 능력
- AI의 결과물을 평가하는 능력
- 여러 에이전트를 조정하는 능력
- 필요한 도구와 환경을 준비하는 능력
AI가 구현을 담당하는 장면이 늘어날수록, 인간에게는 결과물의 올바름을 판단하는 능력이 요구됩니다.
실무에서 도입하기 쉬운 진행 방식
영상의 내용을 실무에 도입할 경우, 처음부터 복잡한 멀티 에이전트 환경을 구축할 필요는 없습니다.
다음 순서로 단계적으로 도입할 수 있습니다.
스텝 1: 성공 조건을 명문화한다
태스크를 전달할 때, 구현 내용뿐만 아니라 완료 조건을 기술합니다.
## 목표
문의 양식을 구현한다.
## 성공 조건
...
스텝 2: 구현 전 조사를 의뢰한다
아직 코드는 변경하지 말고, 다음 내용을 조사해 주세요.
- 관련 기존 구현
- 재사용 가능한 컴포넌트
...
스텝 3: 구현과 검증을 나눈다
구현을 완료한 후, 다른 관점에서 다음 항목을 검증해 주세요.
- 요구사항 누락
- 버그
...
스텝 4: 검증 커맨드를 고정한다
스텝 4: 검증 커맨드를 고정한다
완료 전에 반드시 다음을 실행하세요.
- npm run typecheck
- npm run lint
...
스텝 5: 필요에 따라 병렬화한다
조사, 구현, 테스트, 리뷰 등 서로 독립적인 작업부터 병렬화합니다.
결론
이 영상의 주장은 다음 한 문장으로 요약할 수 있습니다.
AI 코딩의 생산성은 프롬프트(Prompt)의 숙련도뿐만 아니라, 목표(Goal), 작업 루프(Work Loop), 검증 공정(Verification Process)을 어떻게 설계하느냐에 따라 결정된다.
Claude Code를 단순한 코드 생성 도구로 사용하는 것이 아니라, 다음과 같은 개발 환경을 구축하는 것이 중요합니다.
- 목표와 성공 조건을 명확히 한다
- 구현 전에 미지의 부분을 조사한다
- 작업을 적절히 분해한다
- 독립된 작업을 병렬로 실행한다
- 만드는 역할과 검증하는 역할을 분리한다
- 테스트나 화면 등 객관적인 증거로 완료를 판단한다
- 상시 읽어들이는 규칙을 최소한으로 유지한다
- 필요한 지식은 Skills나 문서로 분리한다
Claude Code의 성능을 끌어내는 열쇠는 거대한 지시서를 만드는 것이 아닙니다.
AI가 스스로 조사, 구현, 검증, 수정을 반복할 수 있는 메커니즘을 설계하는 것입니다.
참고 영상
- YouTube:
https://www.youtube.com/watch?v=IHbsfvbfAto&t=46s
주석
본 기사는 영상에서 다루고 있는 주요 테마를 정리한 것입니다. 발언을 축어적으로 번역한 것이 아니라, 내용을 이해하기 쉽도록 구성과 표현을 일부 재정리하였습니다.
Discussion

AI 자동 생성 콘텐츠
본 콘텐츠는 Zenn AI의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기