PART 4 · 강의 3/3
AI 코드 리뷰와
검증 능력
AI가 생성한 코드를 평가하고, 품질을 관리하며, 아키텍처 적합성을 검증하는 방법을 학습합니다.
01
AI 생성 코드 평가
AI가 만든 코드의 품질을 체계적으로 평가하기
📊
Reviewing...
코드 리뷰 대시보드
12
순환 복잡도
87%
테스트 커버리지
15%
코드 중복률
A
유지보수성
1
import { Injectable } from '@nestjs/common';
2
3
@Injectable()
4
export class UserService {
5
private users: any[] = []; // any 타입 사용
6
7
async findUser(id: string) {
8
const user = this.users.find(u => u.id == id);
9
return user;
10
}
11
12
// 권장: 의존성 주입 패턴 사용
13
constructor(private repo: UserRepository) {}
14
}
발견된 이슈
3
Critical
any 타입 사용
타입 안전성을 해치는 any 타입 대신 명시적 타입을 사용하세요.
Line 5
Warning
느슨한 동등 비교
== 대신 === 를 사용하여 엄격한 비교를 수행하세요.
Line 8
Info
의존성 주입 권장
하드코딩된 배열 대신 Repository 패턴을 사용하세요.
Line 12-13
📌 AI 생성 코드 평가 체크포인트
- 타입 안전성 — any, unknown 타입의 남용 여부 확인
- 에러 처리 — 예외 상황에 대한 적절한 처리가 있는지
- 코드 스타일 — 프로젝트 컨벤션과 일치하는지
- 비즈니스 로직 — 요구사항을 정확히 구현했는지
02
품질 관리 전략
AI 생성 코드의 품질을 보장하는 방법론
자동화된 파이프라인
CI/CD 파이프라인에 AI 생성 코드 검증 단계를 통합합니다. 린트, 테스트, 정적 분석을 자동으로 수행하여 품질 기준을 충족하는지 확인합니다.
휴먼 인 더 루프
중요한 비즈니스 로직과 아키텍처 결정에는 반드시 인간 리뷰어가 참여합니다. AI의 제안을 최종 승인하는 게이트키퍼 역할을 합니다.
체크리스트 기반 검증
표준화된 체크리스트를 통해 일관된 품질 검증을 수행합니다. 보안, 성능, 유지보수성 등 각 영역별 항목을 체계적으로 확인합니다.
테스트 우선 접근
AI가 코드를 생성하기 전에 테스트 케이스를 먼저 정의합니다. 생성된 코드가 모든 테스트를 통과해야만 승인합니다.
03
보안 검토
AI 생성 코드의 보안 취약점 탐지
인젝션 공격
SQL, NoSQL, OS 명령어 인젝션 취약점 검사
인증/인가
적절한 인증 메커니즘과 권한 검사 확인
비밀 정보 노출
하드코딩된 키, 비밀번호, 토큰 탐지
XSS/CSRF
크로스 사이트 스크립팅 및 요청 위조 방지
의존성 취약점
서드파티 라이브러리의 알려진 취약점 검사
데이터 보호
민감 데이터 암호화 및 안전한 전송 확인
정적 분석 (SAST)
소스 코드 레벨에서 보안 취약점 패턴을 탐지합니다.
의존성 스캔
npm/yarn 패키지의 알려진 취약점을 검사합니다.
시크릿 스캔
하드코딩된 비밀 정보를 탐지합니다.
보안 리포트 생성
발견된 이슈와 권장 수정 사항을 정리합니다.
04
아키텍처 적합성 검증
코드가 설계된 아키텍처 원칙을 따르는지 확인
아키텍처 준수 점수
0
점
92
레이어 분리
88
의존성 규칙
85
SOLID 원칙
90
명명 규칙
아키텍처 적합성 체크
각 항목을 클릭하여 검증 결과를 확인하세요
❓
레이어 의존성 방향
상위 레이어가 하위 레이어만 의존하는지 확인
❓
도메인 순수성
도메인 레이어가 외부 의존성 없이 순수한지 확인
❓
인터페이스 분리
포트/어댑터 패턴이 올바르게 적용되었는지 확인
❓
모듈 경계
바운디드 컨텍스트 간 경계가 명확한지 확인
💡 ArchUnit 도구 활용
Java/Kotlin 프로젝트에서는 ArchUnit, TypeScript 프로젝트에서는 dependency-cruiser를 활용하여 아키텍처 규칙을 테스트 코드로 작성하고 자동 검증할 수 있습니다.
SUMMARY
핵심 요약
- AI 생성 코드 평가: 타입 안전성, 에러 처리, 코드 스타일, 비즈니스 로직 정확성 확인
- 품질 관리 전략: 자동화 파이프라인, 휴먼 인 더 루프, 체크리스트, 테스트 우선 접근
- 보안 검토: 인젝션, 인증/인가, 시크릿 노출, XSS/CSRF, 의존성 취약점 검사
- 아키텍처 적합성: 레이어 의존성, 도메인 순수성, 인터페이스 분리, 모듈 경계 검증
- 도구를 활용한 자동화된 아키텍처 테스트로 지속적인 품질 보장