Preface
์ด๊ธฐ AutoBE๋ API๋ง๋ค ์ฝ๋๋ฅผ ๋ฐ๋ก ์์ฑํ๊ณ ํ ์คํธ๋ง๋ค ์ฝ๋๋ฅผ ๋ฐ๋ก ์์ฑํ๋ค. ์ค๋ณต ์ฝ๋๊ฐ ๋์ณ๋ฌ๊ณ ๋ชจ๋ ์ฌ์ฌ์ฉ์ด ์์๋ค. ๊ทธ ์ํ์์ ์ปดํ์ผ ์ฑ๊ณต๋ฅ 100%๋ฅผ ๋จผ์ ๋ฌ์ฑํ๋ค. ์ดํ ์์ฑ ์ฝ๋์ ๋ชจ๋ํ๋ฅผ ๋์ ํ์ ์ฑ๊ณต๋ฅ ์ด 40%๋ก ๋ด๋ ค๊ฐ๋ค.
Delta๋ ์ด๊ฒ์ ๋ค์ 100%๋ก ๋์ด์ฌ๋ฆฌ๋ 3๊ฐ์์ด์๋ค. Qwen3 ๊ฐ์ ์ํ ์คํ์์ค ๋ชจ๋ธ๋ก ๋ฐ๋ณต ๋ฒค์น๋งํฌํ๋ฉฐ ์คํจ ์ฌ๋ก๋ฅผ ๋ฐ๊ตดํ๊ณ , Validation Logic์ ๊ฐํํ๊ณ , Schema Agent๋ฅผ ์ฌ์ค๊ณํ๋ค.
Epsilon์ ์ด์ ์ปดํ์ผ์ด ์๋ ๋ฐํ์์ ๋ณธ๋ค. ์๋ฒ๊ฐ ์ค์ ๋ก ๊ธฐ๋๋๋๊ฐ, API๊ฐ ๋ช ์ธ๋๋ก ์๋ตํ๋๊ฐ, E2E ํ ์คํธ๊ฐ ํต๊ณผํ๋๊ฐ. 3๊ฐ์๊ฐ ๋ฐํ์ ์ฑ๊ณต๋ฅ 100%๋ฅผ ํฅํด ๋ฌ๋ฆฐ๋ค.
1. Runtime 100%
Todo
qwen/qwen3.5-122b-a10b| Analyze | actors: 2, documents: 6 | |
| Database | namespaces: 2, models: 7 | |
| Interface | operations: 14, schemas: 28 | |
| Test | functions: 44 | |
| Realize | functions: 24 |
| Analyze | actors: 2, documents: 6 | |
| Database | namespaces: 6, models: 21 | |
| Interface | operations: 62, schemas: 80 | |
| Test | functions: 183 | |
| Realize | functions: 98 |
Shopping
qwen/qwen3.5-122b-a10b| Analyze | actors: 3, documents: 6 | |
| Database | namespaces: 10, models: 30 | |
| Interface | operations: 148, schemas: 155 | |
| Test | functions: 429 | |
| Realize | functions: 207 |
Erp
qwen/qwen3.5-122b-a10b| Analyze | actors: 2, documents: 6 | |
| Database | namespaces: 7, models: 27 | |
| Interface | operations: 101, schemas: 135 | |
| Test | functions: 34 | |
| Realize | functions: 156 |
์ปดํ์ผ ์ฑ๊ณต๋ฅ 100%๋ ์ฝ๋๊ฐ ๋ฌธ๋ฒ์ ์ผ๋ก ์ฌ๋ฐ๋ฅด๋ค๋ ๊ฒ์ ๋ณด์ฅํ๋ค. ํ์ง๋ง ๋ฐํ์ ์ฑ๊ณต์ ๊ทธ ์ด์์ ์๊ตฌํ๋ค. ์๋ฒ๊ฐ ์ค์ ๋ก ๋จ๊ณ , ์์ฒญ์ ์ ์ ์ฒ๋ฆฌํ๋ฉฐ, ํ ์คํธ๊ฐ ํต๊ณผํด์ผ ํ๋ค. ์ด๋ฅผ ์ํด ์ธ ๊ฐ์ง ๋๊ตฌ๋ฅผ ๊ฐ๋ฐํ๋ค.
1.1. Estimation Agent
Estimation Agent๋ AutoBE๊ฐ ์์ฑํ ๊ฒฐ๊ณผ๋ฌผ์ ๋ค๊ฐ๋๋ก ํ๊ฐํ๊ณ ์ ์๋ฅผ ๋งค๊ธฐ๋ ์์ด์ ํธ๋ค. ๋จ์ํ โํต๊ณผ/์คํจโ๋ฅผ ํ์ ํ๋ ๊ฒ์ด ์๋๋ผ, ์์ฑ๋ฌผ์ ํ์ง์ ์ ๋์ ์ผ๋ก ์ธก์ ํ๊ณ ์ฝ์ ์ ๋ฐ๊ตดํ๋ฉฐ ๊ฐ์ ์ด ํ์ํ ์ฌ์๋ค์ ๊ตฌ์ฒด์ ์ผ๋ก ์ ์ํ๋ค.
ํ๊ฐ ํญ๋ชฉ:
- ์ค๊ณ ์์ ์ฑ: ์๊ตฌ์ฌํญ ๋ฌธ์์์ ๋์ถ๋ ์ํฐํฐ์ API๊ฐ ๋น ์ง์์ด ๊ตฌํ๋์๋๊ฐ
- DB ์ค๊ณ ํ์ง: ์ธ๋ฑ์ค ์ค๊ณ, ์ ๊ทํ ์์ค, FK ์ฐธ์กฐ ๋ฌด๊ฒฐ์ฑ
- Interface ์ค๊ณ ํ์ง: REST ์์น ์ค์, DTO ์ผ๊ด์ฑ, ์๋ฌ ์๋ต ์ค๊ณ
- ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง: ๊ฐ ์๋ํฌ์ธํธ์ ๋ํ E2E ํ ์คํธ ์ปค๋ฒ ์ฌ๋ถ, ์ฃ์ง ์ผ์ด์ค ํฌํจ ์ฌ๋ถ
- ๊ตฌํ ํ์ง: Provider ๋ก์ง์ ์ ํ์ฑ, ํธ๋์ญ์ ์ฒ๋ฆฌ, ์์ธ ์ฒ๋ฆฌ
Estimation Agent๋ ์ ์์ ํจ๊ป ๊ตฌ์ฒด์ ์ธ ๊ฐ์ ์ ์ ๋ชฉ๋ก์ ์ถ๋ ฅํ๋ค. ์ด ์ถ๋ ฅ์ ๊ฐ๋ฐ์๊ฐ ์ง์ ํ์ฉํ๊ฑฐ๋, ํ์ ํ Benchmark Pipeline์ ๋ถ์ ์ฌ๋ฃ๋ก ํ์ฉ๋๋ค.
1.2. Runtime Feedback Agent
Runtime Feedback Agent๋ AutoBE๊ฐ ์์ฑํ ๋ฐฑ์๋ ์๋ฒ์ ํ ์คํธ ํ๋ก๊ทธ๋จ์ ์ค์ ๋ก ์คํํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๊ณ ํ๋ ์์ด์ ํธ๋ค.
๋์ ๋ฐฉ์:
- ์์ฑ๋ ๋ฐฑ์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก์ปฌ ํ๊ฒฝ์์ ๊ธฐ๋
- E2E ํ ์คํธ ์ค์ํธ๋ฅผ ์์ฐจ์ ์ผ๋ก ์คํ
- ๊ฐ ํ ์คํธ์ ์ฑ๊ณต/์คํจ ์ฌ๋ถ์ ์๋ฌ ๋ฉ์์ง๋ฅผ ์์ง
- ์คํจํ ํ ์คํธ์ ๋ํด ์คํ ํธ๋ ์ด์ค์ ์์ธ ๋ถ์์ ํฌํจํ ํผ๋๋ฐฑ ์์ฑ
- ํผ๋๋ฐฑ์ AutoBE ํ์ดํ๋ผ์ธ์ ์ฃผ์ ํ์ฌ ํด๋น Phase๋ฅผ ์ฌ์์ฑ
์ด๊ฒ์ด Delta์ Compiler Feedback Loop์ ๋์ํ๋ Runtime Feedback Loop๋ค. ์ปดํ์ผ๋ฌ๊ฐ ์ ์ ์ค๋ฅ๋ฅผ ์ก์๋๋ค๋ฉด, Runtime Feedback Agent๋ ๋์ ์ค๋ฅ๋ฅผ ์ก์๋ธ๋ค. ๋ ๋ฃจํ๊ฐ ํจ๊ป ์๋ํจ์ผ๋ก์จ AutoBE๋ ์ปดํ์ผ๋ ๋๊ณ ์ค์ ๋ก๋ ๋์ํ๋ ์ฝ๋๋ฅผ ๋ณด์ฅํ ์ ์๊ฒ ๋๋ค.
1.3. Benchmark Pipeline
Benchmark Pipeline์ AutoBE์ ์ง์์ ํ์ง ๊ฐ์ ์ ์ํ ์๋ํ๋ ์คํ ํ๋ ์์ํฌ๋ค. ๋ค์ํ LLM ๋ชจ๋ธ๊ณผ ๋ค์ํ ์๊ตฌ์ฌํญ ์๋๋ฆฌ์ค๋ฅผ ์กฐํฉํ์ฌ ๋ฐฑ์๋ ์์ฑ์ ๋ฐ๋ณต ์คํํ๊ณ , ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๋ถ์ํ๋ค.
ํ์ดํ๋ผ์ธ ํ๋ฆ:
- ๋ณต์์ ๋ชจ๋ธ(์์ฉ/์คํ์์ค)๊ณผ ๋ณต์์ ์๋๋ฆฌ์ค(todo, bbs, shopping ๋ฑ)๋ก ๋ฐฑ์๋ ์์ฑ ์คํ
- Runtime Feedback Agent๋ก ์์ฑ๋ ๋ฐฑ์๋์ ์ค์ ๋์ ์ฌ๋ถ ์ธก์
- Estimation Agent๋ก ์์ฑ๋ฌผ์ ํ์ง ์ ์ ์ฐ์ถ
- ์คํจ ์ผ์ด์ค์ ์ ์ ์ ์ผ์ด์ค๋ฅผ ๋ถ๋ฅํ๊ณ ์์ธ ๋ถ์
- AutoBE์ Validation Logic, ์์คํ ํ๋กฌํํธ, ์ํคํ ์ฒ, ์ํฌํ๋ก์ฐ ์ค์ผ์คํธ๋ ์ด์ ์ ๋ํ ๊ฐ์ ์ ์ ์์ฑ
์ค์ํ ๊ฒ์, Benchmark Pipeline์ ์ด๋๊น์ง๋ ์ ์์ ์ถ๋ ฅํ๋ ์์คํ ์ด๋ผ๋ ์ ์ด๋ค. ์ฝ๋๋ ํ๋กฌํํธ๋ฅผ ์๋์ผ๋ก ์์ ํ์ง ์๋๋ค. ์ ์๋ ๊ฐ์ ์ฌํญ์ ๊ฐ๋ฐ์๊ฐ ๊ฒํ ํ๊ณ ์ง์ ๋ฐ์ํ๋ค. ์ด๋ Delta์์ Qwen3 ๋ฒค์น๋งํฌ๊ฐ ๋จ์ํ ์ธก์ ๋๊ตฌ๊ฐ ์๋๋ผ ๋๋ฒ๊น ์ ๋์นจ๋ฐ์ด์๋ ๊ฒ๊ณผ ๊ฐ์ ๋งฅ๋ฝ์ด๋ค.
2. Workflow Enhancement
Delta๊ฐ ์์ ํ๋ฅผ ์ด๋ฃจ๊ธฐ๊น์ง, AutoBE์ ์ํฌํ๋ก์ฐ ์ค์ผ์คํธ๋ ์ด์ ์ ์๋์ ์ผ๋ก ๋จ์ํ๊ฒ ์ ์ง๋์๋ค. ํญํฌ์ ๋ชจ๋ธ์ ๋ฐ๋ผ ์ค์ง ์ผ๋ฐฉํฅ์ผ๋ก๋ง ํ๋ฅด๊ณ , AI์ ์๊ธฐ ๋ฆฌ๋ทฐ์ ๊ฐ์ ์ ๋จ ํ ๋ฒ์ ๊ทธ์ณค์ผ๋ฉฐ, ์ฝ๋ ์์ฑ ๊ธฐํ๋ ํ ๋ฒ๋ฟ์ด์๋ค.
์ด๊ฒ์ ๋๋ฆ ์ ๋ต์ด์๋ค. ์ํ ๋ชจ๋ธ๋ก ๋ฐ๋ณต ์คํํ์ฌ ์ต๋ํ ๋ง์ ์คํจ ์ฌ๋ก๋ฅผ ๋ฐ๊ตดํ๊ณ , Validation Logic์ ๊ฐํํ๋ ๊ฒ์ด ๋ชฉ์ ์ด์๊ธฐ ๋๋ฌธ์, ์ํฌํ๋ก์ฐ์ ๊ธฐ๊ต๋ฅผ ๋ถ๋ฆฌ์ง ์๊ณ ๊ฐ์ฅ ๋จ์ํ ํํ๋ฅผ ์ทจํ๋ค. ์ธ์ดํด ํ์๋ฅผ ์ต์ํํจ์ผ๋ก์จ ์ด๋ ๋จ๊ณ์์ ๋ฌด์์ด ์คํจํ๋์ง๋ฅผ ๋ช ํํ ํ์ ํ ์ ์์๋ค.
Delta์์ AutoBE๊ฐ ์์ ํ๋๊ณ , ์ด์ง๊ฐํ ๋ชจ๋ธ์์ ์ปดํ์ผ ์ฑ๊ณต๋ฅ ์ด ๋ณด์ฅ๋ ์ง๊ธ, AutoBE๋ ์ด์ ์์ผ ๊ธฐ๊ต๋ฅผ ๋ถ๋ฆฌ๊ธฐ ์์ํ๋ค.
2.1. Cyclinic Workflow
ํ์ฌ Interface Phase์ Schema Refine์ AI๊ฐ ํ ๋ฒ์ ํธ์ถ๋ก ๊ณง์ฅ complete๊น์ง ์ฒ๋ฆฌํ๋ ๊ตฌ์กฐ๋ค. IProps.request ์ ๋์ธ์ IComplete ํ๋๋ง ์กด์ฌํ๊ธฐ ๋๋ฌธ์, ์์ฑํ ๊ฒ์ ์ค์ค๋ก ๋์๋ณผ ์ฌ์ง๊ฐ ์๋ค.
์ฌ๊ธฐ์ IComplete๋ฅผ IWrite๋ก ๋ถ๋ฆฌํ๊ณ , ๋ณ๋์ IAutoBePreliminaryComplete๋ฅผ ์ ๋์ธ์ ์ถ๊ฐํ๋ค. AI๋ ์ด์ IWrite๋ก ์ด์์ ์์ฑํ๊ณ , ์ค์ค๋ก ๊ฒํ ํ ๋ค ๋ง์กฑ์ค๋ฝ์ง ์์ผ๋ฉด ๋ค์ IWrite๋ฅผ ํธ์ถํ ์ ์๋ค. ์ถฉ๋ถํ ์์ฑ๋์๋ค๊ณ ํ๋จํ ๋ IAutoBePreliminaryComplete๋ฅผ ํธ์ถํ๋ฉฐ, ๊ทธ ์์ ์ AI ์ค์ค๋ก ๊ฒฐ์ ํ๋ค.
๋ฌผ๋ก , ๋จ ํ ๋ฒ์ ๊ธฐํ๋ง์ผ๋ก๋ ์๋ํ๋ ๊ฒ์ด ์ฌ์ค์ด๋ค. ํ์ง๋ง ๊ทธ๊ฒ์ ์ปดํ์ผ ์ฑ๊ณต๋ฅ ์ ์ด์ผ๊ธฐ์๋ค. ๋ฐํ์ ์์ค์ ํ์ง, ์ฆ ์ค๊ณ ์์ ์ฑ๊ณผ ๊ตฌํ ์ ํ์ฑ์ ๋์ด์ฌ๋ฆฌ๋ ค๋ฉด AI๊ฐ ์ค์ค๋ก ๊ณ ์น ์ฌ์ง๋ฅผ ์ฃผ์ด์ผ ํ๋ค.
//----
// BEFORE
//----
export interface IProps {
thinking: string;
request:
| IComplete
| IAutoBePreliminaryGetAnalysisSections
| IAutoBePreliminaryGetDatabaseSchemas
| IAutoBePreliminaryGetInterfaceOperations
| IAutoBePreliminaryGetInterfaceSchemas;
}
export interface IComplete {
type: "complete";
review: string;
databaseSchema: string | null;
specification: string;
description: string;
excludes: AutoBeInterfaceSchemaPropertyExclude[];
revises: AutoBeInterfaceSchemaPropertyRefine[];
}
//----
// AFTER
//----
export interface IProps {
thinking: string;
request:
| IWrite
| IAutoBePreliminaryComplete
| IAutoBePreliminaryGetAnalysisSections
| IAutoBePreliminaryGetDatabaseSchemas
| IAutoBePreliminaryGetInterfaceOperations
| IAutoBePreliminaryGetInterfaceSchemas;
}
export interface IWrite {
type: "write";
review: string;
databaseSchema: string | null;
specification: string;
description: string;
excludes: AutoBeInterfaceSchemaPropertyExclude[];
revises: AutoBeInterfaceSchemaPropertyRefine[];
}
export interface IAutoBePreliminaryComplete {
type: "complete";
}2.2. Spiral Workflow
๊ธฐ์กด์ ํญํฌ์ ์ํฌํ๋ก์ฐ๋ ํญ์ ์์ผ๋ก๋ง ํ๋ ๋ค. Database Phase๊ฐ ๋๋๋ฉด Interface Phase๋ก, Interface Phase๊ฐ ๋๋๋ฉด Test Phase๋ก. ์ด์ ๋จ๊ณ๋ก ๋์๊ฐ๋ ๊ฒ์ ๋ถ๊ฐ๋ฅํ๋ค.
์ด๊ฒ ์ญ์ ์๋์ ์ ํ์ด์๋ค. ์ญ๋ฐฉํฅ ํ๋ฆ์ ํ์ฉํ๋ฉด ์คํจ ์์ธ์ ์ถ์ ํ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์, ๋๋ฒ๊น ๊ธฐ๊ฐ ๋์์ ์ผ๋ฐฉํฅ์ ๊ณ ์ํ๋ค.
์ด์ ์ญ๋ฐฉํฅ ์ ํ๋ฅผ ์ง์ํ๋ค. Interface Phase์์ DTO๋ฅผ ์ค๊ณํ๋ค๊ฐ DB ์คํค๋ง์ ํ์ ์ ๋ฐ๊ฒฌํ๋ฉด, Database Phase๋ก ๋์๊ฐ ์์ ํ๊ณ ๋ค์ ์์ผ๋ก ์งํํ ์ ์๋ค. Test Phase์์ API ๋ช ์ธ์ ๊ฒฐํจ์ ๋ฐ๊ฒฌํ๋ฉด Interface Phase๋ก ๋์๊ฐ ์ ์๋ค. ํญํฌ์์ ํ ์์์, ์ค๊ณ ๋ถ์ผ์น๋ฅผ ์๋์ผ๋ก ์์ ํ๋ ๋์ ํ ์๊ฐ ์น์ ๋ฃจํ๊ฐ ํ์ฑํ๋๋ ๊ฒ์ด๋ค.
2.3. Orchestration Experiments
์ํ ์ปจํธ๋กค๋ฌ์ ์ญ๋ฐฉํฅ ์ ํ ์ธ์๋, AutoBE์ AI ์์ด์ ํธ ์์ฒด๋ฅผ ๊ฐํํ๊ธฐ ์ํ ๋ค์ํ ์ค์ผ์คํธ๋ ์ด์ ์คํ์ ์งํํ๋ค.
์คํ ๋ฐฉํฅ:
- ๋ฉํฐ ๋๋ํํธ ์์ฑ: ๋์ผํ ์์ ์ ๋ํด ๋ณต์์ ์ด์์ ์์ฑํ ํ ์ต์ ์์ ์ ํํ๋ ๋ฐฉ์
- ํฌ๋ฆฌํฑ ์์ด์ ํธ ๋์ : ์์ฑ ์์ด์ ํธ์ ๋ณ๊ฐ๋ก ๋นํ ์ ๋ด ์์ด์ ํธ๋ฅผ ๋์ด ์ํธ ๊ฒ์ฆ
- ๋์ ์์ด์ ํธ ๋ผ์ฐํ : ์์ ์ ๋ณต์ก๋์ ์ฑ๊ฒฉ์ ๋ฐ๋ผ ์ ํฉํ ์์ด์ ํธ๋ฅผ ๋์ ์ผ๋ก ์ ํ
- ์ปจํ ์คํธ ์์ถ: ๊ธด ๋ํ ๋งฅ๋ฝ์ ํจ์จ์ ์ผ๋ก ์์ถํ์ฌ ํ ํฐ ๋ญ๋น ์์ด ํต์ฌ ์ ๋ณด๋ฅผ ๋ณด์กด
Benchmark Pipeline์ ๋ถ์ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํ์ผ๋ก ์คํ ์ฐ์ ์์๋ฅผ ๊ฒฐ์ ํ๋ฉฐ, ํจ๊ณผ๊ฐ ๊ฒ์ฆ๋ ๊ธฐ๋ฒ์ AutoBE์ ํ์ค ์ํฌํ๋ก์ฐ์ ์ ์ง์ ์ผ๋ก ํตํฉํ๋ค.
3. Human Modification Support
AutoBE๊ฐ ์์ฑํ๋ ๋ฐฑ์๋ ์ฝ๋๋ ์์ฑ๋ ํ๋ก๋์ ์ฝ๋๋ค. ๊ทธ๋ฌ๋ ํ์ค์์ ๊ฐ๋ฐ์๋ ์์ฑ๋ ์ฝ๋๋ฅผ ์ง์ ์์ ํ๋ค. ์๋ก์ด ๋น์ฆ๋์ค ์๊ตฌ์ฌํญ, ๋ฒ๊ทธ ์์ , ์ฑ๋ฅ ์ต์ ํ ๋ฑ ๋ค์ํ ์ด์ ๋ก ์ฝ๋๋ ๋ฐ๋๋ค. ๋ฌธ์ ๋ AutoBE๊ฐ ์ด๋ ๊ฒ ๋ณ๊ฒฝ๋ ์ฝ๋๋ฅผ ๋ ์ด์ ์ธ์ํ์ง ๋ชปํ๋ค๋ฉด, AutoBE์ ๊ฐ์น๋ ์ผํ์ฑ ์ฝ๋ ์์ฑ๊ธฐ๋ก ์ ๋ฝํ๋ค๋ ๊ฒ์ด๋ค.
์ด ๊ธฐ๋ฅ์ ์๋ Delta ๋ก๋๋งต์ ํฌํจ๋์ด ์์๋ค. ๊ทธ๋ฌ๋ 1๋ถ๊ธฐ ์ค ์ ๋ต ๋ฐฉํฅ์ด ๋ฐ๋์๋ค. โAutoBE ์์ฑ๋ฌผ์ด ์๋ฒฝํ์ง ์๋๋ผ๋ ๊ฐ๋ฐ์๊ฐ ๊ณง๋ฐ๋ก ์ฌ์ฉํ์ฌ ์์ฐ์ฑ์ ํฅ์์ํฌ ์ ์๋ ํํ๋ถํฐ ๋จผ์ โ๋ผ๋ ๋ฐฉํฅ์ผ๋ก ์ ํ๋๋ฉด์, Playground ์ ํ๋ฆฌ์ผ์ด์ ๊ณ ๋ํ, AutoBE ์์ฑ๋ฌผ ๊ธฐ๋ฐ์ Claude Skills ๊ตฌ์ฑ, ๋ฐํ ์๋ฃ ์์ฑ ๋ฐ ์ธ๋ฏธ๋ ์ฐธ์ฌ ๋ฑ์ด ์ฐ์ ์์์ ์ฌ๋๋ค. Human Modification Support๋ ๊ทธ๋ ๊ฒ ๋ฏธ๋ฃจ์ด์ก๋ค.
Epsilon์์ ์ด ๋ฏธ์ ์ ์ฌ๊ฐํ๋ค.
3.1. Database Schema Parser
์ฌ์ฉ์๊ฐ schema.prisma ํ์ผ์ ์ง์ ์์ ํ์ ๋, ์ด๋ฅผ ํ์ฑํ์ฌ AutoBeDatabase.IApplication AST๋ก ๋ณํํ๋ค. Prisma ์คํค๋ง ๋ฌธ๋ฒ์ ๋ง๋ ํ์๋ฅผ ๊ตฌํํ์ฌ AutoBE์ ๋ด๋ถ ํํ์ผ๋ก ๋งคํํ๋ค.
ํ์ฑ ๋์:
- ๋ชจ๋ธ ์ ์: ํ ์ด๋ธ๋ช , ์ปฌ๋ผ๋ช , ํ์ , ์ ์ฝ ์กฐ๊ฑด
- ๊ด๊ณ ์ ์:
@relation์ด๋ ธํ ์ด์ ์ผ๋ก ํํ๋ FK ๊ด๊ณ - ์ธ๋ฑ์ค ์ ์:
@@index,@@unique๋ฑ์ ์ธ๋ฑ์ค ์ค์
ํ์ฑ ์ ๊ณ ๋ ค ์ฌํญ:
@default(autoincrement()),@updatedAt๋ฑ Prisma ํน์ ๋ฌธ๋ฒ์ AutoBE AST ๋์- ์ฌ์ฉ์๊ฐ ์ถ๊ฐํ ์ปค์คํ ์ด๋ ธํ ์ด์ ์ด๋ ์ฃผ์ ๋ณด์กด
- AutoBE๊ฐ ์์ฑํ์ง ์์ ์ ๊ท ํ ์ด๋ธ/์ปฌ๋ผ์ ์๋ณ ๋ฐ ํตํฉ
3.2. Interface Schema Parser
์ฌ์ฉ์๊ฐ NestJS Controller๋ DTO ์ฝ๋๋ฅผ ์ง์ ์์ ํ์ ๋, TypeScript ์์ค ์ฝ๋๋ฅผ ํ์ฑํ์ฌ AutoBeOpenApi.IDocument AST๋ก ๋ณํํ๋ค.
TypeScript ์ฝ๋ ํ์ฑ:
- NestJS Controller ํ์ผ์์
@Get,@Post๋ฑ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ํ์ฑํ์ฌ ์คํผ๋ ์ด์ ์ ๋ณด ์ถ์ถ - DTO ํด๋์ค์์ ํ์ ์ ์์ ์ ํจ์ฑ ๊ฒ์ฌ ๋ฐ์ฝ๋ ์ดํฐ๋ฅผ ๋ถ์ํ์ฌ ์คํค๋ง ์ ๋ณด ์ถ์ถ
- TypeScript AST ํ์๋ฅผ ํ์ฉํ ์ ์ ๋ถ์
ํ์ฑ ์ ๊ณ ๋ ค ์ฌํญ:
- ์ฌ์ฉ์๊ฐ ์ถ๊ฐํ ์ ๊ท ์๋ํฌ์ธํธ์ ์๋ณ ๋ฐ ํตํฉ
- ๊ธฐ์กด ์๋ํฌ์ธํธ์ ๋ํ ๋ณ๊ฒฝ์ฌํญ ํ์ง (ํ๋ผ๋ฏธํฐ ์ถ๊ฐ, ์๋ต ํ์ ๋ณ๊ฒฝ ๋ฑ)
- DTO ์คํค๋ง ๋ณ๊ฒฝ์ ์ ํํ ๋ฐ์
3.3. Requirements Sync Agent
DB ์คํค๋ง๋ Interface๊ฐ ๋ณ๊ฒฝ๋์๋ค๋ ๊ฒ์ ์๊ตฌ์ฌํญ์ด ๋ณ๊ฒฝ๋์๋ค๋ ๊ฒ์ ์๋ฏธํ๋ค. ๊ฐ๋ฐ์๊ฐ ์ง์ ์ฝ๋๋ฅผ ์์ ํ๋ค๋ ๊ฒ์, ์๋ ์๊ตฌ์ฌํญ์ ์๋ ์๋ก์ด ์๊ตฌ์ฌํญ์ด ์๊ฒผ๊ฑฐ๋ ๊ธฐ์กด ์๊ตฌ์ฌํญ์ด ๋ฌ๋ผ์ก๋ค๋ ์ ํธ๋ค.
์๊ตฌ์ฌํญ ๋๊ธฐํ ์์ด์ ํธ๋ ํ์ฑ๋ AST๋ฅผ ๋ถ์ํ์ฌ ์๊ตฌ์ฌํญ ๋ฌธ์๋ฅผ ์๋์ผ๋ก ๊ฐฑ์ ํ๋ค:
- ์ถ๊ฐ๋ ์ํฐํฐ/์์ฑ ํ์ง: ์๋ก์ด ํ ์ด๋ธ์ด๋ ์ปฌ๋ผ์ ์๊ตฌ์ฌํญ ๋ฌธ์์ ๋ฐ์
- ๋ณ๊ฒฝ๋ ๊ด๊ณ ํ์ง: FK ๊ด๊ณ๋ ์ฐธ์กฐ ๊ตฌ์กฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด ๊ด๋ จ ์๊ตฌ์ฌํญ ์น์ ๊ฐฑ์
- ์ถ๊ฐ๋ ์๋ํฌ์ธํธ ํ์ง: ์๋ก์ด API ์๋ํฌ์ธํธ ์ถ๊ฐ ์ ๊ธฐ๋ฅ ์๊ตฌ์ฌํญ ๋ฌธ์ํ
- ๋ณ๊ฒฝ๋ ์คํค๋ง ํ์ง: DTO ํ๋ ์ถ๊ฐ/์ญ์ /ํ์ ๋ณ๊ฒฝ์ ์๊ตฌ์ฌํญ์ ๋ฐ์
์์ด์ ํธ๋ ๋ณ๊ฒฝ ์ฌํญ์ ์์ฝํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ์ํ๊ณ , ์น์ธ ํ ์๊ตฌ์ฌํญ ๋ฌธ์๋ฅผ ์ ๋ฐ์ดํธํ๋ค. ์ด๋ฅผ ํตํด ์ฝ๋์ ๋ฌธ์ ๊ฐ์ ์ผ๊ด์ฑ์ด ์ ์ง๋๊ณ , ์ดํ ๋ํ์์๋ AutoBE๊ฐ ๋ณ๊ฒฝ ์ด๋ ฅ์ ์ธ์ํ ์ฑ๋ก ์ ์ง๋ณด์๋ฅผ ์ด์ด๊ฐ ์ ์๊ฒ ๋๋ค.
4. Multilingual Support
4.1. Lazy Joining ORM
ํ์ฌ Realize Agent๋ DB์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ DTO๋ก ๋ณํํ ๋ Prisma ORM ๊ธฐ๋ฐ์ select โ transform ์ด์ค ๊ตฌ์กฐ๋ก ์ฝ๋๋ฅผ ์์ฑํ๋ค. ๋ฌธ์ ๊ฐ ๋ ๊ฐ์ง๋ค.
์ฒซ์งธ, Prisma ์ ์ฉ ์ฝ๋๊ฐ ๋ ์๋ฐ์ ์๋ค. Java์ Hibernate๋ก ์ ํํ๋ ค๋ฉด select ๋ฐฉ์๋ถํฐ transform ๋ก์ง๊น์ง ์ ๋ถ ๋ค์ ์จ์ผ ํ๋ค. ๋ฉํฐ๋ญ๊ท์ง ์ง์์ ๋ฐฉํดํ๋ ๊ตฌ์กฐ์ ์์ธ์ด๋ค.
๋์งธ, ์ด์ค์ผ๋ก ์ฝ๋๋ฅผ ์์ฑํด์ผ ํ๋ ๋งํผ ์๋ฌ์จ์ด ๋์์ง๋ค. select ์ ๊ณผ transform ๋ก์ง์ด ๋ฐ๋ก ์กด์ฌํ๋ฉด ๋ ๊ณณ์ด ์๋ก ๋ง์์ผ ํ๊ณ , AI๊ฐ ๋ ์ค ํ๋๋ฅผ ์๋ชป ์์ฑํ๋ฉด ๋ฐํ์ ์ค๋ฅ๋ก ์ด์ด์ง๋ค.
Lazy Joining ORM์ ์ด ๊ตฌ์กฐ๋ฅผ ๊ทผ๋ณธ์ ์ผ๋ก ๋ฐ๊พธ๋ ค๋ ์ฐ๊ตฌ๋ค. ORM ๋ํผ ํด๋์ค๋ฅผ ์ ์ํ์ฌ, ๊ฐ๋ฐ์(ํน์ AI)๊ฐ ์ฒ์๋ถํฐ ๋ชจ๋ select/join์ด ์๋ฃ๋ ๊ฐ์ฒด์ธ ๊ฒ์ฒ๋ผ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ค. ์ค์ select์ join์ ํํ์ ์ผ๋ก ์ต์ ํ๋์ด ์คํ๋๊ณ , DTO ๋ฐ์ธ๋ฉ๊น์ง ์๋์ผ๋ก ์ฒ๋ฆฌ๋๋ค. select planning ์ฝ๋๋ฅผ ๋ณ๋๋ก ์์ฑํ ํ์๊ฐ ์์ด์ง๋ ๊ฒ์ด๋ค.
์ด ์ ๊ทผ์ด ์ฑ๊ณตํ๋ฉด Prisma๋ Java Hibernate๋ ๋์ผํ ์์ ๋ ์ด์ด ์ฝ๋๋ฅผ ๊ณต์ ํ ์ ์๊ณ , AI๊ฐ ์์ฑํด์ผ ํ๋ ์ฝ๋์ ์๊ณผ ๋ณต์ก๋๊ฐ ์ค์ด ๋ฐํ์ ์๋ฌ์จ๋ ๋ฎ์์ง๋ค. ๋ฉํฐ๋ญ๊ท์ง์ ๋ฐํ์ ์์ ์ฑ, ๋ ๋ฌธ์ ๋ฅผ ๋์์ ๊ณต๋ตํ๋ ์ฐ๊ตฌ๋ค.
5. Documentation
5.1. PR Articles Writing
dev.to, Reddit, Hacker News ๋ฑ ์ฃผ์ ๊ฐ๋ฐ์ ์ปค๋ฎค๋ํฐ์ ๊ธฐ์ ์ํฐํด์ ์ง์์ ์ผ๋ก ๊ฒ์ฌํ๋ค. ์ฃผ๋ ์ฃผ์ ๋ Function Calling Harness๋ค. 6.75%์ ์ฒซ ์๋ ์ฑ๊ณต๋ฅ ์ 100%๋ก ๋์ด์ฌ๋ฆฐ ํ๋ค์ค ์์ง๋์ด๋ง, Typia๊ฐ ํ์ ํ๋๋ก ์คํค๋งยทํ์ยท๊ฒ์ฆ๊ธฐยทํผ๋๋ฐฑ ์์ฑ๊ธฐ๋ฅผ ์๋ํํ๋ ์๋ฆฌ, ์ํ ๋ชจ๋ธ์ด ์ ์ต๊ณ ์ QA ์์ง๋์ด์ธ์ง ๊ฐ์ ๋ด์ฉ์ด ์ค์ฌ์ด ๋๋ค.
AutoBE์ ๋ฐํ์ ์ฑ๊ณต๋ฅ ๋์ ๋ ์ํฐํด๋ก ๋ค๋ฃฌ๋ค. ์ปดํ์ผ ์ฑ๊ณต๊ณผ ๋ฐํ์ ์ฑ๊ณต์ ์ฐจ์ด, Runtime Feedback Loop์ ์ค๊ณ, Benchmark Pipeline์ด ๋ฌด์์ ์ธก์ ํ๊ณ ์ด๋ป๊ฒ ๊ฐ์ ์ผ๋ก ์ด์ด์ง๋์ง ๋ฑ์ด๋ค.
5.2. Seminar Participation
์ปจํผ๋ฐ์ค์ ๋ฐ์ ์ ์ง์์ ์ผ๋ก ์ฐธ์ฌํ๋ค. Qwen Meetup Korea์์ Function Calling Harness๋ฅผ ๋ฐํํ ๊ฒ์ฒ๋ผ, AutoBE์ ๊ธฐ์ ์ ์ ๊ทผ์ ๋ค์ํ ์ปค๋ฎค๋ํฐ์ ์๊ฐํ๋ค. ๋ฐํ ์ฃผ์ ๋ ์ํฐํด๊ณผ ๊ฐ์ ๋งฅ๋ฝ์ด๋ค. ์ํ ์คํ์์ค ๋ชจ๋ธ๋ก ์์คํ ์ ์ฝ์ ์ ๋ฐ๊ตดํ๊ณ ํ๋ค์ค๋ฅผ ๊ฐํํ๋ ๋ฐฉ์, ๊ทธ๋ฆฌ๊ณ ์ด๊ฒ์ด ์ฝ๋ ์์ฑ์ ๋์ด ๋ค๋ฅธ ์์ง๋์ด๋ง ๋๋ฉ์ธ์๋ ์ ์ฉ๋ ์ ์๋ค๋ ๊ด์ ์ ๊ณต์ ํ๋ค.
5.3. Tutorial Documents
Guide Documents๊ฐ AutoBE์ ์๋ ์๋ฆฌ๋ฅผ ์ค๋ช ํ๋ค๋ฉด, Tutorial Documents๋ AutoBE๋ฅผ ์ค๋ฌด์ ์จ๋ณธ ๊ฐ๋ฐ์๊ฐ ์ฒด๋ํ ๋ ธํ์ฐ๋ฅผ ๋ด๋๋ค. โ์ด๋ ๊ฒ ์ฐ๋ฉด ๋ ์ ๋๋คโ๋ ์ค์ ํ, ์๊ตฌ์ฌํญ์ ์ด๋ป๊ฒ ์์ฑํด์ผ ์ํ๋ ๊ฒฐ๊ณผ๊ฐ ๋์ค๋์ง, ์์ฑ๋ ์ฝ๋๋ฅผ ์ด๋ป๊ฒ ๋ค๋ฌ์ผ๋ฉด ํ๋ก๋์ ์ ๋น ๋ฅด๊ฒ ์ฌ๋ฆด ์ ์๋์ง ๊ฐ์ ๋ด์ฉ์ด๋ค.
์์ ์ฃผ์ :
- ์๊ตฌ์ฌํญ ์์ฑ๋ฒ: ์ด๋ป๊ฒ ๋ํํ๋ฉด AutoBE๊ฐ ๋ ์ ํํ ๋ฐฑ์๋๋ฅผ ์์ฑํ๋๊ฐ
- ์์ฑ๋ฌผ ์ํคํ ์ฒ ํด์ค: AutoBE๊ฐ ์์ฑํ๋ ์ฝ๋์ ๊ตฌ์กฐ์ ์ค๊ณ ์ฒ ํ. Collector/Transformer/Provider ๊ณ์ธต์ด ์ ์ด๋ ๊ฒ ๋๋๋์ง, ์ด๋๋ฅผ ๊ฑด๋๋ฆฌ๋ฉด ์ด๋ค ์ํฅ์ด ์๊ธฐ๋์ง๋ฅผ ์ดํดํด์ผ ์ ์ง๋ณด์๊ฐ ๊ฐ๋ฅํ๋ค
- Claude Code๋ก ์ด์ด๋ฐ๊ธฐ: AutoBE๊ฐ ์์ฑํ ๋ฐฑ์๋๋ฅผ Claude Code๋ก ๋๊ฒจ ์ ์ง๋ณด์ํ๋ ์ค์ ์ํฌํ๋ก์ฐ. AutoBE ์์ฑ๋ฌผ์ ์ํคํ ์ฒ๋ฅผ ์ดํดํ Claude Code๊ฐ ์ด๋ป๊ฒ ๊ธฐ์กด ์ฝ๋์ ์์ฐ์ค๋ฝ๊ฒ ๊ธฐ๋ฅ์ ์ถ๊ฐํ๊ณ ๋ฒ๊ทธ๋ฅผ ์์ ํ๋์ง ๋ค๋ฃฌ๋ค
- ํ๋ก ํธ์๋ ์ฐ๋: AutoBE๊ฐ ํจ๊ป ์์ฑํ๋ ํ์ ์ธ์ดํ SDK๋ฅผ ํ๋ก ํธ์๋์ ์ฐ๋ํ๋ ๋ฐฉ๋ฒ, ๊ทธ๋ฆฌ๊ณ OpenAPI ์คํ์ ๋ฐํ์ผ๋ก ํ๋ก ํธ์๋ ์ฝ๋๋ฅผ ์๋ ์์ฑํ๋ ๋ฐฉ๋ฒ