wosledon/AIReview
요약
AIReview는 Copilot을 통해 100% AI로 생성된 엔터프라이즈급 AI 기반 코드 리뷰 플랫폼입니다. 클린 아키텍처와 멀티 LLM 지원을 바탕으로 마이크로서비스 구조를 채택하여 실시간 협업 및 정교한 코드 분석 기능을 제공합니다.
핵심 포인트
- Copilot에 의해 100% AI로 생성된 프로젝트
- 계층형 클린 아키텍처 및 관심사의 분리(Separation of Concerns) 적용
- 멀티 LLM 지원 및 실시간 SignalR 통신을 통한 리뷰 업데이트
- Repository 및 Unit of Work 패턴을 통한 데이터 일관성 유지
- Hangfire를 활용한 비동기 백그라운드 AI 분석 작업 처리
이 프로젝트는 Copilot에 의해 완전히 생성되었습니다; 인간 0%, 100% AI.
English | 简体中文
AIReview는 지능형 자동화를 통해 코드 리뷰 프로세스를 혁신하는 엔터프라이즈급 AI 기반 코드 리뷰 플랫폼입니다. 현대적인 마이크로서비스 (Microservices) 영감을 받은 아키텍처로 구축되었으며, 멀티 LLM (Large Language Model) 지원, 실시간 협업 및 정교한 분석 기능을 결합하여 실행 가능한 통찰력을 제공하고 코드 품질을 크게 향상시킵니다.
비전 (Vision): AI 기반 지능으로 인간의 리뷰를 보완함으로써 개발 팀이 고품질의 코드를 더 빠르게 전달할 수 있도록 지원합니다.
AIReview는 관심사의 명확한 분리(Separation of concerns)를 특징으로 하는 **계층형 클린 아키텍처 (Layered clean architecture)**를 따릅니다:
┌─────────────────────────────────────────────────────────────┐
│ 프론트엔드 계층 (Frontend Layer) (React) │
│ • React 19 + TypeScript + Vite │
...
관심사의 분리 (Separation of Concerns): 각 계층은 별도의 책임을 가집니다 - API 계층은 HTTP/SignalR 통신을 처리합니다.
-
코어 계층 (Core layer)은 순수 비즈니스 로직을 포함합니다.
-
인프라 계층 (Infrastructure layer)은 외부 의존성을 관리합니다.
의존성 역전 (Dependency Inversion): 코어 로직은 구현(Implementation)이 아닌 추상화 (Abstractions, 인터페이스)에 의존합니다 -
레포지토리 및 유닛 오브 워크 패턴 (Repository & Unit of Work Pattern): 트랜잭션 지원을 포함한 일관된 데이터 액세스 -
비동기 처리 (Async Processing): 백그라운드 작업 (Background jobs)이 오래 걸리는 AI 분석 작업을 처리합니다 -
실시간 통신 (Real-time Communication): SignalR을 통해 리뷰 업데이트에 대한 푸시 알림을 활성화합니다
| 모듈 (Module) | 책임 (Responsibility) | 주요 구성 요소 (Key Components) |
|---|---|---|
| AIReview.API | 진입점 (Entry point), 요청 처리 (request handling), 실시간 허브 (real-time hubs) | 컨트롤러 (Controllers), SignalR 허브 (SignalR Hubs), 미들웨어 (Middleware) |
| AIReview.Core | 비즈니스 규칙 (Business rules), 도메인 모델 (domain models), 서비스 계약 (service contracts) | 엔티티 (Entities), 인터페이스 (Interfaces), 도메인 서비스 (Domain Services) |
| AIReview.Infrastructure | 데이터 영속성 (Data persistence), 외부 통합 (external integrations), 백그라운드 작업 (background jobs) | 리포지토리 (Repositories), EF Core, Hangfire, LLM 클라이언트 (LLM clients) |
| AIReview.Shared | 횡단 관심사 (Cross-cutting concerns), DTO | 데이터 전송 객체 (Data Transfer Objects), 열거형 (Enums) |
| AIReview.Tests | 품질 보증 (Quality assurance) | 단위 테스트 (Unit tests), 통합 테스트 (Integration tests) |
| aireviewer-frontend | 사용자 인터페이스 (User interface), 클라이언트 측 로직 (client-side logic) | React 컴포넌트 (React components), API 클라이언트 (API clients) |
상세한 아키텍처 문서는 다음을 참조하십시오:
다차원 분석 (Multi-dimensional Analysis): 품질 (Quality), 보안 (security), 성능 (performance), 유지보수성 (maintainability) 평가
리스크 점수 산정 시스템 (Risk Scoring System): 여러 차원에 걸친 자동화된 리스크 평가
- 복잡도 분석 (Complexity analysis) (순환 복잡도 (cyclomatic complexity), 중첩 깊이 (nesting depth))
- 보안 취약점 탐지 (Security vulnerability detection)
- 성능 병목 현상 식별 (Performance bottleneck identification)
- 유지보수성 지표 (Maintainability metrics)
문맥적 제안 (Contextual Suggestions): AI가 타겟팅된 개선 권장 사항을 생성
멀티 LLM 지원 (Multi-LLM Support): 구성 가능한 제공자 (OpenAI, Azure OpenAI, 커스텀 모델)
비동기 처리 (Async Processing): 백그라운드 작업 (Background jobs)을 통해 대규모 코드베이스에 대해 반응형 UX 보장
3계층 템플릿 시스템 (3-Tier Template System): 내장형 (Built-in) → 사용자 수준 (User-level) → 프로젝트 수준 (Project-level) 재정의
템플릿 유형 (Template Types):-
- 코드 리뷰 (Code Review) 템플릿
- 리스크 분석 (Risk Analysis) 템플릿
- 풀 리퀘스트 요약 (Pull Request Summary) 템플릿
- 개선 제안 (Improvement Suggestion) 템플릿
유연한 플레이스홀더 (Flexible Placeholders): {{CONTEXT}}, {{DIFF}}, {{FILE_NAME}} 등
UI 관리 (UI Management): 템플릿 CRUD 작업을 위한 직관적인 웹 인터페이스
지능형 변경 요약 (Intelligent Change Summaries): 영향 분석 (impact analysis)이 포함된 AI 생성 PR 설명
변경 유형 분류 (Change Type Classification): 기능 (Feature), 버그 수정 (Bug Fix), 리팩토링 (Refactoring), 문서화 (Documentation) 등
영향 평가 (Impact Assessment):-
- 비즈니스 영향 평가 (Business impact evaluation)
- 기술 부채 분석 (Technical debt analysis)
- 중대한 변경 사항 탐지 (Breaking change detection)
테스트 권장 사항 (Test Recommendations): 자동 생성된 테스트 중점 영역
배포 노트 (Deployment Notes): 리스크 평가 및 롤백 (Rollback) 고려 사항
카테고리별 제안 (Categorized Suggestions): 코드 품질 (Code quality), 성능 (Performance), 보안 (Security), 아키텍처 (Architecture) 등
우선순위 점수 산정 (Priority Scoring): 영향도와 노력에 기반한 자동 우선순위 지정
사용자 피드백 루프 (User Feedback Loop): 지속적인 개선을 위한 수락/무시 (Accept/Ignore) 추적
이력 추적 (Historical Tracking): 시간에 따른 제안 수락률 모니터링
저장소 가져오기 (Repository Import): 기존 Git 저장소 클론 (Clone) 및 분석
차이 분석 (Diff Analysis): 코드 변경 사항의 지능적 파싱 (Parsing)
커밋 히스토리 (Commit History): Git 커밋과 함께 리뷰 이력 추적
브랜치 지원 (Branch Support): 여러 브랜치에서 원활하게 작동
프로젝트 구성 (Project Organization): 여러 리뷰 프로젝트 생성 및 관리
역할 기반 액세스 제어 (Role-Based Access Control): 소유자 (Owner), 리뷰어 (Reviewer), 개발자 (Developer) 역할
멤버 관리 (Member Management): 세분화된 권한을 가진 팀 멤버 초대
프로젝트 설정 (Project Settings): 프로젝트별 구성 및 환경 설정
실시간 알림 (Live Notifications): SignalR 기반의 즉각적인 업데이트
리뷰 댓글 (Review Comments): 코드 변경 사항에 대한 스레드형 (Threaded) 토론
상태 추적 (Status Tracking): 실시간 리뷰 워크플로 (Workflow) 상태 업데이트
활동 피드 (Activity Feed): 팀 활동 가시성 확보
리뷰 요청 관리 (Review Request Management): 리뷰 생성, 할당 및 추적
승인 프로세스 (Approval Process): 승인, 거절 또는 변경 요청
상태 라이프사이클 (Status Lifecycle): 대기 중 (Pending) → 리뷰 중 (In Review) → 승인됨/거절됨 (Approved/Rejected)
댓글 시스템 (Comment System): 라인별 (Line-by-line) 및 일반 피드백
AIReview.API: 컨트롤러 (Controllers), 허브 (Hubs) 및 서비스 구성이 포함된 ASP.NET Core Web API 백엔드
AIReview.Core: 엔티티 모델 (Entity models), 서비스 인터페이스 (Service interfaces) 및 비즈니스 서비스가 포함된 핵심 비즈니스 로직
AIReview.Infrastructure: EF Core 데이터 액세스, 리포지토리 패턴 (Repository pattern) 및 백그라운드 작업 (Background jobs)이 포함된 인프라스트럭처 (Infrastructure) 레이어
AIReview.Shared: 공유 데이터 전송 객체 (DTOs) 및 열거형 (Enums)
AIReview.Tests: 단위 테스트 (Unit tests) 및 통합 테스트 (Integration tests)
aireviewer-frontend: Vite로 구축된 React + TypeScript 프론트엔드 애플리케이션
docs: 프로젝트 문서 및 설계 사양 (Design specifications)
** .NET 8.0**: 성능 개선이 포함된 최신 크로스 플랫폼 프레임워크 (Cross-platform framework)
ASP.NET Core Web API: OpenAPI/Swagger 문서화가 포함된 RESTful API
Entity Framework Core: 마이그레이션 (Migration)을 지원하는 코드 퍼스트 ORM (Code-first ORM)
ASP.NET Core Identity: JWT 기반 인증 (Authentication) 및 인가 (Authorization)
SignalR: WebSocket 기반의 실시간 양방향 통신 (Bidirectional communication)
Hangfire: 비동기 AI 분석을 위한 백그라운드 작업 처리 (Background job processing)
SQLite/PostgreSQL: 유연한 데이터베이스 옵션 (개발/운영)
Redis: 분산 캐싱 (Distributed caching) 및 세션 관리 (선택 사항)
React 19: 동시성 기능 (Concurrent features)이 포함된 최신 React
TypeScript: 완전한 인텔리센스 (IntelliSense)를 지원하는 타입 안전 (Type-safe) 개발
Vite: 매우 빠른 HMR (Hot Module Replacement) 및 최적화된 프로덕션 빌드
TailwindCSS: 커스텀 디자인 시스템을 갖춘 유틸리티 퍼스트 (Utility-first) CSS
React Query (@tanstack/react-query): 강력한 서버 상태 관리 (Server state management)
React Router v6: 선언적 클라이언트 사이드 라우팅 (Declarative client-side routing)
Axios: 인터셉터 (Interceptors)를 지원하는 Promise 기반 HTTP 클라이언트
Heroicons: 아름답게 수작업으로 제작된 SVG 아이콘
Docker: 일관된 환경을 위한 컨테이너화 (Containerization)
Docker Compose: 로컬 개발을 위한 멀티 컨테이너 오케스트레이션 (Multi-container orchestration)
GitHub Actions: CI/CD 파이프라인 (계획 중)
Kubernetes: 프로덕션 오케스트레이션 (계획 중)
AIReview/
├── AIReview.API/ # Web API 진입점 (Entry point)
│ ├── Controllers/ # REST API 엔드포인트 (Endpoints)
...
.NET SDK 8.0+: [다운로드]
Node.js 18+ 및 npm/pnpm: [다운로드]
SQLite(기본값) 또는 PostgreSQL 14+(운영 환경 선택 사항)
Redis(선택 사항, 분산 캐싱용): [다운로드]
Docker Desktop(선택 사항, 컨테이너 기반 개발용): [다운로드]
저장소 복제 (Clone the Repository):
git clone https://github.com/wosledon/AIReview.git cd AIReview
애플리케이션 설정 구성 (Configure Application Settings):
AIReview.API/appsettings.Development.json 파일을 편집하세요.
{
"ConnectionStrings": {
"DefaultConnection": "Data Source=aireviewer.db", // SQLite
"Redis": "localhost:6379"
},
"Jwt": {
"Secret": "YourJWTSecretKey(AtLeast32Characters)",
"Issuer": "AIReview",
"Audience": "AIReview"
}
}
-
데이터베이스 마이그레이션 적용 (Apply Database Migrations):
cd AIReview.API dotnet ef database update
API 서비스 시작 (Start API Service): dotnet run # API는 http://localhost:5000 에서 사용 가능합니다. # Swagger UI: http://localhost:5000/swagger
의존성 설치 (Install Dependencies): cd aireviewer-frontend npm install
환경 변수 설정 (Configure Environment Variables): .env 파일을 생성합니다: VITE_API_BASE_URL=http://localhost:5000/api/v1
개발 서버 시작 (Start Development Server): npm run dev # 프론트엔드는 http://localhost:5173 에서 사용 가능합니다.
cd AIReview.Tests
dotnet test --verbosity normal
cd aireviewer-frontend
npm run test # 필요에 따라 Vitest/Jest를 설정하십시오
Docker 이미지 빌드 (Build Docker Images):
백엔드 (Backend)
docker build -t aireviewer-api -f AIReview.API/Dockerfile .
프론트엔드 (Frontend)
docker build -t aireviewer-frontend -f aireviewer-frontend/Dockerfile .
Docker Compose로 실행 (Run with Docker Compose): docker-compose up -d
- 프로덕션(Production) 환경에서는 SQLite 대신 PostgreSQL을 사용하십시오
- 분산 캐싱 (Distributed Caching) 및 세션 관리 (Session Management)를 위해 Redis를 설정하십시오
- 리버스 프록시 (Reverse Proxy, Nginx/Traefik)를 통해 HTTPS를 설정하십시오
- 신뢰할 수 있는 오리진 (Origins)에 대해서만 CORS를 활성화하십시오
- 비밀 정보(Secrets)에는 환경 변수를 사용하십시오 (자격 증명을 절대 커밋하지 마십시오)
- 로깅 (Logging) 및 모니터링 (Monitoring)을 설정하십시오 (Application Insights, Serilog 등)
- 데이터베이스 백업 전략을 수립하십시오
인증 (Authentication): 리프레시 토큰 (Refresh Token)을 지원하는 JWT 기반
권한 부여 (Authorization): 역할 기반 액세스 제어 (RBAC)
데이터 보호 (Data Protection): 민감한 데이터를 위한 ASP.NET Core Data Protection
입력 유효성 검사 (Input Validation): 모델 유효성 검사 및 새니타이제이션 (Sanitization)
속도 제한 (Rate Limiting): 남용 방지를 위한 API 스로틀링 (Throttling)
HTTPS: 프로덕션에서 TLS 1.2+ 강제 적용
CORS: 허용된 오리진으로 제한
SQL 인젝션 (SQL Injection): EF Core를 통한 매개변수화된 쿼리 (Parameterized Queries)
고급 코드 수정 제안 (Advanced Code Fix Suggestions): 차이점 미리보기 (Diff Preview)가 포함된 AI 생성 코드 패치
-
멀티 모델 앙상블 (Multi-Model Ensemble): 더 높은 정확도를 위해 여러 LLM 응답을 결합
-
문맥 인식 분석 (Context-Aware Analysis): 제안을 개선하기 위해 과거 리뷰로부터 학습
-
커스텀 AI 모델 미세 조정 (Custom AI Model Fine-tuning): 조직 특화 모델 학습 지원
GitHub/GitLab Webhooks: PR 생성 시 자동 리뷰 트리거 (Automatic review triggers on PR creation) -
VS Code Extension: IDE 내 인라인 코드 리뷰 및 제안 (Inline code review and suggestions in IDE) -
Slack/Teams Notifications: 팀 커뮤니케이션 도구와의 통합 (Integration with team communication tools) -
CI/CD Pipeline Integration: AI 리뷰 점수에 기반한 품질 게이트 (Quality gates based on AI review scores)
Review Analytics Dashboard: 팀 생산성 및 코드 품질 지표 (Team productivity and code quality metrics) -
Trend Analysis: 시간에 따른 품질 개선 추적 (Track quality improvements over time) -
Custom Reports: 경영진을 위한 내보내기 가능한 보고서 (Exportable reports for management) -
Developer Performance Insights: 개인별 기여 품질 지표 (Individual contribution quality metrics)
Team Coding Standards Learning: AI가 수락/거절된 제안으로부터 학습 (AI learns from accepted/rejected suggestions) -
Custom Rule Engine: 조직 특화 코딩 표준 정의 (Define organization-specific coding standards) -
Review Template Library: 팀 간 공유 가능한 템플릿 라이브러리 (Shared templates across teams) -
Automated Style Guide Enforcement: 팀 컨벤션 자동 적용 (Enforce team conventions automatically)
Incremental Analysis: 대용량 파일의 변경된 부분만 분석 (Only analyze changed portions of large files) -
Batch Review Processing: 여러 PR의 효율적인 일괄 처리 (Efficient handling of multiple PRs) -
Distributed Processing: 분석 워크로드를 위한 수평적 확장 (Horizontal scaling for analysis workloads) -
Caching Optimization: 중복된 AI 호출 감소 (Reduce redundant AI calls)
Code Security Scanning: 심층 보안 취약점 분석 (Deep security vulnerability analysis) -
License Compliance Checker: 종속성 내 라이선스 문제 탐지 (Detect licensing issues in dependencies) -
Architecture Violation Detection: 아키텍처 패턴 강제 (Enforce architectural patterns) -
Technical Debt Tracker: 기술 부채의 수량화 및 우선순위 지정 (Quantify and prioritize technical debt)
Multi-tenant Architecture: 데이터 격리를 포함한 완전한 SaaS 지원 (Full SaaS support with data isolation) -
Enterprise SSO: SAML, OAuth, LDAP 통합 (SAML, OAuth, LDAP integration) -
Audit Logging: 포괄적인 컴플라이언스 및 감사 추적 (Comprehensive compliance and audit trails) -
Advanced Access Control: 세밀한 권한 및 정책 관리 (Fine-grained permissions and policies) -
On-premise Deployment: 에어갭(Air-gapped) 엔터프라이즈 배포 옵션 (Air-gapped enterprise deployment options)
Automated Code Refactoring: AI가 리팩토링 제안 및 적용 (AI suggests and applies refactorings) -
Predictive Bug Detection: ML 모델을 통한 버그 발생 가능 코드 예측 (ML models predict bug-prone code) -
Test Generation: 리뷰된 코드에 대한 단위 테스트 자동 생성 (Auto-generate unit tests for reviewed code) -
Documentation Generation: AI가 작성하는 인라인 문서화 (AI-written inline documentation)
Mobile Applications (모바일 애플리케이션): 이동 중에도 리뷰를 수행할 수 있는 iOS 및 Android 앱 -
API Marketplace (API 마켓플레이스): 제3자 통합 및 확장 기능 -
Community Plugin System (커뮤니티 플러그인 시스템): 맞춤형 분석기를 위한 개방형 생태계 -
Multi-language Support (다국어 지원): 글로벌 팀을 위한 현지화 (Localization)
Continuous Model Improvement (지속적인 모델 개선): 대규모 사용자 피드백으로부터 학습 -
Custom Model Marketplace (맞춤형 모델 마켓플레이스): 특화된 모델을 공유하고 다운로드 -
Transfer Learning (전이 학습): 사전 학습된 모델 (Pre-trained models)을 특정 도메인에 적응 -
Explainable AI (설명 가능한 AI): AI 의사결정의 투명성
🎯 Accuracy (정확도): 멀티 LLM (Multi-LLM) 지원 및 맞춤 설정 가능한 프롬프트 (Prompts)를 통해 관련성 높은 제안 보장
⚡ Speed (속도): 비동기 처리 (Async processing) 및 캐싱 (Caching)을 통한 빠른 리뷰 속도
🔧 Flexibility (유연성): 사용자 및 프로젝트 수준에서의 광범위한 맞춤 설정 가능
👥 Collaboration (협업): 실시간 업데이트를 통한 팀 간의 동기화 유지
📈 Scalability (확장성): 검증된 엔터프라이즈 기술 (.NET, React) 기반 구축
🔒 Security (보안): 역할 기반 액세스 제어 (Role-based access control) 및 보안 인증
🌐 Open Source (오픈 소스): MIT 라이선스를 통한 커뮤니티 기여 장려
기여를 환영합니다! 다음 사항에 대한 자세한 내용은 기여 가이드라인 (Contributing Guidelines, 곧 공개 예정)을 참조하세요:
- 행동 강령 (Code of Conduct)
- 개발 워크플로우 (Development workflow)
- 풀 리퀘스트 (Pull request) 프로세스
- 코딩 표준 (Coding standards)
이 프로젝트는 MIT 라이선스 (MIT License) 하에 라이선스가 부여됩니다 - 자세한 내용은 LICENSE 파일을 참조하세요.
Issues (이슈): GitHub Issues
Discussions (토론): GitHub Discussions
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기