# ๐Ÿ—๏ธ CodeGraphContext (CGC) **์ฝ”๋“œ ์ €์žฅ์†Œ๋ฅผ AI ์—์ด์ „ํŠธ๊ฐ€ ์ฟผ๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ทธ๋ž˜ํ”„๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.** ๐ŸŒ **์–ธ์–ด:** - ๐Ÿ‡ฌ๐Ÿ‡ง [English](README.md) - ๐Ÿ‡จ๐Ÿ‡ณ [ไธญๆ–‡](README.zh-CN.md) - ๐Ÿ‡ฐ๐Ÿ‡ท [ํ•œ๊ตญ์–ด](README.kor.md) - ๐Ÿ‡บ๐Ÿ‡ฆ [ะฃะบั€ะฐั—ะฝััŒะบะฐ](README.uk.md) - ๐Ÿ‡ท๐Ÿ‡บ [ะ ัƒััะบะธะน](README.ru-RU.md) - ๐Ÿ‡ฏ๐Ÿ‡ต [ๆ—ฅๆœฌ่ชž](README.ja.md) - ๐Ÿ‡ช๐Ÿ‡ธ Espaรฑol (์ค€๋น„ ์ค‘) ๐ŸŒ **CodeGraphContext๋ฅผ ์—ฌ๋Ÿฌ๋ถ„์˜ ์–ธ์–ด๋กœ ๋ฒˆ์—ญํ•˜๋Š” ๋ฐ ๋„์›€์„ ์ฃผ์„ธ์š”! https://github.com/CodeGraphContext/CodeGraphContext/issues ์—์„œ ์ด์Šˆ์™€ PR์„ ์ƒ์„ฑํ•ด ์ฃผ์„ธ์š”!**


๋”ฅ ์ฝ”๋“œ ๊ทธ๋ž˜ํ”„์™€ AI ์ปจํ…์ŠคํŠธ ์‚ฌ์ด์˜ ๊ฐ„๊ทน์„ ํ•ด์†Œํ•ฉ๋‹ˆ๋‹ค.

PyPI ๋ฒ„์ „ PyPI ๋‹ค์šด๋กœ๋“œ ๋ผ์ด์„ ์Šค MCP ํ˜ธํ™˜

Stars Forks ์ด์Šˆ PR ๊ธฐ์—ฌ์ž

ํ…Œ์ŠคํŠธ E2E ํ…Œ์ŠคํŠธ ์›น์‚ฌ์ดํŠธ ๋ฌธ์„œ YouTube ๋ฐ๋ชจ

๋กœ์ปฌ ์ฝ”๋“œ๋ฅผ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ธ๋ฑ์‹ฑํ•˜์—ฌ AI ์–ด์‹œ์Šคํ„ดํŠธ์™€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ปจํ…์ŠคํŠธ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฐ•๋ ฅํ•œ **MCP ์„œ๋ฒ„** ๋ฐ **CLI ๋„๊ตฌ ๋ชจ์Œ**์ž…๋‹ˆ๋‹ค. ํฌ๊ด„์ ์ธ ์ฝ”๋“œ ๋ถ„์„์„ ์œ„ํ•œ ๋…๋ฆฝ ์‹คํ–‰ํ˜• CLI๋กœ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, MCP๋ฅผ ํ†ตํ•ด ์„ ํ˜ธํ•˜๋Š” AI IDE์— ์—ฐ๊ฒฐํ•˜์—ฌ AI ๊ธฐ๋ฐ˜ ์ฝ”๋“œ ์ดํ•ด๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. --- ## ๐Ÿ“ ๋น ๋ฅธ ํƒ์ƒ‰ * [๐Ÿš€ ๋น ๋ฅธ ์‹œ์ž‘](#๋น ๋ฅธ-์‹œ์ž‘) * [๐ŸŒ ์ง€์› ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด](#์ง€์›-ํ”„๋กœ๊ทธ๋ž˜๋ฐ-์–ธ์–ด) * [๐Ÿ› ๏ธ CLI ๋„๊ตฌ ๋ชจ์Œ](#cli-๋„๊ตฌ-๋ชจ์Œ-๋ชจ๋“œ) * [๐Ÿค– MCP ์„œ๋ฒ„](#-mcp-์„œ๋ฒ„-๋ชจ๋“œ) * [๐Ÿ—„๏ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ต์…˜](#๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค-์˜ต์…˜) --- ## โœจ CGC ์ฒดํ—˜ํ•˜๊ธฐ ### ๐Ÿ‘จ๐Ÿปโ€๐Ÿ’ป ์„ค์น˜ ๋ฐ CLI > pip์œผ๋กœ ๋ช‡ ์ดˆ ๋งŒ์— ์„ค์น˜ํ•˜๊ณ  ๊ฐ•๋ ฅํ•œ ์ฝ”๋“œ ๊ทธ๋ž˜ํ”„ ๋ถ„์„ CLI๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”. ![CLI๋ฅผ ์ฆ‰์‹œ ์„ค์น˜ํ•˜๊ณ  ์‚ฌ์šฉํ•˜๊ธฐ](https://github.com/CodeGraphContext/CodeGraphContext/blob/main/images/install&cli.gif) ### ๐Ÿ› ๏ธ ๋ช‡ ์ดˆ ๋งŒ์— ์ธ๋ฑ์‹ฑ > CLI๊ฐ€ tree-sitter ๋…ธ๋“œ๋ฅผ ์ง€๋Šฅ์ ์œผ๋กœ ํŒŒ์‹ฑํ•˜์—ฌ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. ![MCP ํด๋ผ์ด์–ธํŠธ๋ฅผ ์‚ฌ์šฉํ•œ ์ธ๋ฑ์‹ฑ](https://github.com/CodeGraphContext/CodeGraphContext/blob/main/images/Indexing.gif) ### ๐Ÿค– AI ์–ด์‹œ์Šคํ„ดํŠธ ์ง€์› > ์ž์—ฐ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ MCP๋ฅผ ํ†ตํ•ด ๋ณต์žกํ•œ ํ˜ธ์ถœ ์ฒด์ธ์„ ์ฟผ๋ฆฌํ•˜์„ธ์š”. ![MCP ์„œ๋ฒ„ ์‚ฌ์šฉ](https://github.com/CodeGraphContext/CodeGraphContext/blob/main/images/Usecase.gif) --- ## ํ”„๋กœ์ ํŠธ ์„ธ๋ถ€ ์ •๋ณด - **๋ฒ„์ „:** 0.4.16 - **์ €์ž:** Shashank Shekhar Singh - **๋ผ์ด์„ ์Šค:** MIT License (์ž์„ธํ•œ ๋‚ด์šฉ์€ [LICENSE](LICENSE) ์ฐธ์กฐ) - **์›น์‚ฌ์ดํŠธ:** [CodeGraphContext](http://codegraphcontext.vercel.app/) --- ## ๐Ÿ‘จโ€๐Ÿ’ป ๋ฉ”์ธํ…Œ์ด๋„ˆ **CodeGraphContext**๋Š” ๋‹ค์Œ์— ์˜ํ•ด ์ œ์ž‘ ๋ฐ ์ ๊ทน์ ์œผ๋กœ ์œ ์ง€ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค: **Shashank Shekhar Singh** - ๐Ÿ“ง ์ด๋ฉ”์ผ: [shashankshekharsingh1205@gmail.com](mailto:shashankshekharsingh1205@gmail.com) - ๐Ÿ™ GitHub: [@Shashankss1205](https://github.com/Shashankss1205) - ๐Ÿ”— LinkedIn: [Shashank Shekhar Singh](https://www.linkedin.com/in/shashank-shekhar-singh-a67282228/) - ๐ŸŒ ์›น์‚ฌ์ดํŠธ: [codegraphcontext.vercel.app](http://codegraphcontext.vercel.app/) *๊ธฐ์—ฌ์™€ ํ”ผ๋“œ๋ฐฑ์€ ์–ธ์ œ๋‚˜ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ์งˆ๋ฌธ, ์ œ์•ˆ ๋˜๋Š” ํ˜‘์—… ๊ธฐํšŒ์— ๋Œ€ํ•ด ์ž์œ ๋กญ๊ฒŒ ์—ฐ๋ฝํ•ด ์ฃผ์„ธ์š”.* --- ## Star ๊ธฐ๋ก [Star History Chart โ†—](https://www.star-history.com/#CodeGraphContext/CodeGraphContext&Date) --- ## ๊ธฐ๋Šฅ - **์ฝ”๋“œ ์ธ๋ฑ์‹ฑ:** ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜๊ณ  ๊ตฌ์„ฑ ์š”์†Œ์˜ ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. - **๊ด€๊ณ„ ๋ถ„์„:** ํ˜ธ์ถœ์ž, ํ”ผํ˜ธ์ถœ์ž, ํด๋ž˜์Šค ๊ณ„์ธต ๊ตฌ์กฐ, ํ˜ธ์ถœ ์ฒด์ธ ๋“ฑ์„ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. - **์‚ฌ์ „ ์ธ๋ฑ์‹ฑ๋œ ๋ฒˆ๋“ค:** `.cgc` ๋ฒˆ๋“ค๋กœ ์œ ๋ช…ํ•œ ์ €์žฅ์†Œ๋ฅผ ์ฆ‰์‹œ ๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค - ์ธ๋ฑ์‹ฑ์ด ํ•„์š” ์—†์Šต๋‹ˆ๋‹ค! ([์ž์„ธํžˆ ์•Œ์•„๋ณด๊ธฐ](docs/BUNDLES.md)) - **์‹ค์‹œ๊ฐ„ ํŒŒ์ผ ๊ฐ์‹œ:** ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฐ์‹œํ•˜๊ณ  ๊ทธ๋ž˜ํ”„๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ž๋™ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค (`cgc watch`). - **๋Œ€ํ™”ํ˜• ์„ค์ •:** ์‰ฌ์šด ์„ค์ •์„ ์œ„ํ•œ ์‚ฌ์šฉ์ž ์นœํ™”์ ์ธ ๋ช…๋ น์ค„ ๋งˆ๋ฒ•์‚ฌ. - **๋“€์–ผ ๋ชจ๋“œ:** ๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ๋…๋ฆฝ ์‹คํ–‰ํ˜• **CLI ๋„๊ตฌ ๋ชจ์Œ**๊ณผ AI ์—์ด์ „ํŠธ๋ฅผ ์œ„ํ•œ **MCP ์„œ๋ฒ„**๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค. - **๋‹ค๊ตญ์–ด ์ง€์›:** 14๊ฐœ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด ์™„๋ฒฝ ์ง€์›. - **์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—”๋“œ:** KรนzuDB (๊ธฐ๋ณธ, ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ์„ค์ • ๋ถˆํ•„์š”), FalkorDB Lite (Unix ์ „์šฉ), FalkorDB Remote, ๋˜๋Š” Neo4j (Docker/๋„ค์ดํ‹ฐ๋ธŒ๋ฅผ ํ†ตํ•œ ๋ชจ๋“  ํ”Œ๋žซํผ). --- ## ์ง€์› ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด CodeGraphContext๋Š” ๋‹ค์Œ ์–ธ์–ด์— ๋Œ€ํ•œ ํฌ๊ด„์ ์ธ ํŒŒ์‹ฑ ๋ฐ ๋ถ„์„์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค: | | ์–ธ์–ด | | ์–ธ์–ด | | ์–ธ์–ด | | :--- | :--- | :--- | :--- | :--- | :--- | | ๐Ÿ | **Python** | ๐Ÿ“œ | **JavaScript** | ๐Ÿ”ท | **TypeScript** | | โ˜• | **Java** | ๐Ÿ—๏ธ | **C / C++** | #๏ธโƒฃ | **C#** | | ๐Ÿน | **Go** | ๐Ÿฆ€ | **Rust** | ๐Ÿ’Ž | **Ruby** | | ๐Ÿ˜ | **PHP** | ๐ŸŽ | **Swift** | ๐ŸŽจ | **Kotlin** | | ๐ŸŽฏ | **Dart** | ๐Ÿช | **Perl** | | | ๊ฐ ์–ธ์–ด ํŒŒ์„œ๋Š” ํ•จ์ˆ˜, ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ๋งค๊ฐœ๋ณ€์ˆ˜, ์ƒ์† ๊ด€๊ณ„, ํ•จ์ˆ˜ ํ˜ธ์ถœ ๋ฐ ์ž„ํฌํŠธ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ํฌ๊ด„์ ์ธ ์ฝ”๋“œ ๊ทธ๋ž˜ํ”„๋ฅผ ๊ตฌ์ถ•ํ•ฉ๋‹ˆ๋‹ค. --- ## ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์˜ต์…˜ CodeGraphContext๋Š” ์‚ฌ์šฉ ํ™˜๊ฒฝ์— ๋งž๋Š” ๋‹ค์–‘ํ•œ ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฐฑ์—”๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค: | ๊ธฐ๋Šฅ | KรนzuDB (๊ธฐ๋ณธ) | FalkorDB Lite | Neo4j | | :--- | :--- | :--- | :--- | | **์„ค์ •** | ์„ค์ • ๋ถˆํ•„์š” / ์ž„๋ฒ ๋””๋“œ | ์„ค์ • ๋ถˆํ•„์š” / ์ธํ”„๋กœ์„ธ์Šค | Docker / ์™ธ๋ถ€ | | **ํ”Œ๋žซํผ** | **๋ชจ๋“  ํ”Œ๋žซํผ (Windows, macOS, Linux)** | Unix ์ „์šฉ (Linux/macOS/WSL) | ๋ชจ๋“  ํ”Œ๋žซํผ | | **์‚ฌ์šฉ ์‚ฌ๋ก€** | ๋ฐ์Šคํฌํ†ฑ, IDE, ๋กœ์ปฌ ๊ฐœ๋ฐœ | ํŠนํ™”๋œ Unix ๊ฐœ๋ฐœ | ์—”ํ„ฐํ”„๋ผ์ด์ฆˆ, ๋Œ€๊ทœ๋ชจ ๊ทธ๋ž˜ํ”„ | | **์š”๊ตฌ ์‚ฌํ•ญ**| `pip install kuzu` | `pip install falkordblite` | Neo4j Server / Docker | | **์†๋„** | โšก ๋งค์šฐ ๋น ๋ฆ„ | โšก ๋น ๋ฆ„ | ๐Ÿš€ ํ™•์žฅ ๊ฐ€๋Šฅ | | **์˜์†์„ฑ**| ์˜ˆ (๋””์Šคํฌ) | ์˜ˆ (๋””์Šคํฌ) | ์˜ˆ (๋””์Šคํฌ) | --- ## ์‚ฌ์šฉ ์‚ฌ๋ก€ CodeGraphContext๋Š” ์ด๋ฏธ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์šฉ๋„๋กœ ๊ฐœ๋ฐœ์ž์™€ ํ”„๋กœ์ ํŠธ์—์„œ ํ™œ์šฉ๋˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: - **AI ์–ด์‹œ์Šคํ„ดํŠธ์—์„œ์˜ ์ •์  ์ฝ”๋“œ ๋ถ„์„** - **ํ”„๋กœ์ ํŠธ์˜ ๊ทธ๋ž˜ํ”„ ๊ธฐ๋ฐ˜ ์‹œ๊ฐํ™”** - **๋ฐ๋“œ ์ฝ”๋“œ ๋ฐ ๋ณต์žก๋„ ํƒ์ง€** _ํ”„๋กœ์ ํŠธ์—์„œ CodeGraphContext๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ๊ณ„์‹œ๋‹ค๋ฉด, PR์„ ์ƒ์„ฑํ•˜์—ฌ ์—ฌ๊ธฐ์— ์ถ”๊ฐ€ํ•ด ์ฃผ์„ธ์š”! ๐Ÿš€_ --- ## ์˜์กด์„ฑ - `neo4j>=5.15.0` - `watchdog>=3.0.0` - `stdlibs>=2023.11.18` - `typer[all]>=0.9.0` - `rich>=13.7.0` - `inquirerpy>=0.3.7` - `python-dotenv>=1.0.0` - `tree-sitter>=0.21.0` - `tree-sitter-language-pack>=0.6.0` - `pyyaml` - `pytest` - `nbformat` - `nbconvert>=7.16.6` - `pathspec>=0.12.1` **์ฐธ๊ณ :** Python 3.10-3.14์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. --- ## ๋น ๋ฅธ ์‹œ์ž‘ ### ํ•ต์‹ฌ ๋„๊ตฌ ๋ชจ์Œ ์„ค์น˜ ``` pip install codegraphcontext ``` ### 'cgc' ๋ช…๋ น์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ, ๋‹ค์Œ ํ•œ ์ค„ ์ˆ˜์ • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”: ``` curl -sSL https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh | bash ``` --- ## ์‹œ์ž‘ํ•˜๊ธฐ ### ๐Ÿ“‹ CodeGraphContext ๋ชจ๋“œ ์ดํ•ดํ•˜๊ธฐ CodeGraphContext๋Š” **๋‘ ๊ฐ€์ง€ ๋ชจ๋“œ**๋กœ ์ž‘๋™ํ•˜๋ฉฐ, ๋‘˜ ์ค‘ ํ•˜๋‚˜ ๋˜๋Š” ๋ชจ๋‘ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค: #### ๐Ÿ› ๏ธ ๋ชจ๋“œ 1: CLI ๋„๊ตฌ ๋ชจ์Œ (๋…๋ฆฝ ์‹คํ–‰ํ˜•) CodeGraphContext๋ฅผ ์ฝ”๋“œ ๋ถ„์„์„ ์œ„ํ•œ **๊ฐ•๋ ฅํ•œ ๋ช…๋ น์ค„ ๋„๊ตฌ ๋ชจ์Œ**์œผ๋กœ ์‚ฌ์šฉํ•˜์„ธ์š”: - ํ„ฐ๋ฏธ๋„์—์„œ ์ง์ ‘ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์ธ๋ฑ์‹ฑํ•˜๊ณ  ๋ถ„์„ - ์ฝ”๋“œ ๊ด€๊ณ„ ์ฟผ๋ฆฌ, ๋ฐ๋“œ ์ฝ”๋“œ ์ฐพ๊ธฐ, ๋ณต์žก๋„ ๋ถ„์„ - ์ฝ”๋“œ ๊ทธ๋ž˜ํ”„ ๋ฐ ์˜์กด์„ฑ ์‹œ๊ฐํ™” - CLI ๋ช…๋ น์„ ํ†ตํ•œ ์ง์ ‘ ์ œ์–ด๋ฅผ ์›ํ•˜๋Š” ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์ ํ•ฉ #### ๐Ÿค– ๋ชจ๋“œ 2: MCP ์„œ๋ฒ„ (AI ๊ธฐ๋ฐ˜) CodeGraphContext๋ฅผ AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ์œ„ํ•œ **MCP ์„œ๋ฒ„**๋กœ ์‚ฌ์šฉํ•˜์„ธ์š”: - AI IDE (VS Code, Cursor, Windsurf, Claude, Kiro ๋“ฑ) ์—ฐ๊ฒฐ - AI ์—์ด์ „ํŠธ๊ฐ€ ์ž์—ฐ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ์ฟผ๋ฆฌ - ์ž๋™ ์ฝ”๋“œ ์ดํ•ด ๋ฐ ๊ด€๊ณ„ ๋ถ„์„ - AI ์ง€์› ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์— ์ ํ•ฉ **๋‘ ๋ชจ๋“œ ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค!** ํ•œ ๋ฒˆ ์„ค์น˜ํ•˜๋ฉด CLI ๋ช…๋ น์„ ์ง์ ‘ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ AI ์–ด์‹œ์Šคํ„ดํŠธ์— ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ### ์„ค์น˜ (๋ชจ๋“  ๋ชจ๋“œ) 1. **์„ค์น˜:** `pip install codegraphcontext`
โš™๏ธ ๋ฌธ์ œ ํ•ด๊ฒฐ: cgc ๋ช…๋ น์–ด๋ฅผ ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ ์„ค์น˜ ํ›„ "cgc: command not found" ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด PATH ์ˆ˜์ • ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์‹คํ–‰ํ•˜์„ธ์š”: **Linux/Mac:** ```bash # ์ˆ˜์ • ์Šคํฌ๋ฆฝํŠธ ๋‹ค์šด๋กœ๋“œ curl -O https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh # ์‹คํ–‰ ๊ถŒํ•œ ๋ถ€์—ฌ chmod +x post_install_fix.sh # ์Šคํฌ๋ฆฝํŠธ ์‹คํ–‰ ./post_install_fix.sh # ํ„ฐ๋ฏธ๋„์„ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ์…ธ ์„ค์ •์„ ๋‹ค์‹œ ๋กœ๋“œ source ~/.bashrc # zsh ์‚ฌ์šฉ์ž๋Š” ~/.zshrc ``` **Windows (PowerShell):** ```powershell # ์ˆ˜์ • ์Šคํฌ๋ฆฝํŠธ ๋‹ค์šด๋กœ๋“œ curl -O https://raw.githubusercontent.com/CodeGraphContext/CodeGraphContext/main/scripts/post_install_fix.sh # bash๋กœ ์‹คํ–‰ (Git Bash ๋˜๋Š” WSL ํ•„์š”) bash post_install_fix.sh # PowerShell์„ ์žฌ์‹œ์ž‘ํ•˜๊ฑฐ๋‚˜ ํ”„๋กœํ•„์„ ๋‹ค์‹œ ๋กœ๋“œ . $PROFILE ```
2. **๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค์ • (์ž๋™)** - **KรนzuDB (๊ธฐ๋ณธ):** Windows, macOS, Linux์—์„œ ์„ค์ • ์—†์ด ๊ธฐ๋ณธ์ ์œผ๋กœ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. `pip install kuzu`๋งŒ ํ•˜๋ฉด ์ค€๋น„ ์™„๋ฃŒ! - **FalkorDB Lite (๋Œ€์•ˆ):** Python 3.12+์˜ Unix/macOS/WSL์—์„œ ์ง€์›๋ฉ๋‹ˆ๋‹ค. - **Neo4j (๋Œ€์•ˆ):** Neo4j๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์„œ๋ฒ„ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์„ ํ˜ธํ•˜๋Š” ๊ฒฝ์šฐ: `cgc neo4j setup` ์‹คํ–‰ --- ### CLI ๋„๊ตฌ ๋ชจ์Œ ๋ชจ๋“œ **CLI ๋ช…๋ น์œผ๋กœ ์ฆ‰์‹œ ์‚ฌ์šฉ ์‹œ์ž‘:** ```bash # ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ ์ธ๋ฑ์‹ฑ cgc index . # ๋ชจ๋“  ์ธ๋ฑ์‹ฑ๋œ ์ €์žฅ์†Œ ๋ชฉ๋ก ์กฐํšŒ cgc list # ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๊ณณ ๋ถ„์„ cgc analyze callers my_function # ๋ณต์žกํ•œ ์ฝ”๋“œ ์ฐพ๊ธฐ cgc analyze complexity --threshold 10 # ๋ฐ๋“œ ์ฝ”๋“œ ์ฐพ๊ธฐ cgc analyze dead-code # ์‹ค์‹œ๊ฐ„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๊ฐ์‹œ (์„ ํƒ ์‚ฌํ•ญ) cgc watch . # ๋ชจ๋“  ๋ช…๋ น์–ด ๋ณด๊ธฐ cgc help ``` **์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“  ๋ช…๋ น์–ด์™€ ์‚ฌ์šฉ ์‹œ๋‚˜๋ฆฌ์˜ค๋Š” [CLI ๋ช…๋ น ๊ฐ€์ด๋“œ](CLI_Commands.md)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.** ### ๐ŸŽจ ํ”„๋ฆฌ๋ฏธ์—„ ๋Œ€ํ™”ํ˜• ์‹œ๊ฐํ™” CodeGraphContext๋Š” ์ฝ”๋“œ์˜ ๋ฉ‹์ง„ ๋Œ€ํ™”ํ˜• ์ง€์‹ ๊ทธ๋ž˜ํ”„๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •์  ๋‹ค์ด์–ด๊ทธ๋žจ๊ณผ ๋‹ฌ๋ฆฌ ํ”„๋ฆฌ๋ฏธ์—„ ์›น ๊ธฐ๋ฐ˜ ํƒ์ƒ‰๊ธฐ์ž…๋‹ˆ๋‹ค: - **ํ”„๋ฆฌ๋ฏธ์—„ ๋ฏธํ•™**: ๋‹คํฌ ๋ชจ๋“œ, ๊ธ€๋ž˜์Šค๋ชจํ”ผ์ฆ˜, ๋ชจ๋˜ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ (Outfit/JetBrains Mono). - **๋Œ€ํ™”ํ˜• ๊ฒ€์‚ฌ**: ๋…ธ๋“œ๋ฅผ ํด๋ฆญํ•˜๋ฉด ์‹ฌ๋ณผ ์ •๋ณด, ํŒŒ์ผ ๊ฒฝ๋กœ ๋ฐ ์ปจํ…์ŠคํŠธ๊ฐ€ ํฌํ•จ๋œ ์ƒ์„ธ ์‚ฌ์ด๋“œ ํŒจ๋„์ด ์—ด๋ฆฝ๋‹ˆ๋‹ค. - **๋น ๋ฅธ ๊ฒ€์ƒ‰**: ๊ทธ๋ž˜ํ”„์—์„œ ํŠน์ • ์‹ฌ๋ณผ์„ ์ฆ‰์‹œ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ์‹ค์‹œ๊ฐ„ ๊ฒ€์ƒ‰. - **์ง€๋Šฅํ˜• ๋ ˆ์ด์•„์›ƒ**: ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ์ฝ๊ธฐ ์‰ฝ๊ฒŒ ๋งŒ๋“œ๋Š” ํž˜ ๊ธฐ๋ฐ˜ ๋ฐ ๊ณ„์ธต์  ๋ ˆ์ด์•„์›ƒ. - **๋ฌด์˜์กด์„ฑ ๋ณด๊ธฐ**: ๋ชจ๋“  ์ตœ์‹  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘๋™ํ•˜๋Š” ๋…๋ฆฝ ์‹คํ–‰ํ˜• HTML ํŒŒ์ผ. ```bash # ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ๊ฐํ™” cgc analyze calls my_function --viz # ํด๋ž˜์Šค ๊ณ„์ธต ๊ตฌ์กฐ ํƒ์ƒ‰ cgc analyze tree MyClass --viz # ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ ์‹œ๊ฐํ™” cgc find pattern "Auth" --viz ``` --- ### ๐Ÿค– MCP ์„œ๋ฒ„ ๋ชจ๋“œ **AI ์–ด์‹œ์Šคํ„ดํŠธ์—์„œ CodeGraphContext๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •:** 1. **์„ค์ •:** MCP ์„ค์ • ๋งˆ๋ฒ•์‚ฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ IDE/AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค: ```bash cgc mcp setup ``` ๋งˆ๋ฒ•์‚ฌ๊ฐ€ ์ž๋™์œผ๋กœ ๊ฐ์ง€ํ•˜๊ณ  ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋Š” ๋„๊ตฌ: * VS Code * Cursor * Windsurf * Claude * Gemini CLI * ChatGPT Codex * Cline * RooCode * Amazon Q Developer * Kiro ์„ฑ๊ณต์ ์œผ๋กœ ๊ตฌ์„ฑ๋˜๋ฉด `cgc mcp setup`์ด ํ•„์š”ํ•œ ์„ค์ • ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๊ณ  ๋ฐฐ์น˜ํ•ฉ๋‹ˆ๋‹ค: * ํ˜„์žฌ ๋””๋ ‰ํ† ๋ฆฌ์— ์ฐธ์กฐ์šฉ `mcp.json` ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. * ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ž๊ฒฉ ์ฆ๋ช…์„ `~/.codegraphcontext/.env`์— ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค. * ์„ ํƒํ•œ IDE/CLI์˜ ์„ค์ • ํŒŒ์ผ(์˜ˆ: `.claude.json` ๋˜๋Š” VS Code์˜ `settings.json`)์„ ์—…๋ฐ์ดํŠธํ•ฉ๋‹ˆ๋‹ค. 2. **์‹œ์ž‘:** MCP ์„œ๋ฒ„๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค: ```bash cgc mcp start ``` 3. **์‚ฌ์šฉ:** ์ด์ œ AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ํ†ตํ•ด ์ž์—ฐ์–ด๋กœ ์ฝ”๋“œ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜์„ธ์š”! ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. --- ## ํŒŒ์ผ ๋ฌด์‹œํ•˜๊ธฐ (`.cgcignore`) ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— `.cgcignore` ํŒŒ์ผ์„ ๋งŒ๋“ค์–ด CodeGraphContext๊ฐ€ ํŠน์ • ํŒŒ์ผ๊ณผ ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๋ฌด์‹œํ•˜๋„๋ก ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ํŒŒ์ผ์€ `.gitignore`์™€ ๋™์ผํ•œ ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. **`.cgcignore` ํŒŒ์ผ ์˜ˆ์‹œ:** ``` # ๋นŒ๋“œ ์‚ฐ์ถœ๋ฌผ ๋ฌด์‹œ /build/ /dist/ # ์˜์กด์„ฑ ๋ฌด์‹œ /node_modules/ /vendor/ # ๋กœ๊ทธ ๋ฌด์‹œ *.log ``` --- ## MCP ํด๋ผ์ด์–ธํŠธ ์„ค์ • `cgc mcp setup` ๋ช…๋ น์€ IDE/CLI๋ฅผ ์ž๋™์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ ค๊ณ  ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค. ์ž๋™ ์„ค์ •์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ ๋„๊ตฌ๊ฐ€ ์ง€์›๋˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์ˆ˜๋™์œผ๋กœ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์˜ ์„ค์ • ํŒŒ์ผ(์˜ˆ: VS Code์˜ `settings.json` ๋˜๋Š” `.claude.json`)์— ๋‹ค์Œ ์„œ๋ฒ„ ์„ค์ •์„ ์ถ”๊ฐ€ํ•˜์„ธ์š”: ```json { "mcpServers": { "CodeGraphContext": { "command": "cgc", "args": [ "mcp", "start" ], "env": { "NEO4J_URI": "YOUR_NEO4J_URI", "NEO4J_USERNAME": "YOUR_NEO4J_USERNAME", "NEO4J_PASSWORD": "YOUR_NEO4J_PASSWORD" }, "disabled": false, "alwaysAllow": [] } } } ``` --- ## ์ž์—ฐ์–ด ์ƒํ˜ธ์ž‘์šฉ ์˜ˆ์‹œ ์„œ๋ฒ„๊ฐ€ ์‹คํ–‰ ์ค‘์ด๋ฉด AI ์–ด์‹œ์Šคํ„ดํŠธ๋ฅผ ํ†ตํ•ด ์ผ๋ฐ˜ ํ•œ๊ตญ์–ด๋กœ ์ƒํ˜ธ์ž‘์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค: ### ์ธ๋ฑ์‹ฑ ๋ฐ ํŒŒ์ผ ๊ฐ์‹œ - **์ƒˆ ํ”„๋กœ์ ํŠธ๋ฅผ ์ธ๋ฑ์‹ฑํ•˜๋ ค๋ฉด:** - "`/path/to/my-project` ๋””๋ ‰ํ† ๋ฆฌ์˜ ์ฝ”๋“œ๋ฅผ ์ธ๋ฑ์‹ฑํ•ด ์ฃผ์„ธ์š”." ๋˜๋Š” - "`~/dev/my-other-project`์— ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๋ฅผ ์ฝ”๋“œ ๊ทธ๋ž˜ํ”„์— ์ถ”๊ฐ€ํ•ด ์ฃผ์„ธ์š”." - **์‹ค์‹œ๊ฐ„ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ์œ„ํ•ด ๋””๋ ‰ํ† ๋ฆฌ ๊ฐ์‹œ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋ฉด:** - "`/path/to/my-active-project` ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฐ์‹œํ•ด ์ฃผ์„ธ์š”." ๋˜๋Š” - "`~/dev/main-app`์—์„œ ์ž‘์—… ์ค‘์ธ ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ ๊ทธ๋ž˜ํ”„๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•ด ์ฃผ์„ธ์š”." ๋””๋ ‰ํ† ๋ฆฌ ๊ฐ์‹œ๋ฅผ ์š”์ฒญํ•˜๋ฉด ์‹œ์Šคํ…œ์ด ๋‘ ๊ฐ€์ง€ ์ž‘์—…์„ ๋™์‹œ์— ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค: 1. ํ•ด๋‹น ๋””๋ ‰ํ† ๋ฆฌ์˜ ๋ชจ๋“  ์ฝ”๋“œ๋ฅผ ์ธ๋ฑ์‹ฑํ•˜๊ธฐ ์œ„ํ•œ ์ „์ฒด ์Šค์บ”์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐฑ๊ทธ๋ผ์šด๋“œ์—์„œ ์‹คํ–‰๋˜๋ฉฐ, ์ง„ํ–‰ ์ƒํ™ฉ์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•œ `job_id`๋ฅผ ๋ฐ›๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. 2. ๊ทธ๋ž˜ํ”„๋ฅผ ์‹ค์‹œ๊ฐ„์œผ๋กœ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ํŒŒ์ผ ๋ณ€๊ฒฝ ์‚ฌํ•ญ ๊ฐ์‹œ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ์‹œ์Šคํ…œ์— ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ๊ฐ์‹œํ•˜๋ผ๊ณ  ์ง€์‹œํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ์ดˆ๊ธฐ ์ธ๋ฑ์‹ฑ๊ณผ ์ง€์†์ ์ธ ์—…๋ฐ์ดํŠธ๋ฅผ ๋ชจ๋‘ ์ž๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ### ์ฝ”๋“œ ์ฟผ๋ฆฌ ๋ฐ ์ดํ•ด - **์ฝ”๋“œ๊ฐ€ ์ •์˜๋œ ์œ„์น˜ ์ฐพ๊ธฐ:** - "`process_payment` ํ•จ์ˆ˜๋Š” ์–ด๋””์— ์žˆ๋‚˜์š”?" - "`User` ํด๋ž˜์Šค๋ฅผ ์ฐพ์•„ ์ฃผ์„ธ์š”." - "'๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์—ฐ๊ฒฐ'๊ณผ ๊ด€๋ จ๋œ ์ฝ”๋“œ๋ฅผ ๋ณด์—ฌ ์ฃผ์„ธ์š”." - **๊ด€๊ณ„ ๋ฐ ์˜ํ–ฅ๋„ ๋ถ„์„:** - "`get_user_by_id` ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋‹ค๋ฅธ ํ•จ์ˆ˜๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?" - "`calculate_tax` ํ•จ์ˆ˜๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด ์ฝ”๋“œ์˜ ์–ด๋–ค ๋ถ€๋ถ„์ด ์˜ํ–ฅ์„ ๋ฐ›๋‚˜์š”?" - "`BaseController` ํด๋ž˜์Šค์˜ ์ƒ์† ๊ณ„์ธต ๊ตฌ์กฐ๋ฅผ ๋ณด์—ฌ ์ฃผ์„ธ์š”." - "`Order` ํด๋ž˜์Šค์—๋Š” ์–ด๋–ค ๋ฉ”์„œ๋“œ๊ฐ€ ์žˆ๋‚˜์š”?" - **์˜์กด์„ฑ ํƒ์ƒ‰:** - "`requests` ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ž„ํฌํŠธํ•˜๋Š” ํŒŒ์ผ์€ ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋‚˜์š”?" - "`render` ๋ฉ”์„œ๋“œ์˜ ๋ชจ๋“  ๊ตฌํ˜„์„ ์ฐพ์•„ ์ฃผ์„ธ์š”." - **๊ณ ๊ธ‰ ํ˜ธ์ถœ ์ฒด์ธ ๋ฐ ์˜์กด์„ฑ ์ถ”์  (์ˆ˜๋ฐฑ ๊ฐœ์˜ ํŒŒ์ผ์— ๊ฑธ์ณ):** CodeGraphContext๋Š” ๊ด‘๋ฒ”์œ„ํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ๋ณต์žกํ•œ ์‹คํ–‰ ํ๋ฆ„๊ณผ ์˜์กด์„ฑ์„ ์ถ”์ ํ•˜๋Š” ๋ฐ ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํž˜์„ ํ™œ์šฉํ•˜์—ฌ ํ•จ์ˆ˜๊ฐ€ ์—ฌ๋Ÿฌ ์ถ”์ƒํ™” ๊ณ„์ธต์ด๋‚˜ ์ˆ˜๋งŽ์€ ํŒŒ์ผ์„ ํ†ตํ•ด ํ˜ธ์ถœ๋˜๋Š” ๊ฒฝ์šฐ์—๋„ ์ง์ ‘ ๋ฐ ๊ฐ„์ ‘ ํ˜ธ์ถœ์ž์™€ ํ”ผํ˜ธ์ถœ์ž๋ฅผ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฒฝ์šฐ์— ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค: - **์˜ํ–ฅ๋„ ๋ถ„์„:** ํ•ต์‹ฌ ํ•จ์ˆ˜ ๋ณ€๊ฒฝ์˜ ์ „์ฒด ํŒŒ๊ธ‰ ํšจ๊ณผ๋ฅผ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค. - **๋””๋ฒ„๊น…:** ์ง„์ž…์ ์—์„œ ํŠน์ • ๋ฒ„๊ทธ๊นŒ์ง€์˜ ์‹คํ–‰ ๊ฒฝ๋กœ๋ฅผ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค. - **์ฝ”๋“œ ์ดํ•ด:** ๋Œ€๊ทœ๋ชจ ์‹œ์Šคํ…œ์˜ ์—ฌ๋Ÿฌ ๋ถ€๋ถ„์ด ์–ด๋–ป๊ฒŒ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š”์ง€ ํŒŒ์•…ํ•ฉ๋‹ˆ๋‹ค. - "`main` ํ•จ์ˆ˜์—์„œ `process_data`๊นŒ์ง€์˜ ์ „์ฒด ํ˜ธ์ถœ ์ฒด์ธ์„ ๋ณด์—ฌ ์ฃผ์„ธ์š”." - "`validate_input`์„ ์ง์ ‘ ๋˜๋Š” ๊ฐ„์ ‘์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋ฅผ ์ฐพ์•„ ์ฃผ์„ธ์š”." - "`initialize_system`์ด ์ตœ์ข…์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋Š” ๋ชจ๋“  ํ•จ์ˆ˜๋Š” ๋ฌด์—‡์ธ๊ฐ€์š”?" - "`DatabaseManager` ๋ชจ๋“ˆ์˜ ์˜์กด์„ฑ์„ ์ถ”์ ํ•ด ์ฃผ์„ธ์š”." - **์ฝ”๋“œ ํ’ˆ์งˆ ๋ฐ ์œ ์ง€๋ณด์ˆ˜:** - "์ด ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ๋ฐ๋“œ ์ฝ”๋“œ๊ฐ€ ์žˆ๋‚˜์š”?" - "`src/utils.py`์˜ `process_data` ํ•จ์ˆ˜์˜ ์ˆœํ™˜ ๋ณต์žก๋„๋ฅผ ๊ณ„์‚ฐํ•ด ์ฃผ์„ธ์š”." - "์ฝ”๋“œ๋ฒ ์ด์Šค์—์„œ ๊ฐ€์žฅ ๋ณต์žกํ•œ ํ•จ์ˆ˜ 5๊ฐœ๋ฅผ ์ฐพ์•„ ์ฃผ์„ธ์š”." - **์ €์žฅ์†Œ ๊ด€๋ฆฌ:** - "ํ˜„์žฌ ์ธ๋ฑ์‹ฑ๋œ ๋ชจ๋“  ์ €์žฅ์†Œ๋ฅผ ๋‚˜์—ดํ•ด ์ฃผ์„ธ์š”." - "`/path/to/old-project`์— ์žˆ๋Š” ์ธ๋ฑ์‹ฑ๋œ ์ €์žฅ์†Œ๋ฅผ ์‚ญ์ œํ•ด ์ฃผ์„ธ์š”." --- ## ๊ธฐ์—ฌํ•˜๊ธฐ ๊ธฐ์—ฌ๋ฅผ ํ™˜์˜ํ•ฉ๋‹ˆ๋‹ค! ๐ŸŽ‰ ์ž์„ธํ•œ ๊ฐ€์ด๋“œ๋ผ์ธ์€ [CONTRIBUTING.md](CONTRIBUTING.md)๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ, ํ†ตํ•ฉ ๋˜๋Š” ๊ฐœ์„ ์— ๋Œ€ํ•œ ์•„์ด๋””์–ด๊ฐ€ ์žˆ์œผ์‹œ๋ฉด [์ด์Šˆ](https://github.com/CodeGraphContext/CodeGraphContext/issues)๋ฅผ ์—ด๊ฑฐ๋‚˜ Pull Request๋ฅผ ์ œ์ถœํ•ด ์ฃผ์„ธ์š”. ํ† ๋ก ์— ์ฐธ์—ฌํ•˜๊ณ  CodeGraphContext์˜ ๋ฏธ๋ž˜๋ฅผ ํ•จ๊ป˜ ๋งŒ๋“ค์–ด ๊ฐ€์„ธ์š”.