๋ฒ๊ทธ, ์ทจ์ฝ์ ๋ฐ ์คํ์ผ ์๋ฐ ์ฌํญ์ด ํ๋ก๋์ ์ ๋๋ฌํ๊ธฐ ์ ์ ๋ชจ๋ ํ ๋ฆฌํ์คํธ์์ ์๋์ผ๋ก ๊ฐ์งํฉ๋๋ค.

์์ง๋์ด๋ง ํ์ ์๋ ์ฝ๋ ๊ฒํ ๋ณ๋ชฉ ํ์์ผ๋ก ์ธํด ๊ฐ๋ฐ ์๋๊ฐ ํฌ๊ฒ ์ ํ๋ฉ๋๋ค.
์๋์ด ๊ฐ๋ฐ์๋ค์ ํ ๋ฆฌํ์คํธ๋ฅผ ๊ฒํ ํ๋ ๋ฐ ์ ์ฒด ์๊ฐ์ 20-30%๋ฅผ ์๋นํ๋ฉฐ, ์ด๋ ์ถ์ ์๋์ ์ฝ๋ ํ์ง ์ฌ์ด์ ์ง์์ ์ธ ๊ธด์ฅ์ ์ ๋ฐํฉ๋๋ค. ์ค์ํ ๋ณด์ ์ทจ์ฝ์ , ์ฑ๋ฅ ์ ํ, ๋ฏธ๋ฌํ ๋ ผ๋ฆฌ ์ค๋ฅ๋ ํนํ ๊ฒํ ์๊ฐ ํผ๋กํ๊ฑฐ๋ ์ธ๋ ฅ์ด ๋ถ์กฑํ ์๊ธฐ ์ํฉ ๋์ ์ธ๊ฐ์ ๊ฒํ ๋ฅผ ์ผ์์ ์ผ๋ก ํต๊ณผํฉ๋๋ค. ๊ธฐ์กด ๋ฆฐํ (linting) ๋๊ตฌ๋ ํ๋ฉด์ ์ธ ๋ฌธ์ ๋ฅผ ๊ฐ์งํ์ง๋ง, ์ ์ฒด ์ฝ๋๋ฒ ์ด์ค์ ๋ํ ์ดํด๊ฐ ํ์ํ ๋ ๊น์ ์ํคํ ์ฒ ๋ฌธ์ , ๊ฒฝํฉ ์กฐ๊ฑด(race conditions) ๋ฐ ์ปจํ ์คํธ ์ข ์์ ์ธ ๋ฒ๊ทธ๋ ๋์นฉ๋๋ค.
๋ค์ ํ๋ก์ ํธ๋ฅผ ์ํ ๋ ๋ง์ ๊ตฌํ ์ฒญ์ฌ์ง์ ๋ฐ๊ฒฌํ์ธ์
MicrocosmWorks๋ ๊ท์น ๊ธฐ๋ฐ ์ ์ ๋ถ์๊ธฐ๋ณด๋ค ๋ ๊น์ ์์ค์์ ์ฝ๋ ์๋ฏธ๋ก ๋ฐ ๋ฐ์ดํฐ ํ๋ฆ์ ์ดํดํ๋ AI ์ฝ๋ ๊ฒํ ์์ด์ ํธ๋ฅผ ๊ตฌ์ถํ์ฌ, ์์ ํ์ง ์์ ์ญ์ง๋ ฌํ ์ฒด์ธ, ๊ฐ์ URL ๊ตฌ์ฑ์ ํตํ SSRF, ๊ทธ๋ฆฌ๊ณ ์ฌ๋ฌ ํ์ผ์ ๊ฑธ์ณ ์๋ ๋น์ฆ๋์ค ๋ก์ง ๊ฒฐํจ๊ณผ ๊ฐ์ ์ทจ์ฝ์ ์ ๊ฐ์งํฉ๋๋ค. AI๋ ์ฌ์ฉ์ ์ ๋ ฅ์ด ํน์ ์ฝ๋๋ฒ ์ด์ค ์ํคํ ์ฒ๋ฅผ ํตํด ์ด๋ป๊ฒ ์ ํ๋๋์ง ์ถ๋ก ํ์ฌ, ์ผ๋ฐ SAST ๋๊ตฌ๊ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ปจํ ์คํธ ๋ถ์กฑ์ผ๋ก ๋์น๋ ๊ณต๊ฒฉ ํ๋ฉด์ ์๋ณํฉ๋๋ค. ๋ํ ์์ด์ ํธ๋ ๋ฐ๊ฒฌ ์ฌํญ์ ์ข ์์ฑ ๊ทธ๋ํ์ ์ํธ ์ฐ๊ด์์ผ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ํตํ ์ ์ด์ ์ทจ์ฝ์ ๊ฒฝ๋ก๋ฅผ ํ์ํฉ๋๋ค.
MicrocosmWorks๋ pull request diffs๋ฅผ ๋ถ์ํ์ฌ ๋ณ๊ฒฝ๋ ์ฝ๋ ๊ฒฝ๋ก์ ํนํ๋ ์ ๋ ํ ์คํธ, ํตํฉ ํ ์คํธ, ์ฃ์ง ์ผ์ด์ค ์๋๋ฆฌ์ค๋ฅผ ์์ฑํ๋ AI ์์ด์ ํธ๋ฅผ ๋ฐฐํฌํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๊ฒฝ๊ณ ์กฐ๊ฑด, ์ค๋ฅ ์ฒ๋ฆฌ, ๊ด๋ จ ๊ธฐ๋ฅ์ ๋ํ ํ๊ท ํ ์คํธ๊ฐ ํฌํจ๋ฉ๋๋ค. ์์ฑ๋ ํ ์คํธ๋ ํ์ ํ ์คํธ ์ค์ํธ๋ก๋ถํฐ ํ์ตํ์ฌ ๊ธฐ์กด ํ ์คํธ ๊ท์น, ํ๋ ์์ํฌ (Jest, pytest, JUnit ๋ฑ) ๋ฐ mocking ํจํด์ ๋ฐ๋ฆ ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ ์ฝ๋์ ํ ์คํธ ์ปค๋ฒ๋ฆฌ์ง๋ฅผ 30-50% ์ฆ๊ฐ์ํค๋ฉด์ ๊ฐ๋ฐ์๊ฐ ์์ฉ๊ตฌ ํ ์คํธ ์ฝ๋๋ฅผ ์์ฑํ๋ ๋ฐ ๋๋ ์๊ฐ์ ์ค์ฌ์ค๋๋ค.
MicrocosmWorks๋ ๊ฐ๋ฐ์๊ฐ ํด๋ฆญ ํ ๋ฒ์ผ๋ก ๋ฐ๊ฒฌ ์ฌํญ์ ํด์ ํ ์ ์๋ ํผ๋๋ฐฑ ๋ฃจํ๋ฅผ ๊ตฌํํ๋ฉฐ, ์์ด์ ํธ๋ ์ด๋ฌํ ํด์ ๊ธฐ๋ก์ ํ์ตํ์ฌ ํน์ ์ฝ๋๋ฒ ์ด์ค ํจํด ๋ฐ ํ ์ปจ๋ฒค์ ์ ๋ง๊ฒ ๋ฏผ๊ฐ๋๋ฅผ ์กฐ์ ํฉ๋๋ค. ์์คํ ์ ๊ท์น ์นดํ ๊ณ ๋ฆฌ๋ณ ์ ๋ฐ๋ ์งํ๋ฅผ ์ถ์ ํ๊ณ , ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ ํ๋ ์๊ณ๊ฐ ์๋๋ก ๋จ์ด์ง๋ ์นดํ ๊ณ ๋ฆฌ๋ ์ฌํ๋ จ๋ ๋๊น์ง ์๋์ผ๋ก ์ต์ ํฉ๋๋ค. 2~3์ฃผ๊ฐ ํ๋ฐํ๊ฒ ์ฌ์ฉํ๋ฉด ๋๋ถ๋ถ์ ํ์์ ์คํ์จ์ด 10% ๋ฏธ๋ง์ผ๋ก ๋จ์ด์ง๋ ๊ฒ์ ํ์ธํ๋ฉฐ, ์ด๋ ์์ด์ ํธ์ ํผ๋๋ฐฑ์ ์ฑ๊ฐ์ ๊ฒ์ด ์๋ ์ง์ ์ผ๋ก ์ ์ฉํ ๊ฒ์ผ๋ก ๋ง๋ญ๋๋ค.
MicrocosmWorks๋ ๊ทํ์ ์ ์ฅ์ ์ปค๋ฐ ๊ธฐ๋ก, ๊ธฐ์กด ์ฝ๋ ๋ฆฌ๋ทฐ ๋๊ธ, ๋ด๋ถ ์คํ์ผ ๊ฐ์ด๋ ๋ฐ ์ํคํ ์ฒ ์์ฌ๊ฒฐ์ ๊ธฐ๋ก์ ๋ง์ถฐ ์ฝ๋ ๋ฆฌ๋ทฐ ์์ด์ ํธ๋ฅผ ๋ฏธ์ธ ์กฐ์ ํ๋ฏ๋ก, ์ผ๋ฐ์ ์ธ ๋ชจ๋ฒ ์ฌ๋ก ๋์ ํ์ ํน์ ๊ด๋ก๋ฅผ ์ ์ฉํฉ๋๋ค. ์์ด์ ํธ๋ ์ ํธํ๋ ์ค๋ฅ ์ฒ๋ฆฌ ์ ๋ต, ๋๋ฉ์ธ ํน์ ๊ฐ๋ ์ ๋ํ ๋ช ๋ช ๊ท์น, ๊ทธ๋ฆฌ๊ณ ๋ชจ๋ ๊ฐ์ ์ํคํ ์ฒ ๊ฒฝ๊ณ์ ๊ฐ์ ํจํด์ ํ์ตํฉ๋๋ค. ์ค๊ฐ ๊ท๋ชจ ์ฝ๋๋ฒ ์ด์ค(10๋ง~50๋ง ๋ผ์ธ)์ ์ค์ ๋ฐ ๋ง์ถคํ๋ ์ผ๋ฐ์ ์ผ๋ก 2~3์ฃผ์ ์จ๋ณด๋ฉ ๊ธฐ๊ฐ ๋์ ์๊ฐ๋น 15~35๋ฌ๋ฌ๊ฐ ์์๋ฉ๋๋ค.
MicrocosmWorks๋ ๋ณด์ ์ํฅ, ํ๋ก๋์ ์ํฅ ๋ฒ์(blast radius), ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ ์ํ, ๊ทธ๋ฆฌ๊ณ ํต์ฌ ์ํคํ ์ฒ ํจํด๊ณผ์ ํธ์ฐจ๋ฅผ ํฌํจํ ์์๋ค์ ๊ณ ๋ คํ์ฌ ๋ฐ๊ฒฌ ์ฌํญ๋ค์ '์น๋ช ์ ์ธ ์ฐจ๋จ์'๋ถํฐ '์ ๋ณด์ฑ ์ ์'๊น์ง ์์๋ฅผ ๋งค๊ธฐ๋ ์ฌ๊ฐ๋ ๋ถ๋ฅ ๋ชจ๋ธ์ ๊ตฌํํฉ๋๋ค. SQL injection ๋ฒกํฐ ๋๋ ์ธ์ฆ ์ฐํ์ ๊ฐ์ ์ค์ํ ๋ฐ๊ฒฌ ์ฌํญ์ ๋ธ๋กํน ๋๊ธ๋ก ํ์๋๋ฉฐ, ์คํ์ผ ์ ์ ๋ฐ ์ฌ์ํ ๋ฆฌํฉํ ๋ง ๊ธฐํ๋ ๋น๋ธ๋กํน ์์ฝ์ผ๋ก ๊ทธ๋ฃนํ๋ฉ๋๋ค. ์ด๋ฌํ ์ฐ์ ์์ ์ง์ ์ ๊ฐ๋ฐ์๋ค์ด ๊ฐ์ฅ ์ค์ํ ๊ฒ์ ์ง์คํ๊ณ ๋ฎ์ ์ฐ์ ์์์ ์ก์์ ์๋ฌ๋ฆฌ์ง ์๊ณ ์์ ํ๊ฒ ๋ณํฉํ ์ ์๋๋ก ๋ณด์ฅํฉ๋๋ค.
์ ๋ฌธ๊ฐ ํ์ด ๊ทํ์ ๋น์ฆ๋์ค๋ฅผ ์ํด ์ด ์๋ฃจ์ ์ ๊ตฌ์ถํ๋ ๋ฐฉ๋ฒ์ ๋ํด ๋ฌธ์ํ์ธ์.
์ฐ๋ฝํ๊ธฐMicrocosmWorks๋ ๋ชจ๋ ํ ๋ฆฌํ์คํธ์์ 1์ฐจ ๊ฒํ ์ ์ญํ ์ ํ๋ AI ๊ธฐ๋ฐ ์ฝ๋ ๊ฒํ ์์ด์ ํธ๋ฅผ ์ ๊ณตํ์ฌ ์ ์ฒด ๋ฆฌํฌ์งํ ๋ฆฌ ์ปจํ ์คํธ์ ๋ํด ๋ณ๊ฒฝ ์ฌํญ(diffs)์ ๋ถ์ํฉ๋๋ค. ์ด ์์ด์ ํธ๋ ๋๊ท๋ชจ ์ธ์ด ๋ชจ๋ธ(large language model) ์ถ๋ก ๊ณผ ํ์ ์ ์ ์ ๋ถ์(static analysis)์ ๊ฒฐํฉํ์ฌ ๋ฒ๊ทธ, ๋ณด์ ์ทจ์ฝ์ , ์ฑ๋ฅ ์ํฐํจํด(anti-patterns) ๋ฐ ์คํ์ผ ์๋ฐ์ ์๋ณํ ๋ค์, ์คํ ๊ฐ๋ฅํ ์ค ๋จ์ ํผ๋๋ฐฑ์ PR์ ์ง์ ๊ฒ์ํฉ๋๋ค. ๊ธฐ์กด ์คํ์ผ ๊ฐ์ด๋, ๊ณผ๊ฑฐ ๊ฒํ ์๊ฒฌ ๋ฐ ์์ฉ๋ ํจํด์ ํ์ตํ์ฌ ํ๋ณ ๊ท์น์ ์ตํ๊ณ , ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ํ์ ํ์ค์ ๋ง์ถฐ ํผ๋๋ฐฑ์ ์กฐ์ ํฉ๋๋ค. ์ธ๊ฐ ๊ฒํ ์๋ ์ค์ํ ๋ฌธ์ ๊ฐ ์ด๋ฏธ ํ์๋ ์ฌ์ ๋ถ๋ฅ๋(pre-triaged) PR์ ๋ฐ์ ์ํคํ ์ฒ ๊ฒฐ์ ๋ฐ ๋น์ฆ๋์ค ๋ก์ง ๊ฒ์ฆ์ ์ง์คํ ์ ์์ต๋๋ค.
์ด ์์คํ ์ GitHub ๋๋ GitLab์ ์นํ (webhook) ์ด๋ฒคํธ์ ์ํด ํธ๋ฆฌ๊ฑฐ๋๋ ์ด๋ฒคํธ ๊ธฐ๋ฐ ํ์ดํ๋ผ์ธ์ผ๋ก ์๋ํฉ๋๋ค.
๋ค์ด์ค๋ PR ํ์ด๋ก๋(payload)๋ ๋ฆฌํฌ์งํ ๋ฆฌ ์ปจํ ์คํธ, ์ข ์์ฑ ๊ทธ๋ํ ๋ฐ ๊ณผ๊ฑฐ ๊ฒํ ๋ฐ์ดํฐ๋ก ๋ณด๊ฐ๋ ํ ๋ค๋จ๊ณ ๋ถ์ ์์ง์ผ๋ก ์ ๋ฌ๋ฉ๋๋ค. ๊ฒฐ๊ณผ๋ ํตํฉ๋๊ณ ์ค๋ณต ์ ๊ฑฐ๋๋ฉฐ ์ฌ๊ฐ๋๋ณ๋ก ์ ์๊ฐ ๋งค๊ฒจ์ง ํ ํ๋ซํผ API๋ฅผ ํตํด ์ธ๋ผ์ธ ๊ฒํ ๋๊ธ๋ก ๋ค์ ๊ฒ์๋ฉ๋๋ค.
์ ํํ ๋ถ์์ ์ ๊ณตํฉ๋๋ค.
์ดํ ๊ฒฐ๊ณผ๋ฅผ ํตํฉ ๋ณด๊ณ ์๋ก ๋ณํฉํฉ๋๋ค.
๋ฐ ๋ ธ์ด์ฆ ์๊ณ๊ฐ์ ์ค์ํฉ๋๋ค.
์๊ณ๊ฐ์ ๊ฐ์ ํ๊ณ ์๊ฐ์ด ์ง๋จ์ ๋ฐ๋ผ ๊ฐ์น๊ฐ ๋ฎ์ ๊ด์ฐฐ์ ์ต์ ํฉ๋๋ค.
| ๋ ์ด์ด | ๊ธฐ์ |
|---|---|
| ๋ฐฑ์๋ | Python 3.12, FastAPI, Celery, Redis |
| AI / ML | GPT-4o, Claude API, Tree-sitter AST parsing, CodeQL, Semgrep |
| ํ๋ก ํธ์๋ | Next.js 14, Tailwind CSS, Shadcn UI |
| ๋ฐ์ดํฐ๋ฒ ์ด์ค | PostgreSQL 16, Redis (์บ์ฑ ๋ฐ ํ) |
| ์ธํ๋ผ | AWS Lambda, Amazon SQS, Docker, Terraform, GitHub Actions |
| ๋จ๊ณ | ๊ธฐ๊ฐ | ์ฑ๊ณผ๋ฌผ |
|---|---|---|
| ๋ฐ๊ฒฌ ๋ฐ ํตํฉ ์ค์ | 1-2์ฃผ | GitHub/GitLab ์นํ ํตํฉ, ๋ฆฌํฌ์งํ ๋ฆฌ ์จ๋ณด๋ฉ ํ๋ฆ, ์ด๊ธฐ ๊ท์น ๊ตฌ์ฑ |
| ์ฝ์ด ๋ถ์ ์์ง | 3-4์ฃผ | ๋ค๋จ๊ณ ๋ถ์ ํ์ดํ๋ผ์ธ, LLM ํ๋กฌํํธ ์์ง๋์ด๋ง, SAST ๋๊ตฌ ํตํฉ |
| ํผ๋๋ฐฑ ๋ฐ ๋์๋ณด๋ | 5-6์ฃผ | ์ธ๋ผ์ธ ๋๊ธ ์ ๋ฌ, ๊ตฌ์ฑ ๋์๋ณด๋, ๋ ธ์ด์ฆ ํ๋ ์ ์ด |
| ๋ณด์ ๋ฐ ์ถ์ | 7-8์ฃผ | ํผ๋๋ฐฑ ๋ฃจํ ํตํฉ, ํ๋ณ ๋ณด์ , ํ๋ก๋์ ์ถ์ |
| ์ธก์ ํญ๋ชฉ | ๊ฐ์ ์ฌํญ | ์ธ๋ถ ์ ๋ณด |
|---|---|---|
| ์ฝ๋ ๊ฒํ ์ฒ๋ฆฌ ์๊ฐ | 70% ๋จ์ถ | PR์ด ์ฌ๋์ ๊ฒํ ๋ฅผ ๋ช ์๊ฐ ๋์ ๊ธฐ๋ค๋ฆฌ๋ ๋์ 3๋ถ ์ด๋ด์ ์ด๊ธฐ ํผ๋๋ฐฑ์ ๋ฐ์ต๋๋ค. |
| ์ทจ์ฝ์ ๊ฐ์ง์จ | 40% ์ฆ๊ฐ | AI๋ ์๋ ๊ฒํ ๋ฐ ๊ธฐ๋ณธ ๋ฆฐํ (linting)์ด ๋์น๋ ๋ณด์ ๋ฌธ์ ๋ฅผ ๊ฐ์งํฉ๋๋ค. |
| ์๋์ด ๊ฐ๋ฐ์ ์๊ฐ ํ๋ณต | ์ฃผ๋น 15-20์๊ฐ | ๊ฒํ ์๋ ์คํ ๋ฐ ๋(null) ๊ฒ์ฌ๋ฅผ ์ฐพ๋ ๋์ ์ํคํ ์ฒ์ ์ง์คํฉ๋๋ค. |
| ํ๋ก๋์ ๋ฒ๊ทธ์จ | 30% ๊ฐ์ | ํฌ๊ด์ ์ธ ๋ณํฉ ์ ๋ถ์์ผ๋ก ์ธํด ํ๋ก๋์ ์ผ๋ก ์ ์ถ๋๋ ๊ฒฐํจ์ด ์ค์ด๋ญ๋๋ค. |
| ์จ๋ณด๋ฉ ์ผ๊ด์ฑ | ํฌ๊ฒ ๊ฐ์ ๋จ | ์๋ก์ด ํ์์ ๋ชจ๋ PR์ ๋ํด ์ผ๊ด๋ ์คํ์ผ ๋ฐ ํจํด ์ง์นจ์ ๋ฐ์ต๋๋ค. |
์์ฒ ๋ช ์ ์ง์์๋ฅผ ๋ช ๋ถ ๋ง์ ๊ณต์ ํ๊ณ ์ผ๊ด๋๋ฉฐ ์ค๋ช ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ํ๊ฐํ๊ณ , ๊ทํ์ ATS์ ์ง์ ํตํฉ๋ฉ๋๋ค.