
AI 코딩 도구를 설치만 해놓고 자동완성 정도만 쓰고 있다면, 전체 능력의 20%밖에 활용 못하고 있는 거예요. 이 글에서는 기획부터 배포까지 개발 프로세스 전체에 AI를 녹여넣는 실전 워크플로우를 공유합니다.
📌 이 글은 “AI 기반 개발 실전 가이드” 시리즈의 세 번째(마지막) 편이에요.
- 1편: AI 코딩 어시스턴트 200% 활용법
- 2편: 개발자를 위한 프롬프트 엔지니어링
- 3편: AI 기반 개발 워크플로우 (현재 글)
개발 단계별 AI 활용 맵
개발의 모든 단계에서 AI가 도울 수 있어요. 각 단계별 추천 도구와 프롬프트를 정리했어요.
| 단계 | AI 활용법 | 추천 도구 | 시간 절약 |
|---|---|---|---|
| 📋 기획 | 요구사항 분석, 유저스토리 생성 | Claude, ChatGPT | 40~50% |
| 🏗️ 설계 | API 설계, DB 스키마, 아키텍처 | Claude Code | 30~40% |
| ⌨️ 코딩 | 코드 생성, 자동완성, 리팩토링 | Cursor, Copilot | 50~70% |
| 🧪 테스트 | 단위/통합 테스트 생성 | Copilot, Claude Code | 60~80% |
| 🔍 코드 리뷰 | 자동 리뷰, 버그 탐지 | GitHub Actions + AI | 30~40% |
| 🚀 배포 | CI/CD 설정, IaC 생성 | Claude Code | 40~50% |
1단계: 기획 — AI로 요구사항 뽑아내기
유저스토리 생성 프롬프트
우리 서비스는 [소셜 독서 플랫폼]이야.
핵심 기능은 [책 리뷰 작성, 독서 모임, 추천 시스템]이야.
이 서비스의 유저스토리를 작성해줘:
- 사용자 유형: 일반 독자, 작가, 모임 운영자
- 형식: "As a [사용자], I want [기능], so that [가치]"
- 각 스토리에 수용 기준(Acceptance Criteria) 3개씩
- 우선순위: Must/Should/Could 분류
- 예상 개발 공수(스토리 포인트) 포함
💡 꿀팁: AI가 생성한 유저스토리를 팀과 함께 리뷰하면, 놓치기 쉬운 엣지케이스를 초기에 발견할 수 있어요. “이 기능에서 사용자가 예상과 다르게 행동할 수 있는 시나리오를 5가지 알려줘”라고 추가 질문하세요!
PRD(제품 요구사항 문서) 초안 생성
위 유저스토리를 바탕으로 PRD 초안을 작성해줘.
포함 항목:
1. 프로젝트 개요 (배경, 목적, 범위)
2. 기능 요구사항 (우선순위별)
3. 비기능 요구사항 (성능, 보안, 확장성)
4. 기술 스택 추천 (근거 포함)
5. 마일스톤 (4주 스프린트 기준)
6. 리스크 및 완화 방안
2단계: 설계 — AI와 함께 아키텍처 그리기
API 설계 + DB 스키마 동시 생성
독서 플랫폼의 '책 리뷰' 기능에 대해
API 엔드포인트와 DB 스키마를 함께 설계해줘.
기술 스택: Node.js + Express + PostgreSQL + Prisma
요구사항:
- 리뷰 CRUD (생성/조회/수정/삭제)
- 별점 (1~5), 본문 (최대 5000자), 스포일러 토글
- 좋아요/신고 기능
- 정렬: 최신순, 좋아요순, 별점순
- 페이지네이션 (커서 기반)
다음을 생성해줘:
1. Prisma 스키마
2. REST API 엔드포인트 목록
3. 요청/응답 TypeScript 타입
4. 필요한 인덱스
⚠️ 주의: AI가 생성한 DB 스키마는 반드시 팀의 DBA나 시니어 개발자가 검토해야 해요. 특히 인덱스 전략과 정규화 수준은 실제 트래픽 패턴에 따라 달라지거든요.
3단계: 코딩 — AI와 페어 프로그래밍
실전 프로젝트: “AI와 함께 REST API 만들기”
실제로 책 리뷰 API를 만들어 볼게요. 각 단계에서 AI를 어떻게 활용하는지 보여드릴게요.
Step 1: 프로젝트 초기화 (Claude Code)
# Claude Code에게 요청
"Node.js + Express + TypeScript + Prisma 프로젝트를 초기화해줘.
ESLint(Airbnb), Prettier, husky, lint-staged도 설정해줘.
폴더 구조는 feature-based로."
AI가 생성하는 프로젝트 구조:
src/
├── features/
│ ├── auth/
│ │ ├── auth.controller.ts
│ │ ├── auth.service.ts
│ │ ├── auth.routes.ts
│ │ └── auth.test.ts
│ ├── reviews/
│ │ ├── review.controller.ts
│ │ ├── review.service.ts
│ │ ├── review.routes.ts
│ │ └── review.test.ts
│ └── books/
├── shared/
│ ├── middleware/
│ ├── utils/
│ └── types/
├── config/
└── app.ts
Step 2: 핵심 로직 작성 (Cursor)
Cursor에서 Cmd+K로 인라인 편집:
// review.service.ts
// Cursor에게: "리뷰 CRUD 서비스를 작성해줘.
// Prisma 사용, 커서 기반 페이지네이션, 에러 핸들링 포함"
export class ReviewService {
async createReview(data: CreateReviewInput, userId: string) {
// 중복 리뷰 방지
const existing = await prisma.review.findUnique({
where: {
userId_bookId: { userId, bookId: data.bookId }
}
});
if (existing) {
throw new ConflictError('이미 이 책에 리뷰를 작성했습니다');
}
const review = await prisma.review.create({
data: {
...data,
userId,
},
include: {
user: { select: { id: true, nickname: true, avatar: true } },
book: { select: { id: true, title: true } },
},
});
// 책의 평균 별점 업데이트
await this.updateBookRating(data.bookId);
return review;
}
async getReviews(bookId: string, cursor?: string, limit = 20) {
const reviews = await prisma.review.findMany({
where: { bookId, isDeleted: false },
take: limit + 1, // 다음 페이지 존재 여부 확인용
...(cursor && {
cursor: { id: cursor },
skip: 1,
}),
orderBy: { createdAt: 'desc' },
include: {
user: { select: { id: true, nickname: true, avatar: true } },
_count: { select: { likes: true } },
},
});
const hasNext = reviews.length > limit;
const items = hasNext ? reviews.slice(0, -1) : reviews;
return {
items,
nextCursor: hasNext ? items[items.length - 1].id : null,
};
}
}
🔥 핵꿀팁: Cursor의 Composer 모드를 사용하면 “이 서비스에 맞는 컨트롤러, 라우터, 에러 핸들러를 한번에 만들어줘”로 여러 파일을 동시에 생성할 수 있어요!
Step 3: 테스트 작성 (Copilot)
테스트 파일을 열고, 서비스 파일을 옆 탭에 열어두면:
// review.test.ts
describe('ReviewService', () => {
describe('createReview', () => {
it('should create a review successfully', async () => {
// Copilot이 서비스 코드를 보고 자동완성
const result = await reviewService.createReview({
bookId: 'book-1',
rating: 4,
content: '정말 좋은 책이에요!',
hasSpoiler: false,
}, 'user-1');
expect(result).toHaveProperty('id');
expect(result.rating).toBe(4);
expect(result.user.id).toBe('user-1');
});
it('should throw ConflictError when duplicate review', async () => {
// 첫 번째 리뷰 생성
await reviewService.createReview(mockReviewData, 'user-1');
// 같은 사용자가 같은 책에 다시 리뷰 시도
await expect(
reviewService.createReview(mockReviewData, 'user-1')
).rejects.toThrow(ConflictError);
});
});
});
4단계: 테스트 — AI로 테스트 커버리지 높이기
테스트 생성 프롬프트
아래 서비스 코드의 테스트를 작성해줘.
프레임워크: Jest + Supertest
목표 커버리지: 90%
필수 포함 테스트:
1. 정상 케이스 (각 메서드별 2~3개)
2. 인증/인가 실패
3. 유효성 검증 실패 (잘못된 입력 5가지)
4. 동시성 테스트 (같은 리소스 동시 접근)
5. 페이지네이션 엣지케이스 (빈 결과, 마지막 페이지)
Mock 설정:
- Prisma는 jest-mock-extended 사용
- 외부 API는 msw(Mock Service Worker) 사용

💡 꿀팁: AI에게 “이 코드에서 테스트하기 가장 어려운 부분이 뭐야?”라고 먼저 물어보세요. 복잡한 의존성이나 비동기 로직을 어떻게 테스트할지 가이드를 받을 수 있어요.
5단계: AI 코드 리뷰 자동화 (GitHub Actions + AI)
PR이 올라올 때마다 AI가 자동으로 코드 리뷰를 해주는 파이프라인을 구축해보겠습니다.
GitHub Actions 워크플로우
# .github/workflows/ai-code-review.yml
name: AI Code Review
on:
pull_request:
types: [opened, synchronize]
permissions:
contents: read
pull-requests: write
jobs:
ai-review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Get changed files
id: changed
run: |
echo "files=$(git diff --name-only origin/$...HEAD | tr '\n' ' ')" >> $GITHUB_OUTPUT
- name: AI Code Review
uses: coderabbitai/ai-pr-reviewer@latest
with:
debug: false
review_simple_changes: false
review_comment_lgtm: false
openai_light_model: gpt-4o-mini
openai_heavy_model: gpt-4o
system_message: |
당신은 시니어 백엔드 개발자입니다.
코드 리뷰 시 다음에 집중하세요:
- 보안 취약점 (Critical로 분류)
- 성능 이슈 (N+1 쿼리, 불필요한 연산)
- 에러 핸들링 누락
- 타입 안전성
한국어로 리뷰해주세요.
더 간단한 대안: GitHub Copilot 코드 리뷰
GitHub Copilot Enterprise를 사용한다면 별도 설정 없이 PR에서 바로 AI 리뷰를 받을 수 있어요:
PR 코멘트에 @copilot review 를 입력하면 끝!
⚠️ 주의: AI 코드 리뷰는 인간 코드 리뷰를 보완하는 거지 대체하는 게 아니에요. AI가 놓치는 비즈니스 로직 오류, 아키텍처 결정의 적절성 등은 반드시 사람이 확인해야 해요.
6단계: 배포 — AI로 인프라 코드 생성
Docker + CI/CD 파이프라인 생성
이 Node.js 프로젝트의 배포 파이프라인을 만들어줘.
요구사항:
- 멀티스테이지 Dockerfile (dev/prod)
- docker-compose (로컬 개발용: app + PostgreSQL + Redis)
- GitHub Actions CI/CD
- PR: lint → test → build 체크
- main merge: 자동 배포
- 환경변수 관리: .env.example 파일
보안 규칙:
- 시크릿은 GitHub Secrets 사용
- 이미지에 불필요한 파일 포함 금지 (.dockerignore)
- non-root 유저로 실행
팀에서 AI 도구 도입할 때 설득하는 법

“우리 팀에도 AI 도구 쓰자”고 제안하고 싶은데, 어떻게 설득할지 막막하다면 이 전략을 써보세요.
1. 데이터로 말하기
📊 2주간 파일럿 결과
- 참여 인원: 3명 (백엔드 2, 프론트 1)
- 측정 기간: 스프린트 2회
결과:
- 코드 작성 시간: 평균 35% 감소
- PR 리뷰 시간: 평균 20% 감소
- 테스트 커버리지: 65% → 82% (AI 생성 테스트 포함)
- 버그 발생률: 변화 없음 (오히려 약간 감소)
2. 우려 사항 미리 대응하기
| 우려 | 대응 |
|---|---|
| “코드 품질이 떨어지지 않나?” | AI 생성 코드도 기존과 동일한 코드 리뷰 프로세스를 거침 |
| “기밀 코드가 유출되지 않나?” | GitHub Copilot Business는 코드를 학습에 사용하지 않음. 온프레미스 옵션도 있음 |
| “개발자가 실력이 퇴화하지 않나?” | AI는 보일러플레이트를 줄여주고, 개발자는 설계/아키텍처에 더 집중할 수 있음 |
| “비용이 부담되지 않나?” | 개발자 인건비 대비 도구 비용은 1~2%. 생산성 10%만 올라도 ROI 충분 |
3. 점진적 도입 로드맵
1주차: 관심 있는 2~3명이 개인 프로젝트에서 시범 사용
2주차: 결과 공유 + 팀 데모 세션
3~4주차: 팀 전체 파일럿 (1 스프린트)
5주차: 결과 분석 + 가이드라인 수립
6주차~: 정식 도입 + 팀 프롬프트 라이브러리 구축
생산성 측정하는 방법 (실제 데이터)
“AI 써서 진짜 빨라졌나?”를 객관적으로 측정하는 방법이에요.
측정 지표
| 지표 | 측정 방법 | 기대 효과 |
|---|---|---|
| Cycle Time | PR 생성 → Merge까지 시간 | 20~30% 감소 |
| 코드 생산량 | 주당 커밋/PR 수 | 30~50% 증가 |
| 테스트 커버리지 | CI 리포트 | 15~25%p 증가 |
| 버그 발생률 | 릴리즈 후 버그 티켓 수 | 유지 또는 감소 |
| 개발자 만족도 | 월간 서베이 | 향상 |
실제 측정 도구
# GitHub CLI로 PR 통계 가져오기
gh pr list --state merged --json createdAt,mergedAt,additions,deletions \
--jq '.[] | {
pr_time: (((.mergedAt | fromdate) - (.createdAt | fromdate)) / 3600 | floor),
lines: (.additions + .deletions)
}'
# AI 도입 전후 비교 스크립트
echo "=== AI 도입 전 (최근 30일) ==="
gh pr list --state merged --limit 50 \
--json createdAt,mergedAt \
--jq '[.[] | ((.mergedAt | fromdate) - (.createdAt | fromdate)) / 3600] |
"평균 Cycle Time: \(add / length | floor)시간"'
💡 꿀팁: DORA 메트릭(배포 빈도, 리드 타임, 변경 실패율, 복구 시간)으로 AI 도입 전후를 비교하면 경영진에게 보고하기 좋은 데이터를 만들 수 있어요.
“1인 개발자가 AI로 10인분 하는 법” 실전 팁
혼자 개발하는 분들을 위한 AI 활용 극대화 전략이에요.
1. AI를 팀원처럼 활용하기
역할 분담:
🧑💻 나: 기획, 아키텍처 결정, 비즈니스 로직 검증
🤖 AI: 코드 생성, 테스트 작성, 문서화, 코드 리뷰
2. 하루 워크플로우
09:00 - AI와 오늘 할 일 정리 (태스크 분해)
09:30 - AI에게 보일러플레이트 생성 요청
10:00 - AI가 만든 코드 리뷰 + 커스터마이즈
11:00 - 핵심 비즈니스 로직 직접 작성 (AI는 서브 태스크)
12:00 - 점심
13:00 - AI에게 테스트 코드 생성 요청
13:30 - 테스트 실행 + 실패 케이스 수정
14:30 - AI에게 API 문서 생성 요청
15:00 - AI에게 코드 리뷰 요청 → 수정
16:00 - AI에게 배포 설정 생성 → 배포
17:00 - AI와 내일 계획 정리
3. 1인 개발자의 AI 도구 추천 조합
💰 가성비 조합 (월 $30 이내):
- GitHub Copilot ($10) + Claude API (종량제 ~$20)
🚀 올인 조합 (월 $50 이내):
- Cursor Pro ($20) + Claude Max ($20)
🆓 무료 조합:
- VS Code + Copilot Free tier + Claude.ai 무료
4. 자동화할 수 있는 모든 것을 자동화
# 커밋 메시지 자동 생성
git diff --staged | claude --print "이 변경사항에 대한
conventional commit 메시지를 한 줄로 작성해줘"
# PR 설명 자동 생성
gh pr create --title "feat: 리뷰 기능" \
--body "$(git log main..HEAD --oneline | claude --print \
'이 커밋들을 바탕으로 PR 설명을 작성해줘. 변경사항, 테스트 방법 포함')"
# 변경로그 자동 생성
git log v1.0..v1.1 --oneline | claude --print \
"이 커밋 목록으로 CHANGELOG.md 엔트리를 작성해줘"
🔥 핵꿀팁: 매일 반복하는 작업이 있다면, AI에게 “이 작업을 자동화하는 쉘 스크립트를 만들어줘”라고 요청하세요. 하루 30분 절약 × 365일 = 연간 182시간 절약이에요!
마무리: AI와 함께하는 개발의 미래
AI 기반 개발 워크플로우의 핵심은 “AI가 대신 해주는 것”이 아니라 “AI와 함께 더 잘하는 것”이에요.
이 시리즈에서 다룬 내용 정리:
지금 바로 실행할 수 있는 3가지:
- 📋 내일 할 코딩 작업 하나를 골라서, AI와 함께 페어 프로그래밍해보세요
- 🧪 기존 프로젝트에 AI로 테스트 코드를 추가해보세요 (커버리지 10%p 올리기)
- 🔄 GitHub Actions에 AI 코드 리뷰를 달아보세요 (위 YAML 복사해서 바로 적용)
AI는 도구일 뿐이에요. 하지만 잘 쓰는 사람과 안 쓰는 사람의 생산성 격차는 갈수록 벌어지고 있어요. 오늘부터 AI를 여러분의 개발 워크플로우에 녹여보세요. 분명 “왜 더 일찍 안 했지?”라고 느끼게 될 거예요. 🚀
📚 AI 기반 개발 실전 가이드 시리즈
- 1편: AI 코딩 어시스턴트 200% 활용법
- 2편: 개발자를 위한 프롬프트 엔지니어링
- 3편: AI 기반 개발 워크플로우 (현재 글)
참고 자료
- DORA Metrics - Google Cloud
- GitHub Copilot Impact Study
- CodeRabbit - AI Code Review
- Cursor Documentation
- AI-Assisted Development Best Practices