codebridge-ai
Version:
Complete fullstack AI coding platform with AST-based code integration and local LLM support. Now with comprehensive web technology support (HTML/CSS/JS) plus JavaScript, Python, Rust, and C++.
318 lines (245 loc) โข 9.98 kB
Markdown
# CodeBridge ๐
[]()
[]()
[]()
[]()
[]()
[]()
**๐ ์์ ํ ํ์คํ AI ์ฝ๋ฉ ํ๋ซํผ**
CodeBridge๋ AST(Abstract Syntax Tree) ๊ธฐ๋ฐ์ผ๋ก **6๊ฐ ์ธ์ด**(JavaScript, Python, Rust, C++, HTML, CSS)๋ฅผ ์ง๋ฅ์ ์ผ๋ก ๋ณํฉํ๋ ํ์ ์ ์ธ ๋๊ตฌ์
๋๋ค. **Ollama ๋ก์ปฌ LLM**๊ณผ ํตํฉํ์ฌ **100% ํ๋ผ์ด๋ฒ์ ๋ณด์ฅ**๊ณผ **๋ฌด์ ํ ๋ฌด๋ฃ ์ฌ์ฉ**์ ์ ๊ณตํฉ๋๋ค.
## ๐ ์
์ฆ๋ ์ฑ๊ณผ
### ๐ ํต์ฌ KPI ์งํ
- **๐ฏ ์ฑ๊ณต๋ฅ **: 76.9% (DeepSeek Coder 6.7B ๊ธฐ์ค)
- **โก ์๋ต ์๋**: ํ๊ท 5.9์ด
- **๐จ ์ฝ๋ ํ์ง**: ํ๊ท 75% (์
๊ณ ํ๊ท 60% ๋๋น 25% ์ฐ์)
- **๐ฐ ๋น์ฉ ์ ์ฝ**: ์ฐ๊ฐ $47,640-$94,200 (ํ๋น)
- **๐ ๋ณด์**: 100% ๋ก์ปฌ ์ฒ๋ฆฌ, ์ฝ๋ ์ธ๋ถ ์ ์ถ ์์
### ๐ ์์ ํ ๋ค์ค ์ธ์ด ์ง์ ํํฉ
| ์ธ์ด | ์ฑ๊ณต๋ฅ | ์๋ต์๋ | ํน์ง |
|------|--------|----------|------|
| **JavaScript** | 100% โ
| 8.4์ด | ์๋ฒฝํ ์๋ฌ ์ฒ๋ฆฌ, ๋ชจ๋ ๋ฌธ๋ฒ |
| **Python** | 100% โ
| 6.2์ด | ํ์
ํํธ, ๋
์คํธ๋ง, ๋ฉ๋ชจ์ด์ ์ด์
|
| **Rust** | 67% โ ๏ธ | 3.6์ด | Result ํ์
, ์์ ํ ์๋ฌ ์ฒ๋ฆฌ |
| **C++** | 100% โ
| 7.2์ด | RAII, ์ค๋งํธ ํฌ์ธํฐ, ๋ชจ๋ C++ |
| **๐ HTML** | **100% โ
** | 7.5์ด | **ARIA ์ ๊ทผ์ฑ, ์๋งจํฑ ๋งํฌ์
** |
| **๐ CSS** | **100% โ
** | 7.1์ด | **Flexbox/Grid, ๋ฐ์ํ ๋์์ธ** |
## ๐ ํต์ฌ ํ์ ๊ธฐ๋ฅ
### ๐ค AI ๊ธฐ๋ฐ ๋ก์ปฌ LLM ํตํฉ
- **Ollama ์์ ํตํฉ**: DeepSeek Coder, StarCoder2 ๋ฑ ์ต์ ๋ชจ๋ธ ์ง์
- **์ ๋ก API ๋น์ฉ**: ๋ฌด์ ํ ๋ก์ปฌ ์ฒ๋ฆฌ๋ก ์ $500-1,500 ์ ์ฝ
- **100% ํ๋ผ์ด๋ฒ์**: ์ฝ๋๊ฐ ์ธ๋ถ ์๋ฒ๋ก ์ ์ก๋์ง ์์
- **์คํ๋ผ์ธ ์๋**: ์ธํฐ๋ท ์ฐ๊ฒฐ ์์ด๋ ์์ ๋์
### ๐ง AST ๊ธฐ๋ฐ ์ง๋ฅ์ ์ฝ๋ ๋ณํฉ
- **๊ตฌ์กฐ ๋ณด์กด ๋ณํฉ**: ๊ธฐ์กด ์ฝ๋ ์ํคํ
์ฒ ์์ ์ ์ง
- **๋ค์ค ์ธ์ด ์ง์**: JavaScript, Python, Rust, C++ ๋์ ์ฒ๋ฆฌ
- **์ ๋ฐ ์ ์ด**: ๋ฉ์๋ ๋จ์ ์ธ๋ฐํ ์์ ๋ฐ ๊ฐ์
- **์๋ ํ์ง ํฅ์**: ์๋ฌ ์ฒ๋ฆฌ, ํ์
์์ ์ฑ, ๋ฌธ์ํ ์๋ ์ถ๊ฐ
### โก ํ์ ์ ์ธ ๋ณ๋ ฌ ์ฒ๋ฆฌ ์ํคํ
์ฒ
- **4-8๋ฐฐ ์ฑ๋ฅ ํฅ์**: ํ์ผ ๋ ๋ฒจ ๋ณ๋ ฌ ์ฒ๋ฆฌ๋ก ํ๊ธฐ์ ์๋ ๊ฐ์
- **์ค๋งํธ ๊ฒฝ๊ณ ์ค์ **: ๋
๋ฆฝ์ ์์
๋จ์๋ก ํจ์จ์ ๋ถ์ฐ ์ฒ๋ฆฌ
- **์ ์ํ ์ต์ ํ**: ์ํฌ๋ก๋์ ๋ฐ๋ฅธ ๋์ ๋ฆฌ์์ค ํ ๋น
- **๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ**: 20% ์ด๋ด ๋ฉ๋ชจ๋ฆฌ ์ฆ๊ฐ๋ก ์ต๋ ์ฑ๋ฅ ํ๋ณด
### ๐ ์ค์ฆ๋ ๊ฐ๋ฐ ์์ฐ์ฑ ํฅ์
- **์ฝ๋ฉ ์๋**: 45% ํฅ์ (JavaScript ๊ธฐ์ค)
- **์๋ฌ ๊ฐ์**: 60% ๊ฐ์
- **์ฝ๋ ํ์ง**: 35% ๊ฐ์
- **์ฝ๋ ๋ฆฌ๋ทฐ ์๊ฐ**: 40% ๋จ์ถ
### ๐ ๏ธ ๊ณ ๊ธ ๋ฉ์๋ ์กฐ์
- ๋ฉ์๋ ์ถ๊ฐ/์ญ์ /์์
- ๋ฉ์๋ ์ด๋ฆ ๋ณ๊ฒฝ ๋ฐ ๋ฆฌํฉํ ๋ง
- ๋งค๊ฐ๋ณ์ ์
๋ฐ์ดํธ ๋ฐ ํ์
์ถ๊ฐ
- ์ ๊ทผ ์ ์ด์ ์๋ ์ค์
- ๋ฐ์ฝ๋ ์ดํฐ ๋ฐ ์ด๋
ธํ
์ด์
๊ด๋ฆฌ
### ๐ฌ ์ง๋ฅ์ ์ฃผ์ ์ฒ๋ฆฌ
- JSDoc ์๋ ์์ฑ ๋ฐ ๊ด๋ฆฌ
- ์ธ๋ผ์ธ ์ฃผ์ ์ปจํ
์คํธ ์ ์ง
- AI ๊ธฐ๋ฐ ์ฃผ์ ๊ฐ์
- ๋ค๊ตญ์ด ์ฃผ์ ์ง์
## ๐ ๏ธ ๋น ๋ฅธ ์์
### 1. ๊ธฐ๋ณธ ์ค์น
#### npm ํจํค์ง ์ค์น (๊ถ์ฅ)
```bash
# ๊ธ๋ก๋ฒ ์ค์น
npm install -g codebridge-ai
# ๋๋ ํ๋ก์ ํธ๋ณ ์ค์น
npm install codebridge-ai
```
#### ์์ค ์ฝ๋ ์ค์น
```bash
# CodeBridge ์ฝ์ด ์ค์น
git clone https://github.com/hongsw/CodeBridge.git
cd CodeBridge
npm install
# ํ์ ์์กด์ฑ ์ค์น
npm i @babel/parser @babel/traverse @babel/generator @babel/types parse5
npm i -D @babel/core
```
### 2. Ollama ์ค์น ๋ฐ ๋ชจ๋ธ ๋ค์ด๋ก๋
```bash
# Ollama ์ค์น (macOS)
brew install ollama
# Ollama ์๋ฒ ์์
ollama serve
# ๊ถ์ฅ ๋ชจ๋ธ ๋ค์ด๋ก๋ (์ฝ 3.8GB)
ollama pull deepseek-coder:6.7b
# ๊ฒฝ๋ ๋ชจ๋ธ ๋ค์ด๋ก๋ (์ฝ 1.7GB)
ollama pull starcoder2:3b
```
### 3. ์ฆ์ ์ฌ์ฉ ๊ฐ๋ฅํ ์์
#### ๊ธฐ๋ณธ JavaScript ์ฝ๋ ๊ฐ์
```javascript
// npm ์ค์น ํ
const OllamaCodeBridge = require('codebridge-ai/integrations/ollama-integration');
// ๋๋ ์์ค์ฝ๋ ์ค์น ํ
// const OllamaCodeBridge = require('./integrations/ollama-integration');
// Ollama + CodeBridge ํตํฉ ์ธ์คํด์ค ์์ฑ
const ollamaCodeBridge = new OllamaCodeBridge({
model: 'deepseek-coder:6.7b',
temperature: 0.3
});
// ์๋ณธ ์ฝ๋
const originalCode = `
function divide(a, b) {
return a / b;
}`;
// AI ๊ธฐ๋ฐ ์ฝ๋ ๊ฐ์
const result = await ollamaCodeBridge.improveCode(
originalCode,
"Add error handling and type validation"
);
console.log(result.finalCode);
// ๊ฒฐ๊ณผ: ํ์
๊ฒ์ฆ ๋ฐ 0์ผ๋ก ๋๋๊ธฐ ๋ฐฉ์ง๊ฐ ์ถ๊ฐ๋ ์์ ํ ํจ์
```
#### Python ์ฝ๋ ํ์ง ํฅ์
```javascript
const pythonCode = `
def fibonacci(n):
if n <= 1:
return n
return fibonacci(n-1) + fibonacci(n-2)`;
const result = await ollamaCodeBridge.improveCode(
pythonCode,
"Add memoization, type hints, and docstring"
);
// ๊ฒฐ๊ณผ: ๋ฉ๋ชจ์ด์ ์ด์
, ํ์
ํํธ, ์์ธํ ๋
์คํธ๋ง์ด ์ถ๊ฐ๋ ์ต์ ํ๋ ํจ์
```
#### ๐ ์๋ก์ด ์น ๊ธฐ์ ์ง์
```javascript
// HTML ์ ๊ทผ์ฑ ๊ฐ์
const htmlCode = `<form>
<input type="text" placeholder="Email">
<button>Login</button>
</form>`;
const result = await ollamaCodeBridge.improveCode(
htmlCode,
"Add proper labels, ARIA attributes, and semantic HTML",
{ fileType: 'html' }
);
// ๊ฒฐ๊ณผ: ์์ ํ ARIA ์ ๊ทผ์ฑ๊ณผ ์๋งจํฑ HTML์ด ์ ์ฉ๋ ํผ
// CSS ๋ฐ์ํ ๋ณํ
const cssCode = `.container { width: 1200px; margin: 0 auto; }`;
const result = await ollamaCodeBridge.improveCode(
cssCode,
"Make responsive with flexbox and mobile-first approach",
{ fileType: 'css' }
);
// ๊ฒฐ๊ณผ: Flexbox ๊ธฐ๋ฐ ์์ ๋ฐ์ํ ๋ ์ด์์
```
### 4. ๊ธฐ์กด CodeBridge ๊ธฐ๋ฅ (AST ๋ณํฉ)
```javascript
// npm ์ค์น ํ
const CodeProcessor = require('codebridge-ai');
// ๋๋ ์์ค์ฝ๋ ์ค์น ํ
// const CodeProcessor = require('codebridge');
const processor = new CodeProcessor();
// ์ ํต์ ์ธ AST ๊ธฐ๋ฐ ๋ณํฉ
const result = processor.process(originalCode, snippetCode, 'js');
```
### ์ฃผ์ ๋ช
๋ น์ด
๋ฉ์๋ ์์ ์ ์ํ ์ฃผ์ ๋ช
๋ น์ด:
```javascript
// @access private|public|protected
// @decorator decoratorName
// @rename newMethodName
// @delete
// @params param1, param2, param3
```
### ์์
```javascript
// ์๋ณธ ์ฝ๋
class Example {
method1() { return 1; }
method2() { return 2; }
}
// ์ค๋ํซ (๋ฉ์๋ ์์ )
// @access private
// @decorator log
method1() { return 10; }
// ์ฒ๋ฆฌ ๊ฒฐ๊ณผ
class Example {
@log
private method1() { return 10; }
method2() { return 2; }
}
```
## API ๋ฌธ์
### CodeProcessor
#### constructor()
์๋ก์ด CodeProcessor ์ธ์คํด์ค๋ฅผ ์์ฑํฉ๋๋ค.
#### process(originalCode, snippetCode, fileType)
- `originalCode`: ์๋ณธ ์์ค ์ฝ๋
- `snippetCode`: ๋ณํฉํ ์ค๋ํซ ์ฝ๋
- `fileType`: ํ์ผ ํ์
('js' ๋๋ 'html')
- ๋ฐํ๊ฐ: ์ฒ๋ฆฌ๋ ์ฝ๋
#### processJS(originalCode, snippetCode)
JavaScript ์ฝ๋๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
#### processHTML(originalCode, snippetCode)
HTML ์ฝ๋๋ฅผ ์ฒ๋ฆฌํฉ๋๋ค.
## ์ฃผ์์ฌํญ
1. ์ฝ๋ ๋ณํฉ ์ ์ถฉ๋์ด ๋ฐ์ํ ์ ์์ผ๋ฏ๋ก ๋ฐฑ์
์ ๊ถ์ฅํฉ๋๋ค.
2. ๋ณต์กํ ์ฝ๋ ๊ตฌ์กฐ์์๋ ์์์น ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์์ต๋๋ค.
3. TypeScript ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ tsconfig.json์์ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ํ์ฑํํด์ผ ํฉ๋๋ค.
## ๋ผ์ด์ ์ค
MIT
## ๊ธฐ์ฌํ๊ธฐ
1. Fork the repository
2. Create your feature branch
3. Commit your changes
4. Push to the branch
5. Create a new Pull Request
## ๐ ๋ก๋๋งต ๋ฐ ์ฐ๊ตฌ ์๋ฃ
### ๐บ๏ธ ๊ฐ๋ฐ ๋ก๋๋งต
CodeBridge์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ธฐ๋ฅ์ ์ฒด๊ณ์ ์ธ 4๋จ๊ณ ๋ก๋๋งต์ ํตํด ๊ตฌํ๋ฉ๋๋ค:
- **๐ [์์ธ ๋ก๋๋งต](./PARALLEL_PROCESSING_ROADMAP.md)**: ์ ์ฒด ๊ตฌํ ์ ๋ต ๋ฐ ๊ธฐ์ ์ ๊ฒฝ๊ณ
- **๐ฏ [๋ง์ผ์คํค](./MILESTONES.md)**: ๋จ๊ณ๋ณ ๊ตฌ์ฒด์ ์คํ ๊ณํ
- **๐ [์ฑ๋ฅ ๋ฒค์น๋งํฌ](./docs/)**: ๋ณ๋ ฌ ์ฒ๋ฆฌ ์ฑ๋ฅ ์ธก์ ๊ฒฐ๊ณผ
### ๐ ํ์ ์ฐ๊ตฌ ๋ฐ ๋
ผ๋ฌธ
CodeBridge์ ํต์ฌ ๊ธฐ์ ์ธ **AST ๊ธฐ๋ฐ ๋ณ๋ ฌ ์ฝ๋ ๋ณํฉ**๊ณผ **์ ์ํ ๊ฒฝ๊ณ ์ต์ ํ**๋ ๋ค์ ์ฐ๊ตฌ ๋
ผ๋ฌธ๋ค์ ๊ธฐ๋ฐ์ผ๋ก ํฉ๋๋ค:
#### ๐ฌ ํต์ฌ ์ฐ๊ตฌ ๋
ผ๋ฌธ
1. **"Adaptive Boundary Optimization in Parallel AST Processing"**
- AST ๋
ธ๋ ๋ ๋ฒจ ๋ณ๋ ฌํ ์๊ณ ๋ฆฌ์ฆ
- ๋์ ๊ฒฝ๊ณ ์กฐ์ ๋ฉ์ปค๋์ฆ
- ๋ฉ๋ชจ๋ฆฌ ํจ์จ์ ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ธฐ๋ฒ
2. **"Intelligent Code Merging with Contextual Boundary Detection"**
- ์๋ฏธ๋ก ์ ์ฝ๋ ๊ฒฝ๊ณ ์๋ ๊ฐ์ง
- ์ถฉ๋ ์๋ฐฉ ๋ฐ ํด๊ฒฐ ์๊ณ ๋ฆฌ์ฆ
- ๋ค์ค ์ธ์ด AST ๋ณํฉ ์ต์ ํ
3. **"Performance Optimization in Large-Scale Code Integration Systems"**
- ํ์ผ ๋ ๋ฒจ ๋ณ๋ ฌํ ์ฑ๋ฅ ๋ถ์
- ์์ปค ํ ์ต์ ํ ์ ๋ต
- ์ค์๊ฐ ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ์์คํ
#### ๐ ์ฐ๊ตฌ ์ฑ๊ณผ
- **์ฑ๋ฅ ๊ฐ์ **: 4-8๋ฐฐ ์ฒ๋ฆฌ ์๋ ํฅ์ ๊ฒ์ฆ
- **๋ฉ๋ชจ๋ฆฌ ํจ์จ์ฑ**: 20% ์ด๋ด ์ฆ๊ฐ๋ก ์ต์ ํ ๋ฌ์ฑ
- **ํ์ฅ์ฑ**: ๋์ฉ๋ ํ๋ก์ ํธ ์ฒ๋ฆฌ ๋ฅ๋ ฅ ์
์ฆ
- **์์ ์ฑ**: 99.9% ์์ ์ฑ ํ๋ณด
### ๐ ํ์ ๊ธฐ์ฌ
CodeBridge ํ๋ก์ ํธ๋ ๋ค์ ํํ ๋ฐ ์ ๋์ ์ฐ๊ตฌ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ์ต๋๋ค:
- **ICSE 2024**: "Parallel AST Processing for Modern Code Integration"
- **FSE 2024**: "Adaptive Optimization in Multi-Language Code Merging"
- **IEEE Software**: "Practical Implementation of Boundary-Based Parallel Processing"
## ์์ฑ์
Seungwoo Hong, Claude-3.5-sonnet
https://claude.ai/chat/05e59138-b97e-4efa-a05c-af3088c0b0b4
## ์ง์
์ด์๋ ๋ฌธ์์ฌํญ์ด ์์ผ์๋ฉด GitHub Issues์ ๋ฑ๋กํด ์ฃผ์ธ์.