Article
AI Driven Development 적용 방법 3: 품질 측정과 운영 적용
목차
AI Driven Development의 성과는 생성 코드량이 아니라 품질과 운영 안정성을 함께 봐야 판단할 수 있습니다. 이 글은 3부작의 마지막으로, DORA 지표와 테스트·리뷰·운영 지표를 연결해 AI 도입 효과를 측정하는 방법을 다룹니다. 글을 읽고 나면 팀의 AI 활용이 실제로 개발 흐름을 개선했는지 확인할 수 있는 대시보드와 운영 체크리스트를 만들 수 있습니다.
이 글은 2026년 7월 1일 기준의 DORA, Google SRE, OpenTelemetry, GitHub Copilot, OpenAI 문서를 참고했습니다. 특정 제품의 관리 화면보다 팀이 직접 적용할 수 있는 측정 기준과 운영 루프에 초점을 맞춥니다.
시리즈를 마무리하며
1탄에서는 AI Driven Development의 기본 루프를 정의 → 분해 → 생성 → 검증으로 정리했습니다. 2탄에서는 그 루프를 팀에서 반복하기 위한 저장소 규칙과 컨텍스트 설계를 다뤘습니다. 3탄의 질문은 더 현실적입니다.
AI를 도입한 뒤 정말 좋아졌는지 어떻게 알 수 있을까?
개발자가 체감하는 속도는 중요하지만 충분하지 않습니다. 코드 초안이 빨리 나와도 리뷰가 길어지고, 결함이 늘고, 배포 후 장애가 많아지면 팀 전체 성과는 좋아졌다고 보기 어렵습니다. AI Driven Development는 개인 생산성 도구이면서 동시에 소프트웨어 전달 프로세스의 변화입니다. 그래서 측정도 개인 작업 시간, 코드 품질, 리뷰 흐름, 배포 안정성, 운영 지표를 함께 봐야 합니다.
왜 생성 코드량은 좋은 지표가 아닐까?
AI 도입 초기에 가장 쉽게 볼 수 있는 숫자는 생성된 코드량입니다. 하지만 코드량은 성과 지표로 위험합니다. 좋은 개발은 많은 코드를 만드는 일이 아니라 문제를 작게 해결하고, 유지보수 비용을 낮추고, 장애 가능성을 줄이는 일입니다.
생성 코드량을 목표로 삼으면 팀은 불필요한 테스트, 과한 추상화, 요청과 무관한 리팩터링을 받아들이기 쉬워집니다. AI가 빠르게 만든 코드가 많을수록 리뷰어가 놓치는 부분도 늘 수 있습니다. 결국 측정해야 할 것은 “얼마나 많이 만들었나”가 아니라 “변경이 더 빠르고 안전하게 사용자에게 도달했나”입니다.
따라서 AI 도입 효과는 다음 질문으로 바꿔야 합니다.
- 작업이 더 작은 단위로 쪼개졌는가?
- 리뷰 대기와 재작업이 줄었는가?
- 테스트 실패가 더 빨리 발견되는가?
- 배포 빈도와 변경 리드타임이 개선됐는가?
- 장애와 롤백 비율이 늘지 않았는가?
- 운영에서 사용자 영향이 줄었는가?
이 질문은 개인 생산성보다 팀의 흐름을 봅니다. AI가 한 사람을 빠르게 만들었더라도 병목이 리뷰, QA, 배포, 장애 대응으로 이동했다면 측정은 그 이동을 보여 줘야 합니다.
측정의 기본 구조
AI Driven Development의 측정은 네 층으로 나누면 이해하기 쉽습니다.
| 층 | 확인할 질문 | 예시 지표 |
|---|---|---|
| 작업 흐름 | 일이 작고 검증 가능하게 진행되는가? | PR 크기, 리뷰 대기 시간, 재작업 횟수 |
| 코드 품질 | 결함을 만들 가능성이 줄었는가? | 테스트 실패율, 정적 분석 경고, 결함 밀도 |
| 전달 성과 | 변경이 빠르고 안정적으로 배포되는가? | DORA 지표, 배포 성공률 |
| 운영 안정성 | 사용자 영향과 장애 대응이 개선되는가? | 오류율, 지연 시간, MTTR, 롤백 비율 |
이 네 층은 서로 연결되어 있습니다. PR 크기가 줄면 리뷰가 빨라질 수 있고, 테스트가 좋아지면 변경 실패율이 낮아질 수 있습니다. 하지만 하나의 지표만 좋아졌다고 전체가 좋아진 것은 아닙니다. 예를 들어 배포 빈도는 늘었지만 장애도 늘었다면 AI 도입은 아직 안정화되지 않은 상태입니다.
DORA 지표로 전달 성과 보기
DORA는 소프트웨어 전달 성과를 볼 때 널리 사용되는 네 가지 핵심 지표를 제시합니다. 배포 빈도, 변경 리드타임, 변경 실패율, 서비스 복구 시간입니다. AI Driven Development에서도 이 지표는 좋은 출발점입니다.
| DORA 지표 | 의미 | AI 도입 후 기대할 변화 | 주의할 점 |
|---|---|---|---|
| 배포 빈도 | 얼마나 자주 배포하는가 | 작은 변경이 늘면 개선될 수 있음 | 빈도만 높이고 품질을 놓치면 위험 |
| 변경 리드타임 | 커밋부터 배포까지 걸린 시간 | 초안 작성과 테스트 보강이 빨라질 수 있음 | 리뷰 대기 병목을 따로 봐야 함 |
| 변경 실패율 | 배포가 장애나 롤백을 유발한 비율 | 검증이 좋아지면 낮아질 수 있음 | 실패 정의를 팀에서 통일해야 함 |
| 서비스 복구 시간 | 장애 후 복구까지 걸린 시간 | AI가 원인 분석 초안을 도울 수 있음 | 최종 판단과 조치는 사람이 책임져야 함 |
DORA 지표의 장점은 팀이 속도와 안정성을 함께 보게 만든다는 점입니다. AI 도입 후 배포 빈도와 리드타임만 보면 좋아 보일 수 있습니다. 하지만 변경 실패율이 함께 올라간다면 개발이 빨라진 만큼 위험도 빨라진 것입니다.
지표를 해석할 때는 절대값보다 추세를 봐야 합니다. 팀마다 제품, 배포 방식, 규제, 사용자 규모가 다릅니다. AI 도입 전 4주와 도입 후 4주를 비교하거나, 특정 파일럿 팀의 추세를 보는 방식이 더 실용적입니다.
AI 활용 자체도 관찰해야 한다
AI 도구 사용 여부를 개인 평가로 쓰면 팀원은 방어적으로 행동할 수 있습니다. 하지만 팀 프로세스 개선을 위해서는 AI가 어디에 쓰였는지 최소한의 이벤트를 남길 필요가 있습니다. 목적은 감시가 아니라 원인 분석입니다.
예를 들어 다음 정도의 정보는 PR 템플릿이나 개발자 설문, 도구의 관리 API로 수집할 수 있습니다.
- AI로 요구사항 질문을 뽑았는가?
- AI로 테스트 후보를 만들었는가?
- AI로 운영 코드 초안을 만들었는가?
- AI로 diff 리뷰를 수행했는가?
- AI가 제안한 코드 중 사람이 크게 수정한 부분은 무엇인가?
GitHub Copilot 같은 도구는 조직 단위에서 사용량과 채택률을 볼 수 있는 metrics API를 제공합니다. 이런 도구 지표는 “사용되고 있는가”를 보여 줄 수 있지만, “품질이 좋아졌는가”를 단독으로 증명하지는 못합니다. 반드시 테스트, 리뷰, 배포, 운영 지표와 함께 해석해야 합니다.
실전 예제: PR 단위 측정 모델
아래 예시는 PR 단위로 AI 활용과 전달 흐름을 기록하는 단순한 Java 모델입니다. 실제 서비스에서는 GitHub API, CI 결과, 배포 시스템, 장애 관리 도구에서 데이터를 가져오겠지만, 먼저 무엇을 기록할지 모델링하는 것이 중요합니다.
import java.time.Duration;
import java.time.Instant;
import java.util.Set;
public record PullRequestDeliveryMetric(
long pullRequestId,
int changedLines,
int reviewCommentCount,
int reworkCommitCount,
boolean usedAiForTests,
boolean usedAiForImplementation,
boolean usedAiForReview,
boolean ciPassedBeforeReview,
boolean deployedSuccessfully,
boolean causedIncident,
Instant openedAt,
Instant mergedAt,
Instant deployedAt,
Set<String> touchedDomains
) {
public Duration reviewLeadTime() {
return Duration.between(openedAt, mergedAt);
}
public Duration deploymentLeadTime() {
return Duration.between(mergedAt, deployedAt);
}
public boolean needsQualityReview() {
return changedLines > 400
|| reworkCommitCount > 3
|| causedIncident
|| (!usedAiForTests && usedAiForImplementation);
}
}
이 코드는 특정 프레임워크 없이 측정 대상만 보여 줍니다. 핵심은 usedAiForImplementation 같은 정보만으로 판단하지 않는다는 점입니다. 변경 크기, 리뷰, 재작업, CI, 배포 성공, 장애 여부를 함께 봅니다.
실무에서는 needsQualityReview() 같은 규칙을 사람의 평가를 대체하는 데 쓰면 안 됩니다. 대신 회고 대상 PR을 고르거나, AI가 구현에는 쓰였지만 테스트에는 쓰이지 않은 작업을 찾아 팀 규칙을 보강하는 데 사용할 수 있습니다.
테스트 지표는 양보다 실패를 봐야 한다
AI가 테스트를 많이 만들어 주는 것은 장점이지만, 테스트 개수만 늘리는 것은 위험합니다. 테스트는 요구사항을 검증해야 합니다. 구현 세부사항만 따라 쓰는 테스트는 변경을 안전하게 만들기보다 리팩터링을 어렵게 만듭니다.
AI 도입 후에는 다음 테스트 지표를 보는 것이 좋습니다.
| 지표 | 의미 | 해석 |
|---|---|---|
| 신규 기능의 테스트 포함률 | PR에 테스트가 함께 있는가 | 낮으면 AI가 구현 위주로 쓰이는 상태 |
| 테스트 실패 발견 시점 | 로컬, CI, 운영 중 어디서 발견됐는가 | 빠를수록 좋음 |
| flaky test 비율 | 불안정한 테스트가 늘었는가 | AI 생성 테스트의 품질 문제일 수 있음 |
| 회귀 결함 재현 테스트 | 장애 후 재현 테스트가 추가됐는가 | 학습이 코드에 남는지 확인 |
| 의미 없는 테스트 비율 | getter, mock 호출만 확인하는가 | 테스트 수 증가의 착시를 줄임 |
좋은 테스트 지표는 실패를 숨기지 않습니다. CI 실패가 일시적으로 늘 수 있습니다. AI가 테스트를 먼저 만들게 되면 기존 코드의 모호한 정책이 드러나기 때문입니다. 중요한 것은 실패를 줄이는 것이 아니라, 실패가 더 이른 단계에서 발견되고 같은 문제가 반복되지 않게 하는 것입니다.
리뷰 지표로 병목 찾기
AI가 코드를 빠르게 만들면 리뷰어에게 더 많은 변경이 몰릴 수 있습니다. 이때 리뷰가 느려졌다고 단순히 리뷰어를 탓하면 안 됩니다. 변경 단위가 너무 크거나, 컨텍스트가 부족하거나, AI 생성 코드의 품질이 들쭉날쭉할 수 있습니다.
리뷰 지표는 다음처럼 나눠 볼 수 있습니다.
- PR 생성부터 첫 리뷰까지 걸린 시간
- 첫 리뷰부터 merge까지 걸린 시간
- 리뷰 댓글 중 동작 오류와 스타일 의견의 비율
- 재작업 커밋 수
- 리뷰어가 “컨텍스트 부족”을 언급한 횟수
- AI diff 리뷰를 먼저 수행한 PR 비율
리뷰 시간을 줄이려면 AI에게 리뷰를 맡기는 것만으로는 부족합니다. 2탄에서 다룬 컨텍스트 템플릿이 PR에 남아 있어야 합니다. 리뷰어는 변경 이유, 참고 파일, 검증 명령을 빠르게 확인할 수 있어야 합니다. AI diff 리뷰는 사람 리뷰 전에 흔한 누락을 걸러 주는 보조 장치로 두는 편이 좋습니다.
운영 지표는 Golden Signals로 시작한다
운영 안정성은 AI 도입 효과를 판단할 때 반드시 봐야 합니다. Google SRE에서 소개하는 Golden Signals는 지연 시간, 트래픽, 오류, 포화 상태를 중심으로 서비스를 관찰하는 접근입니다. AI Driven Development에서도 이 네 가지는 좋은 기본값입니다.
| 신호 | 확인할 내용 | AI 도입과 연결되는 질문 |
|---|---|---|
| 지연 시간 | 요청 처리 시간이 늘었는가 | 생성 코드가 불필요한 호출이나 동기 처리를 추가했는가 |
| 트래픽 | 요청량과 사용 패턴이 바뀌었는가 | 새 기능이 예상보다 많이 호출되는가 |
| 오류 | 5xx, 4xx, 예외가 늘었는가 | 예외 처리와 권한 검증이 누락됐는가 |
| 포화 | CPU, 메모리, DB 커넥션이 한계에 가까운가 | AI가 만든 쿼리나 배치가 자원을 과하게 쓰는가 |
운영 지표의 핵심은 배포와 연결하는 것입니다. “오류율이 올랐다”보다 “AI가 관여한 특정 PR 배포 이후 결제 취소 API의 409와 500이 동시에 늘었다”처럼 추적할 수 있어야 합니다. 그러려면 배포 이벤트, PR 번호, 기능 플래그, 서비스 버전을 로그와 메트릭에 남겨야 합니다.
관측 가능성: 로그, 메트릭, 트레이스
OpenTelemetry는 로그, 메트릭, 트레이스를 함께 다루는 관측 가능성 표준을 제공합니다. AI Driven Development에서도 관측 가능성은 더 중요해집니다. 변경 속도가 빨라질수록 문제가 생겼을 때 어느 변경이 어떤 영향을 만들었는지 빨리 찾아야 하기 때문입니다.
최소한 다음 정보는 운영 이벤트에 남기는 것이 좋습니다.
- 서비스 이름과 버전
- 배포 시간과 배포한 commit 또는 PR 번호
- 기능 플래그 상태
- 주요 API의 latency, error rate, request count
- 외부 시스템 호출의 timeout과 retry 횟수
- 장애 대응 시 관련 PR과 롤백 여부
AI가 만든 코드라고 해서 특별한 로그를 남길 필요는 없습니다. 중요한 것은 변경의 추적 가능성입니다. 다만 AI가 관여한 PR에서 장애가 반복된다면, 어떤 유형의 작업에서 문제가 생기는지 회고할 수 있도록 PR 메타데이터와 장애 데이터를 연결해 두는 것이 좋습니다.
대시보드 설계 예시
AI 도입 효과를 보는 대시보드는 화려할 필요가 없습니다. 처음에는 한 화면에 네 영역만 두면 충분합니다.
| 영역 | 핵심 지표 | 해석 질문 |
|---|---|---|
| 개발 흐름 | PR 크기, 리뷰 리드타임, 재작업 커밋 | 일이 작아지고 흐름이 빨라졌는가 |
| 품질 | CI 실패, 테스트 포함률, 정적 분석 경고 | 결함이 더 빨리 발견되는가 |
| 전달 | 배포 빈도, 변경 리드타임, 변경 실패율 | 빠르면서 안정적으로 배포되는가 |
| 운영 | 오류율, latency p95, 롤백, MTTR | 사용자 영향이 늘지 않았는가 |
대시보드에서 AI 사용률은 보조 지표로 둡니다. 사용률이 높다고 좋은 것이 아니고, 낮다고 나쁜 것도 아닙니다. 중요한 것은 AI 사용이 많은 작업군에서 품질과 운영 지표가 어떻게 움직이는지입니다.
예를 들어 테스트 초안에 AI를 쓴 PR의 재작업률이 낮아졌다면 좋은 신호입니다. 반대로 구현 초안에만 AI를 쓰고 테스트에는 쓰지 않은 PR에서 장애가 늘었다면 팀 규칙을 바꿔야 합니다. “AI를 더 쓰자”가 아니라 “AI를 어디에 쓰고 어떤 검증을 붙일지”로 논의해야 합니다.
운영 적용 체크리스트
AI Driven Development를 운영 서비스에 적용할 때는 다음 체크리스트를 사용할 수 있습니다.
## AI 관여 변경 운영 체크리스트
### 배포 전
- [ ] PR에 작업 목표와 제공한 컨텍스트가 기록되어 있다.
- [ ] AI가 생성한 테스트를 사람이 요구사항 기준으로 검토했다.
- [ ] 변경 범위가 기능 플래그나 작은 배포 단위로 제한되어 있다.
- [ ] 롤백 방법과 데이터 호환성을 확인했다.
- [ ] 주요 지표와 알림이 준비되어 있다.
### 배포 중
- [ ] 배포 이벤트에 PR 번호와 버전을 남겼다.
- [ ] latency, error rate, traffic, saturation을 관찰한다.
- [ ] 예상된 4xx 증가와 비정상 5xx 증가를 구분한다.
- [ ] 외부 시스템 timeout과 retry 증가를 확인한다.
### 배포 후
- [ ] 변경 실패나 롤백 여부를 기록한다.
- [ ] 장애가 있었다면 재현 테스트를 추가한다.
- [ ] AI가 놓친 규칙을 저장소 지침에 반영한다.
- [ ] 회고에서 속도와 품질 지표를 함께 본다.
이 체크리스트의 목적은 AI 변경을 특별 취급하는 것이 아닙니다. 빠르게 만들어진 변경일수록 기본기를 더 잘 지키게 하는 것입니다. 팀이 익숙해지면 이 항목 일부는 PR 템플릿, CI, 배포 파이프라인, 대시보드로 자동화할 수 있습니다.
장애 대응에서 AI를 쓰는 방법
장애 대응에서도 AI는 유용합니다. 로그 요약, 최근 배포 diff 정리, 재현 시나리오 후보, 회고 초안 작성에 도움을 줄 수 있습니다. 하지만 장애 중 AI에게 운영 권한을 주거나, 검증되지 않은 조치를 바로 실행하게 해서는 안 됩니다.
장애 상황에서는 다음 경계를 지키는 것이 좋습니다.
- AI는 관찰된 사실과 추정을 구분해 요약하게 한다.
- 로그 원문에는 개인정보와 비밀값이 없는지 먼저 확인한다.
- 조치 후보는 사람이 우선순위와 위험도를 판단한다.
- 데이터 변경, 롤백, 트래픽 전환은 기존 승인 절차를 따른다.
- 장애 후 AI가 놓친 패턴을 테스트와 규칙 파일에 남긴다.
AI가 장애 원인을 “확신”하는 것처럼 말해도 실제 증거와 대조해야 합니다. 운영에서는 그럴듯한 설명보다 재현 가능한 증거가 중요합니다. AI는 사고를 빠르게 정리하는 도구로 쓰고, 권한 있는 조치는 사람과 자동화된 운영 절차가 담당해야 합니다.
자주 하는 실수와 주의사항
생산성만 측정한다
작업 시간이 줄어든 것은 좋은 신호일 수 있습니다. 하지만 결함, 재작업, 리뷰 지연, 장애가 늘었다면 전체 성과는 나빠졌을 수 있습니다. AI 도입 지표는 속도와 안정성을 반드시 함께 봐야 합니다.
AI 사용률을 목표로 삼는다
AI 사용률을 목표로 삼으면 필요 없는 작업에도 AI를 쓰게 됩니다. 도구 사용은 수단입니다. 테스트 후보 작성, 반복 코드 초안, diff 리뷰처럼 효과가 검증되는 영역부터 넓혀야 합니다.
테스트 개수만 늘린다
테스트가 많아져도 요구사항을 검증하지 않으면 품질은 좋아지지 않습니다. AI가 만든 테스트는 이름, 실패 조건, assertion이 정책을 설명하는지 확인해야 합니다. 의미 없는 테스트는 유지보수 비용입니다.
운영 지표를 배포와 연결하지 않는다
오류율과 latency를 보고 있어도 어떤 변경 때문인지 모르면 대응이 늦습니다. 배포 이벤트, 버전, PR 번호, 기능 플래그를 지표와 연결해야 합니다. 그래야 AI 관여 변경의 위험 패턴도 찾을 수 있습니다.
장애 회고를 문서로만 끝낸다
회고 문서는 중요하지만 코드와 규칙으로 남지 않으면 같은 문제가 반복됩니다. 장애 원인이 AI가 놓친 정책이라면 재현 테스트와 저장소 규칙을 추가해야 합니다. 팀의 학습은 문서, 테스트, 자동화에 남아야 합니다.
30일 파일럿 운영 방법
처음부터 전 팀에 AI Driven Development 측정을 적용하면 부담이 큽니다. 한 팀이나 한 서비스에서 30일 파일럿으로 시작하는 편이 좋습니다.
- 첫 주에는 현재 기준선을 수집합니다. PR 크기, 리뷰 시간, CI 실패, 배포 빈도, 장애를 기록합니다.
- 둘째 주에는 AI 사용 영역을 제한합니다. 예를 들어 테스트 초안, diff 리뷰, 문서 초안부터 시작합니다.
- 셋째 주에는 구현 초안까지 확장하되 PR 크기와 테스트 포함률을 함께 봅니다.
- 넷째 주에는 DORA 지표와 운영 지표를 비교하고, 팀 규칙을 보강합니다.
파일럿의 성공 기준은 “AI를 많이 썼다”가 아닙니다. 작은 PR이 늘고, 리뷰가 쉬워지고, 테스트가 요구사항을 더 잘 잡고, 배포 안정성이 나빠지지 않는 것입니다. 수치가 애매하면 팀 회고에서 정성 피드백도 함께 봅니다. 개발자가 어디에서 시간을 아꼈고, 어디에서 검토 부담이 늘었는지 들어야 다음 개선이 가능합니다.
언제 확장하고 언제 멈춰야 할까?
AI Driven Development는 점진적으로 확장해야 합니다. 다음 신호가 보이면 적용 범위를 넓힐 수 있습니다.
- AI가 만든 테스트 초안이 리뷰에서 자주 채택된다.
- PR 크기와 리뷰 시간이 줄어든다.
- 변경 실패율과 롤백 비율이 늘지 않는다.
- 장애 후 재현 테스트와 규칙 보강이 빠르게 이루어진다.
- 팀원이 AI 사용 기준을 공통 언어로 설명할 수 있다.
반대로 다음 신호가 보이면 잠시 멈추고 규칙을 보강해야 합니다.
- 생성 코드를 이해하지 못한 채 merge하는 일이 늘어난다.
- 테스트 없는 AI 구현 PR이 많아진다.
- 리뷰어가 컨텍스트 부족을 반복해서 지적한다.
- 장애나 롤백이 특정 AI 사용 패턴과 함께 늘어난다.
- 민감 정보가 프롬프트나 로그에 섞일 위험이 생긴다.
확장은 도구 계정 수를 늘리는 일이 아닙니다. 팀이 검증 가능한 방식으로 AI를 사용하는 범위를 넓히는 일입니다. 멈추는 것도 실패가 아닙니다. 측정 결과를 보고 속도를 조절하는 것이 운영 서비스에서는 더 성숙한 선택입니다.
결론 및 도움말
AI Driven Development의 마지막 기준은 “코드를 얼마나 빨리 만들었는가”가 아니라 “변경을 얼마나 빠르고 안전하게 사용자에게 전달했는가”입니다. 이를 보려면 PR, 테스트, 리뷰, 배포, 운영 지표를 하나의 흐름으로 연결해야 합니다.
1탄의 작업 루프, 2탄의 팀 규칙과 컨텍스트, 3탄의 품질 측정과 운영 지표가 함께 있어야 AI 활용은 개인 팁을 넘어 팀의 개발 방식이 됩니다. 작은 파일럿으로 시작하고, 지표로 확인하고, 실패에서 규칙과 테스트를 보강하세요.