๐Ÿš€ Groq์™€ Pipelines๋ฅผ ์‚ฌ์šฉํ•ด Bitbucket์šฉ AI ๊ธฐ๋ฐ˜ ์ฝ”๋“œ ๋ฆฌ๋ทฐ์–ด ๊ตฌ์ถ•

๋ฐœํ–‰: (2025๋…„ 12์›” 9์ผ ์˜คํ›„ 09:54 GMT+9)
7 min read
์›๋ฌธ: Dev.to

Source: Dev.to

๊ฐœ์š”

ํ˜„๋Œ€ ๊ฐœ๋ฐœ ํŒ€์€ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ์œ„ํ•ด ํ’€ ๋ฆฌํ€˜์ŠคํŠธ์— ํฌ๊ฒŒ ์˜์กดํ•˜์ง€๋งŒ, ์ˆ˜๋™ ๋ฆฌ๋ทฐ๋Š” ๋А๋ฆฌ๊ณ  ์ผ๊ด€์„ฑ์ด ์—†์œผ๋ฉฐ ๋น„์šฉ์ด ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค. Bitbucket์˜ Rovoโ€ฏDev์™€ GitHub์˜ Askโ€ฏCopilot์€ AIโ€‘์ง€์› PR ๋ฆฌ๋ทฐ๋ฅผ ์ œ๊ณตํ•˜์ง€๋งŒ, ๊ฐ€๊ฒฉ ๋ชจ๋ธ(์˜ˆ: $20โ€ฏ/โ€ฏ๊ฐœ๋ฐœ์žโ€ฏ/โ€ฏ์›”)์ด ์ œ ์š”๊ตฌ์— ๋งž์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

์ด๋ฏธ Groq API ํ‚ค๊ฐ€ ์žˆ์—ˆ๊ณ  ์™„์ „ ์ž๋™ํ™”๋œ ํŒŒ์ดํ”„๋ผ์ธ ๊ธฐ๋ฐ˜ ์†”๋ฃจ์…˜์„ ์›ํ–ˆ๊ธฐ์—, ๋‹ค์Œ์„ ์ด์šฉํ•ด Bitbucket์šฉ AIโ€‘๊ตฌ๋™ PR ๋ฆฌ๋ทฐ์–ด๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค:

  • Bitbucket Pipelines
  • Groq LLM (llamaโ€‘3.3โ€‘70bโ€‘versatile)
  • Git ๊ธฐ๋ฐ˜ diff ์ถ”์ถœ (REST API ์ธ์ฆ ๋ฒˆ๊ฑฐ๋กœ์›€ ์—†์Œ)

์ด ์‹œ์Šคํ…œ์€ ๋ชจ๋“  PR์„ ์ž๋™์œผ๋กœ ๊ฒ€ํ† ํ•˜๊ณ , ๊ตฌ์กฐํ™”๋œ ์ฒดํฌ๋ฆฌ์ŠคํŠธ ๊ธฐ๋ฐ˜ AI ๋ฆฌ๋ทฐ๋ฅผ ์ถœ๋ ฅํ•˜๋ฉฐ ๊ฐœ๋ฐœ์ž๋‹น ๋ผ์ด์„ ์Šค ๋น„์šฉ์ด ์ „ํ˜€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ธฐ์กด ์†”๋ฃจ์…˜๊ณผ์˜ ๋น„๊ต

๊ธฐ๋ŠฅRovoโ€ฏDev (Bitbucket)Askโ€ฏCopilot (GitHub)Groqโ€‘๊ธฐ๋ฐ˜ ์‹œ์Šคํ…œ
AI PR ๋ฆฌ๋ทฐโœ…โœ…โœ…
CI์—์„œ ์™„์ „ ์ž๋™ํ™”โŒ (๋Œ€๋ถ€๋ถ„ UI ๊ธฐ๋ฐ˜)โŒ (์ˆ˜๋™ ํ”„๋กฌํ”„ํŠธ)โœ…
๊ฐœ๋ฐœ์ž๋‹น ๋น„์šฉโŒ $20โ€ฏ/โ€ฏ์›”โ€ฏ/โ€ฏ๊ฐœ๋ฐœ์žโŒ Copilot ํฌํ•จโœ… $0โ€ฏ/โ€ฏ๊ฐœ๋ฐœ์ž
Pipelines์—์„œ ๋™์ž‘โŒโŒโœ…
๋งž์ถคํ˜• ๋ฆฌ๋ทฐ ๊ทœ์น™โŒ ์ œํ•œ์ โŒ ์ œํ•œ์ โœ… ์™„์ „ ์ œ์–ด
๋ฒค๋” ๋ฝ์ธโœ…โœ…โŒ ์—†์Œ (Groqโ€ฏ+โ€ฏGit)

๋™๊ธฐ์™€ ๋ชฉํ‘œ

์›ํ•˜์ง€ ์•Š์•˜๋˜ ๊ฒƒ:

  • ๋˜ ๋‹ค๋ฅธ ์ขŒ์„๋‹น SaaS ๊ตฌ๋…
  • ์ˆ˜๋™ โ€œAskโ€ฏAIโ€ ์›Œํฌํ”Œ๋กœ์šฐ
  • ๊ฐ€๊ฒฉ ๋ณ€๋™ ์‹œ ๊นจ์ง€๋Š” ์‹œ์Šคํ…œ

์›ํ–ˆ๋˜ ๊ฒƒ:

  • CI ์ˆ˜์ค€์˜ ๊ฐ•์ œ ์ ์šฉ
  • ๋งž์ถคํ˜• ๋ฆฌ๋ทฐ ๊ทœ์น™
  • ๊ฐ€๋Šฅํ•œ ๊ฐ€์žฅ ๋‚ฎ์€ ๋น„์šฉ

๊ทธ๋ž˜์„œ Groqโ€ฏ+โ€ฏPipelines๋ฅผ ์„ ํƒํ–ˆ์Šต๋‹ˆ๋‹ค.

์ดˆ๊ธฐ ์ ‘๊ทผ ๋ฐฉ์‹ (Bitbucket REST API)

์ฒซ ๋ฒˆ์งธ ์‹œ๋„๋Š” ์ผ๋ฐ˜์ ์ธ ํŒจํ„ด์„ ๋”ฐ๋ž์Šต๋‹ˆ๋‹ค:

  1. Bitbucket REST API๋ฅผ ํ†ตํ•ด PR diff ๊ฐ€์ ธ์˜ค๊ธฐ
  2. ๋‹ค์Œ ํ† ํฐ ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•ด PR ์ฝ”๋ฉ˜ํŠธ ๊ฒŒ์‹œ:
    • Atlassian API ํ† ํฐ
    • ์›Œํฌ์ŠคํŽ˜์ด์Šค ํ† ํฐ
    • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์•ก์„ธ์Šค ํ† ํฐ

์˜ฌ๋ฐ”๋ฅธ ์Šค์ฝ”ํ”„๋ฅผ ์ง€์ •ํ–ˆ์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , 401โ€ฏUnauthorized ์˜ค๋ฅ˜๊ฐ€ ๋ฐ˜๋ณต์ ์œผ๋กœ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค. ์›์ธ:

  • ํ† ํฐ ๋™์ž‘์˜ ์ผ๊ด€์„ฑ ๋ถ€์กฑ
  • Bitbucket ๋ณด์•ˆ ๋ชจ๋ธ์˜ ์ง€์†์ ์ธ ๋ณ€ํ™”
  • 2025๋…„ ํ† ํฐ ๋™์ž‘์— ๋Œ€ํ•œ ๋ฌธ์„œ ๋ถ€์กฑ

๊ด‘๋ฒ”์œ„ํ•œ ๋””๋ฒ„๊น… ๋์— diff ์ˆ˜์ง‘์„ ์œ„ํ•ด Bitbucket REST API๋ฅผ ์™„์ „ํžˆ ๋ฐฐ์ œํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ํ˜„๋ช…ํ•œ ์„ ํƒ์ด๋ผ๋Š” ๊ฒฐ๋ก ์— ๋„๋‹ฌํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ์•„ํ‚คํ…์ฒ˜

ํ’€ ๋ฆฌํ€˜์ŠคํŠธ ์ƒ์„ฑ

  • diff๋ฅผ ์œ„ํ•œ REST API ํ˜ธ์ถœ ์—†์Œ
  • ์ธ์ฆ ์‹คํŒจ ์—†์Œ
  • ๊ถŒํ•œ ๋ฌธ์ œ ์—†์Œ
  • ์™„์ „ํžˆ ๊ฒฐ์ •์ ์ด๋ฉฐ ํ”Œ๋ ˆ์ดํฌ ํ”„๋ฆฌ

Diff ์ถ”์ถœ

Bitbucket ์—”๋“œํฌ์ธํŠธ๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ๋Œ€์‹ , ํŒŒ์ดํ”„๋ผ์ธ์—์„œ Git ๋ช…๋ น๋งŒ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค:

# Get the diff for the current PR
git fetch origin main
git diff origin/main...HEAD
  • ์ •ํ™•ํ•œ PR diff ์ œ๊ณต
  • API ์ธ์ฆ ํ•„์š” ์—†์Œ
  • ๋ชจ๋“  CI ํ™˜๊ฒฝ์—์„œ ๋™์ž‘

์ด ํ•œ ๊ฐ€์ง€ ๊ฒฐ์ •์œผ๋กœ **โ‰ˆโ€ฏ90โ€ฏ%**์˜ ์‹œ์Šคํ…œ ๋ณต์žก์„ฑ์ด ์‚ฌ๋ผ์กŒ์Šต๋‹ˆ๋‹ค.

AI ๋ฆฌ๋ทฐ ์ฒดํฌ๋ฆฌ์ŠคํŠธ (TypeScriptโ€ฏ+โ€ฏAngular)

์ฒดํฌ๋ฆฌ์ŠคํŠธ ํ•ญ๋ชฉ์ƒํƒœ
any ํƒ€์ž… ์‚ฌ์šฉ ๊ธˆ์ง€โœ…
์ธํ„ฐํŽ˜์ด์Šคยท์ œ๋„ค๋ฆญ์„ ํ™œ์šฉํ•œ ๊ฐ•ํ•œ ํƒ€์ž… ์ง€์ •โœ…
์ตœ์‹  Angular ๋ฌธ๋ฒ• (@if, @for, ๋…๋ฆฝํ˜• ์ปดํฌ๋„ŒํŠธ)โœ…
์ธ์ฆ ๊ฐ€๋“œ ๊ตฌํ˜„โœ…
ํ•˜๋“œ์ฝ”๋”ฉ๋œ ๋น„๋ฐ€ ์ •๋ณด ์—†์Œโœ…
์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ ๊ตฌํ˜„โœ…
ํ…Œ์ŠคํŠธ ์กด์žฌโœ…
์„ฑ๋Šฅ ์ฒดํฌ ๊ตฌํ˜„โœ…
์ ‘๊ทผ์„ฑ (WCAG) ์ค€์ˆ˜โœ…
์ตœ์ข… ํŒ์ • (MERGE READY / NEEDS WORK)โœ…

์ด ์ฒดํฌ๋ฆฌ์ŠคํŠธ๋Š” ์ผ๊ด€๋œ ๋ฆฌ๋ทฐ, ํ‘œ์ค€ ๊ฐ•์ œ ์ ์šฉ, ๋ฆฌ๋ทฐ์–ด ํŽธํ–ฅ ์ œ๋กœ๋ฅผ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

Groq LLM ํ†ตํ•ฉ

์™œ Groq์ธ๊ฐ€?

  • ํฐ diff์—์„œ๋„ ๋›ฐ์–ด๋‚œ ์ถ”๋ก  ๋Šฅ๋ ฅ
  • ๋งŽ์€ ๋Œ€์•ˆ๋ณด๋‹ค ๋น„์šฉ ํšจ์œจ์ 
  • OpenAI ํ˜ธํ™˜ API
  • ์นœํ™˜๊ฒฝ์  (์š”์ฒญ๋‹น ๋‚ฎ์€ ์—ฐ์‚ฐ ์‹œ๊ฐ„)

AI๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„ ํ”ผ๋“œ๋ฐฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค:

  • ๐Ÿšจ ์น˜๋ช…์  ์ด์Šˆ
  • ๐Ÿ”’ ๋ณด์•ˆ ๋ถ„์„
  • โšก ์„ฑ๋Šฅ ๋ฆฌ๋ทฐ
  • ๐Ÿ—๏ธ ์•„ํ‚คํ…์ฒ˜ ํ”ผ๋“œ๋ฐฑ
  • ๐Ÿ“ ์œ ์ง€๋ณด์ˆ˜์„ฑ
  • โœ… ์ตœ์ข… ํŒ์ • (MERGE READY / NEEDSโ€ฏWORK)

AI ๋ฆฌ๋ทฐ ํ‘œ์‹œ ์œ„์น˜

  • ์ „์ฒด AI ๋ฆฌ๋ทฐ๋Š” Pipelines ๋กœ๊ทธ์— ์ถœ๋ ฅ
  • ์„ ํƒ์ ์œผ๋กœ ๋‹ค์šด๋กœ๋“œ ๊ฐ€๋Šฅํ•œ ai-review.md ์•„ํ‹ฐํŒฉํŠธ๋กœ ์ €์žฅ ๊ฐ€๋Šฅ
  • PR ์“ฐ๊ธฐ ๊ถŒํ•œ์ด ํ•„์š” ์—†์œผ๋ฏ€๋กœ ๋ณด์•ˆ ์œ„ํ—˜ ์—†์Œ

์ด ์ ‘๊ทผ ๋ฐฉ์‹์€ PR์— ์ž๋™์œผ๋กœ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ๋‹ค๋Š” ๋ฐฉ์‹๋ณด๋‹ค ๊ธฐ์—… ํ™˜๊ฒฝ์— ํ›จ์”ฌ ์ ํ•ฉํ–ˆ์Šต๋‹ˆ๋‹ค.

ํ”„๋กœ๋•์…˜ ์˜ํ–ฅ

  • ๋ชจ๋“  PR์ด ๋ช‡ ๋ถ„ ์•ˆ์— ์ž๋™์œผ๋กœ ๋ฆฌ๋ทฐ๋จ
  • ๋ฆฌ๋ทฐ ํ‘œ์ค€์ด ์ผ๊ด€๋˜๊ฒŒ ์ ์šฉ
  • ์ธ๊ฐ„ ๋ฆฌ๋ทฐ์–ด๋Š” ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์— ์ง‘์ค‘ ๊ฐ€๋Šฅ
  • ์ธ์ฆ ๋ฌธ์ œ๋กœ ์ธํ•œ ํŒŒ์ดํ”„๋ผ์ธ ์‹คํŒจ ์—†์Œ
  • ์žฌ์‹œ๋„๋กœ ์ธํ•œ ๋นŒ๋“œ ์‹œ๊ฐ„ ๋‚ญ๋น„ ์—†์Œ
  • ๊ฐœ๋ฐœ์ž๋‹น ๋ผ์ด์„ ์Šค ๋น„์šฉ ์ œ๋กœ

์ฃผ์š” ์—”์ง€๋‹ˆ์–ด๋ง ๊ตํ›ˆ

  • AI ๋ฆฌ๋ทฐ์–ด๋Š” ๋ณด์กฐ ์—ญํ• ์„ ํ•ด์•ผ ํ•˜๋ฉฐ, ๊ฐœ๋ฐœ์ž๋ฅผ ์ฐจ๋‹จํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค
  • PR ์ฝ”๋ฉ˜ํŠธ๋Š” ์„ ํƒ ์‚ฌํ•ญ์ด๋ฉฐ, ๋ฆฌ๋ทฐ๋Š” ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•œ๋‹ค
  • Pipelinesโ€ฏ+โ€ฏGitโ€ฏ+โ€ฏLLM ์กฐํ•ฉ์€ ๋งค์šฐ ๊ฐ•๋ ฅํ•˜๋‹ค
  • Groq๋Š” CI/CD AI ์›Œํฌ๋กœ๋“œ์— ์ตœ์ ํ™”๋ผ ์žˆ๋‹ค
  • ์ข‹์€ AI ๋ฆฌ๋ทฐ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด $20โ€ฏ/โ€ฏ๊ฐœ๋ฐœ์žโ€ฏ/โ€ฏ์›” ๋ผ์ด์„ ์Šค๋ฅผ ๊ตฌ๋งคํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค

์•ž์œผ๋กœ์˜ ๊ณ„ํš

  • ํŒ์ •์ด NEEDSโ€ฏWORK์ผ ๊ฒฝ์šฐ ์ž๋™์œผ๋กœ ๋จธ์ง€ ์ฐจ๋‹จ
  • ์–ธ์–ด๋ณ„ ๋ฆฌ๋ทฐ์–ด ์ถ”๊ฐ€ (์˜ˆ: .NET, SQL)
  • ๋ณด์•ˆ ์ „์šฉ ๋ฆฌ๋ทฐ ๋ชจ๋“œ
  • ์•„ํ‚คํ…์ฒ˜ ๋“œ๋ฆฌํ”„ํŠธ ํƒ์ง€

๋งˆ๋ฌด๋ฆฌ ์ƒ๊ฐ

Git์„ ์ด์šฉํ•ด diff๋ฅผ ์ถ”์ถœํ•˜๊ณ , Groq๋กœ AI ๋ถ„์„์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ, Pipelines๋กœ ์ž๋™ํ™”ํ•˜์„ธ์š”. ๊ฐ€๋Šฅํ•œ ํ•œ REST API ์ธ์ฆ์€ ํ”ผํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

Back to Blog

๊ด€๋ จ ๊ธ€

๋” ๋ณด๊ธฐ ยป

์šฐ๋ฆฌ ์‚ฌ์ดํŠธ๊ฐ€ ์‹ฑ๊ฐ€ํฌ๋ฅด์—์„œ๋Š” ๋А๋ฆฌ๊ณ  ์œ ๋Ÿฝ์—์„œ๋Š” ์™„๋ฒฝํ–ˆ๋Š”๋ฐ, ๊ทธ ์ด์œ ๋Š”.

๋ฌธ์ œ: ์šฐ๋ฆฌ๋Š” ๋ชจ๋“  ๊ฒƒ์„ ์ œ๋Œ€๋กœ ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ์Šต๋‹ˆ๋‹ค. ์šฐ๋ฆฌ์˜ API๋Š” Cloudflare ๋’ค์— ์œ„์น˜ํ•˜๊ณ  ์—ฃ์ง€ ์บ์‹ฑ์„ ์‚ฌ์šฉํ–ˆ์œผ๋ฉฐ, ๋Œ€์‹œ๋ณด๋“œ์—์„œ๋Š” p95 ์‘๋‹ต ์‹œ๊ฐ„์ด 100 ms ๋ฏธ๋งŒ์ž„์„ ๋ณด์—ฌ์ฃผ์—ˆ์Šต๋‹ˆ๋‹ค. Af...

๋‚˜๋Š” Game Boy๋ฅผ ChatGPT ์•ˆ์— ๋„ฃ์—ˆ๋‹ค (ChatGPT Apps)

์†Œ๊ฐœ: ChatGPT ์•ฑ์€ ์•„์ง BETA ๋‹จ๊ณ„์ด์ง€๋งŒ, ์–ด์ œ๋ถ€ํ„ฐ ๋ชจ๋“  ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์‹ ์˜ ์•ฑ์„ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ œ์ถœํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์ €๋Š” Game Boy ์•ˆ์— ๋งž์ถ”์–ด ๋ณด๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

spaceorbust โ€“ GitHub ์ปค๋ฐ‹์œผ๋กœ ์šฐ์ฃผ ๋ฌธ๋ช…์„ ์›€์ง์ด๋Š” ํ„ฐ๋ฏธ๋„ RPG

๊ฐœ์š”: ์‹ค์ œ GitHub ํ™œ๋™์ด ์ธ๋ฅ˜์˜ ์šฐ์ฃผ ์ง„์ถœ์„ ์ด‰์ง„ํ•˜๋Š” ํ„ฐ๋ฏธ๋„ RPG. - ์ปค๋ฐ‹์€ ์—๋„ˆ์ง€๋กœ ๋ณ€ํ™˜๋œ๋‹ค - ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋Š” ์žฌ๋ฃŒ๊ฐ€ ๋œ๋‹ค - ์ด์Šˆโ€ฆ