Automation
CodeQL
CodeQL์ GitHub Actions๋ก ์์ฝ๊ฒ ์ ์ฉํ ์ ์๋ ์ฝ๋ ๋ถ์ ๋๊ตฌ์
๋๋ค.
์ฝ๋์ ์ทจ์ฝ์ ์ ์ฐพ์๋ด๊ณ , ์ฝ๋ ํ์ง์ ๋ ํฅ์์ํค๋ ๋ฐ ๋์์ ์ค๋๋ค.
์๋๋ PR ์์ฑ๋ง๋ค CodeQL์ ํธ๋ฆฌ๊ฑฐํ๋ ๋ฐฉ์์ ๋ง์ด ์ฑ์ฉํ์ง๋ง, ์ฃผ๊ธฐ์ ์คํ์ผ๋ก๋ ์ถฉ๋ถํ๋ค๊ณ ํ๋จํ์ฌ ์กฐ์ ์ค์
๋๋ค.
- Private ์ ์ฅ์์์๋ ์ ๋ฃ ๊ฒฐ์ ๋ฅผ ํด์ผ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค.
- ๊ถํ ๋ฌธ์ ๋ก ์ธํด ๋ด๋ถ
GITHUB_TOKEN์ ์ฌ์ฉํ ๊ฒฝ์ฐ PR ์์ฑ ์ด๋ฒคํธ ๋ฑ์ผ๋ก๋ CodeQL์ด ํธ๋ฆฌ๊ฑฐ๋์ง ์์ ์ ์์ต๋๋ค. ์ด๋ ์๋๋ ์ฌํญ์ด๋ฉฐ, PAT์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.1
AI Code Assistant
Gemini CLI
Gemini CLI๋ Google์์ ํฐ๋ฏธ๋์ ํตํด Gemini๋ฅผ ์ฌ์ฉํ๊ณ ์ฝ๋ฉ ๋ฑ์ ์์ ์ ํ์ฉํ ์ ์๋๋ก ์ง์ํ๋ CLI ๋๊ตฌ์ ๋๋ค.
ํ ์์ ๋งค์ผ 1000๋ฒ์ Request๊ฐ ๋ฌด๋ฃ์ด๊ธฐ ๋๋ฌธ์ ๋น์ฉ ๋ฉด์์ ๋งค์ฐ ๋งค๋ ฅ์ ์ด์ง๋ง,
๋ค๋ฅธ AI ์๋น์ค์ ๋นํด ์ฑ๋ฅ์ด ๋จ์ด์ง๊ณ ๋ฌด์๋ณด๋ค ๊ธฐ์กด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ์งํค์ง ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ ์ฌ์ฉ์ด ์ด๋ ค์ ์ต๋๋ค.
ํ์ฌ Gemini CLI๋ฅผ ์ฌ์ฉ ์ค์ธ ์ผ์ด์ค๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ์ฒ์๋ถํฐ PoC๋ MVP๋ฅผ ๋ง๋ค ๋: ์ง์ผ์ผ ํ ์ฝ๋๋ฒ ์ด์ค๊ฐ ์๊ธฐ ๋๋ฌธ์ ์ด๋ ์ ๋ ์ญํ ์ ํ ์ ์์ต๋๋ค.
- ๋งค์ฐ ๊ฐ๋จํ ์์
๊ทธ ์ธ์๋ Gemini CLI๋ฅผ Claude Code์ MCP ์๋ฒ๋ก ์ฐ๊ฒฐํด์ ์ผ๋ถ ์์ ์ Gemini์ ์์ํ๋ ๋ฐฉ๋ฒ๋ ์๋ค๊ณ ํฉ๋๋ค.2
:::warning ์ฃผ์ํ ์
์ต๊ทผ์ Gemini CLI๋ ๊ธฐํ AI ๊ธฐ๋ฅ์ ์ฌ์ฉํ๋ฉด Google์์ ์์ฒด์ ์ผ๋ก ํ๋ก์ ํธ๋ฅผ ๋ง๋๋ ๊ฒ์ผ๋ก ๋ณด์
๋๋ค.3
ํด๋น ํ๋ก์ ํธ๋ ์ฌ์ฉ์๊ฐ ๊ด๋ฆฌํ ์ ์๋ ํ๋ก์ ํธ์
๋๋ค. ์์ง๊น์ง ๊ณผ๊ธ์ด ๋์ง๋ ์์์ง๋ง, ์ ์ฌํ ๊ด์ฐฐํ๊ณ ์์ต๋๋ค.
:::
Claude Code
Claude Code๋ Anthropic์์ ์ ๊ณตํ๋ ์ฝ๋ฉ ๋๊ตฌ์
๋๋ค.
ํ์กดํ๋ ๋ชจ๋ AI ์ฝ๋ฉ ๋๊ตฌ ์ค ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ข๊ณ , ๊ทธ๋ฅ ์จ๋ ์ฒด๊ฐ ํจ๊ณผ๊ฐ ํฝ๋๋ค.
์ ๋ ํ์ฌ๋ ์ ๋ฐฉ์์ ์ผ๋ก Claude Code๋ฅผ ์ฌ์ฉํ๊ณ ์์ต๋๋ค.
์๋๋ ์ถ๊ฐ์ ์ผ๋ก ์ ์ฉํ๋ค๊ณ ์๊ฐํ๋ ๊ธฐ๋ฅ์ ๋๋ค.
- ccusage
- Claude Code ์ฌ์ฉ๋์ ์ถ์ ํฉ๋๋ค. ํ์ฌ ์ธ์ ์ ์ฌ์ฉ๋๊ณผ ์์ฌ ํ๋๋ ํ์ธํ ์ ์์ต๋๋ค. Claude Code์์ ์ง์ ์ ๊ณตํ๋ ๊ธฐ๋ฅ์ ์๋์ง๋ง ๋งค์ฐ ์ ์ฉํฉ๋๋ค.
- ๋ค๋ง, Claude Code ๊ธฐ๋ก์ด ๋ก์ปฌ์ ๊ธฐ๋ก๋๊ธฐ ๋๋ฌธ์ ์๋ก ๋ค๋ฅธ ๊ธฐ๊ธฐ์์ ์ฌ์ฉํ ๊ฒฝ์ฐ ๋น์ฉ์ ๋ฐ๋ก ๊ณ์ฐ๋ฉ๋๋ค.
- Subagent
- ์์ฃผ ์ฌ์ฉํ๋ ์์คํ ํ๋กฌํํธ๋ฅผ ์ ์ฅํด ๋๊ณ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ์ฌ์ฉํ ์ ์์ต๋๋ค.
- ๋ฐ๋ณต ์์ ์ด๋ ์๋ํ์ ํจ๊ณผ์ ์ ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ์ ๋ฌด์์ ์กฐ๊ธ ๋ ์ ์ฉํ์ต๋๋ค.
- ํ์ํ ๊ฒฝ์ฐ ๋ค๋ฅธ ์ฌ๋์ด๋ ํ์๋ค์๊ฒ ๊ณต์ ํ ์๋ ์์ต๋๋ค.
- ์ด Repository์์ ์์๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
ํจ๊ณผ์ ์ด๋ผ ์๊ฐํ๋ ๊ฒ
- ๋ณต์กํ ๋ก๊ทธ ๋ถ์
- ๋จ์ํ๊ณ ๋ช ๋ฃํ ๋ฐ๋ณต ์์
- ํ ์คํธ ์ฝ๋ ์์ฑ, TDD
- ๋ฌธ์์ ์ค๋ช ์ด์
์ง์ ํด์ผ ํ๋ค๊ณ ๋๊ผ๋ ๊ฒ
- ์ง์์ ์ธ ํ๋กฌํํธ ์ต์ ํ
- ๋ณต์กํ๊ณ , ๊ณ ์ ํด์ ์ฐธ๊ณ ์๋ฃ๊ฐ ์ ์ ๋น์ฆ๋์ค ๋ก์ง
- ๋ฆฌํฉํ ๋ง, ๊ตฌ์กฐ ๊ฐ์
- ์ด๋ ์ ๋ ํด ๋์ผ๋ฉด AI์๊ฒ ์์ ์ ๋งก๊ธธ ์๋ ์์ต๋๋ค.
- ๊ณ ํต์ค๋ฌ์ด ์์ ์ด์ง๋ง ํด ๋๋ฉด ์์ฐ์ฑ์ด ์ฌ๋ผ๊ฐ๋ค๊ณ ์๊ฐํฉ๋๋ค.
์คํ์์ค ๋ผ์ด์ผ์ค
์คํ์์ค๋ฅผ ์ฌ์ฉํ ๋๋ ๋ฐ๋์ ๋ผ์ด์ ์ค๋ฅผ ํ์ธํ๊ณ , ํด๋น ๋ผ์ด์ ์ค์ ์๋ฐ๋๋ ๋ด์ฉ์ด ์์ด์ผ ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ง์ด ์ฌ์ฉ๋๋ MIT, Apache 2.0 ๋ผ์ด์ ์ค๋ ๋น๊ต์ ์์ ๋ก์ด ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ฉฐ, ์์ค์ฝ๋ ๊ณต๊ฐ ์๋ฌด๊ฐ ์์ต๋๋ค.
๋ฐ๋ฉด, GPL ๊ณ์ด ๋ผ์ด์ ์ค๋ ํ๋ก๊ทธ๋จ์ ๋ฐฐํฌํ ๊ฒฝ์ฐ ์์ค์ฝ๋๋ฅผ ๊ณต๊ฐํด์ผ ํ๋ ์กฐ๊ฑด์ด ์์ต๋๋ค.
ํนํ AGPL ๋ผ์ด์ ์ค๋ ์ด์ ๋ํด ๋คํธ์ํฌ๋ฅผ ํตํด ์๋น์ค ํํ๋ก ์ ๊ณตํ๋ ๊ฒฝ์ฐ์๋ ์์ค์ฝ๋๋ฅผ ๊ณต๊ฐํด์ผ ํ๋ฏ๋ก ์ฃผ์๊ฐ ํ์ํฉ๋๋ค.
๋ํ์ ์ธ AGPL ๊ธฐ๋ฐ ๋ผ์ด์ผ์ค๋ฅผ ์ฌ์ฉํ๋ ์คํ์์ค๋ Ghostscript, Grafana, MongoDB๊ฐ ์์ต๋๋ค. ๋ณดํต ์ด๋ฌํ ์คํ์์ค๊ฐ ํ์ํ ๊ฒฝ์ฐ, ์ฌ์ฉ์์๊ฒ ์ง์ ์ค์น๋ฅผ ์๊ตฌํ๊ณ , ์ด๋ฅผ CLI ๋ฑ์ผ๋ก ํธ์ถํ์ฌ AGPL์ ์๋ฐํ์ง ์๊ณ ์ฌ์ฉํ ์ ์์ต๋๋ค.
๋ณธ์ธ์ ํ๋ก์ ํธ๊ฐ ์คํ์์ค ๋ผ์ด์ผ์ค๋ฅผ ์ฌ๋ฐ๋ฅด๊ฒ ์ค์ํ๊ณ ์๋์ง ํ์ธํ๊ณ ์ถ๋ค๋ฉด, OLIVE Platform์ ์ฌ์ฉํด ๋ณด๋ ๊ฒ์ ์ถ์ฒํฉ๋๋ค.
์ค์ ํ์ผ์ ํตํด ๋ผ์ด์ผ์ค๋ฅผ ์ค์บํ๊ณ , ๋ณด๊ณ ์์ ๊ณ ์ง๋ฌธ๊น์ง ์์ฑํ ์ ์์ต๋๋ค.