๐Ÿ› ๏ธAI ๋„๊ตฌ2026-06-16

๋‰ด์Šค - ์›๋ฌธ ๊ธฐ๋ฐ˜ ์š”์•ฝ ํ•„์š”

๐Ÿ’ก ํ•œ์ค„ ์š”์•ฝ|๋‰ด์Šค - ์›๋ฌธ ๊ธฐ๋ฐ˜ ์š”์•ฝ ํ•„์š”


title: "API ํ‚ค ์—†์ด ๋กœ์ปฌ AI๋กœ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ž๋™ ์ƒ์„ฑ" description: "๋‰ด์Šค - ์›๋ฌธ ๊ธฐ๋ฐ˜ ์š”์•ฝ ํ•„์š”" date: 2026-06-16 tags: [ai-tool] source: "https://dev.to/bhargavirengarajan21/git-commit-at-generate-conventional-commit-messages-locally-with-ai-no-api-key-needed-1nc4" sidebar: order: 0

์ œ๋ชฉ(ํ•œ๊ธ€): API ํ‚ค ์—†์ด ๋กœ์ปฌ AI๋กœ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ž๋™ ์ƒ์„ฑ ์›๋ฌธ ์ œ๋ชฉ(์˜๋ฌธ): git-commit-at: Generate conventional commit messages locally with AI (no API key needed) ์›๋ฌธ: git-commit-at: Generate conventional commit messages locally with AI (no API key needed) ์†Œ์Šค: dev-to-ai MD ํŒŒ์ผ: content/2026-06-16/dev-to-ai-git-commit-at-generate-conventional-commit-message.md

ํ•ต์‹ฌ ๋‚ด์šฉ

์ฝ”๋“œ diff๋ฅผ ํด๋ผ์šฐ๋“œ์— ์˜ฌ๋ฆฌ์ง€ ์•Š๊ณ  ๋กœ์ปฌ AI๋กœ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€๋ฅผ ์ž๋™ ์ƒ์„ฑํ•ด์ฃผ๋Š” CLI ๋„๊ตฌ git-commit-at์ด ๊ณต๊ฐœ๋์–ด์š”.

npm install -g git-commit-at ํ•œ ์ค„๋กœ ์„ค์น˜ํ•˜๋ฉด, staged diff๋ฅผ ๋ถ„์„ํ•ด์„œ conventional commit ํ˜•์‹ ๋ฉ”์‹œ์ง€ 3๊ฐœ๋ฅผ ์ œ์•ˆํ•ด์ค˜์š”. Docker๋กœ qwen2.5-coder:1.5b ๋ชจ๋ธ(์•ฝ 1GB)์„ ๋กœ์ปฌ์—์„œ ๋Œ๋ฆฌ๋Š” ๋ฐฉ์‹์ด๋ผ API ํ‚ค๋„, ํด๋ผ์šฐ๋“œ ์ „์†ก๋„ ์—†๊ฑฐ๋“ ์š”.

JIRAยทLinear ํ‹ฐ์ผ“ ๋ฒˆํ˜ธ ์ž๋™ prefix, ๋ธŒ๋žœ์น˜ ์‹œ๊ฐํ™”, ์ปค๋ฐ‹ ํžˆ์Šคํ† ๋ฆฌ ์ถ”์  ๊ธฐ๋Šฅ๋„ ํฌํ•จ๋ผ ์žˆ์–ด์š”. ์ฒซ ๋ชจ๋ธ ๋‹ค์šด๋กœ๋“œ ์ดํ›„์—” ์ œ์•ˆ๊นŒ์ง€ 5~10์ดˆ๋ฉด ์ถฉ๋ถ„ํ•˜๊ณ ์š”.

๋ฏผ๊ฐํ•œ ์ฝ”๋“œ๋ฒ ์ด์Šค๋‚˜ ๋น„๊ณต๊ฐœ ๋ ˆํฌ์—์„œ AI ์ปค๋ฐ‹ ๋„๊ตฌ๋ฅผ ๋ชป ์“ฐ๋˜ ๋ถ„๋“คํ•œํ…Œ ํ˜„์‹ค์ ์ธ ๋Œ€์•ˆ์ด ์ƒ๊ธด ๊ฑฐ์˜ˆ์š”.

์žก๋Œ์Œค์˜ ํ•œ๋งˆ๋””

API ํ‚ค๋„ ํด๋ผ์šฐ๋“œ ์ „์†ก๋„ ์—†์–ด์„œ ๋ฏผ๊ฐํ•œ ๋น„๊ณต๊ฐœ ๋ ˆํฌ์—์„œ๋„ AI ์ปค๋ฐ‹ ๋„๊ตฌ๋ฅผ ์ฒ˜์Œ์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์“ธ ์ˆ˜ ์žˆ๊ฒŒ ๋์–ด์š”.


์ถœ์ฒ˜: git-commit-at: Generate conventional commit messages locally with AI (no API key needed)

์ด ๊ธ€์ด ์–ด๋• ๋‚˜์š”?

๊ด€๋ จ ๊ธ€

๐Ÿค–๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ๐Ÿ› ๏ธAI ๋„๊ตฌ๐Ÿ“ˆ์„ฑ๊ณต์‚ฌ๋ก€

AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์˜ ์„ฑ๊ณผ๋Š” โ€œ๋” ๊ธธ๊ฒŒ ์‹œํ‚ค๊ธฐโ€๋ณด๋‹ค ํ”„๋กœ์ ํŠธ ๋งฅ๋ฝ์„ ์ •๋ฆฌํ•˜๊ณ , ์ผ์„ ์ž‘๊ฒŒ ๋‚˜๋ˆ„๊ณ , ๋งค ๋‹จ๊ณ„์˜ ๊ฒ€์ฆ๊ณผ ๋˜๋Œ๋ฆผ์„ ์ •ํ•˜๋Š” ๋ฐ์„œ ๊ฐˆ๋ฆฝ๋‹ˆ๋‹ค

AI ์ฝ”๋”ฉ ์—์ด์ „ํŠธ์˜ ์„ฑ๊ณผ๋Š” โ€œ๋” ๊ธธ๊ฒŒ ์‹œํ‚ค๊ธฐโ€๋ณด๋‹ค ํ”„๋กœ์ ํŠธ ๋งฅ๋ฝ์„ ์ •๋ฆฌํ•˜๊ณ , ์ผ์„ ์ž‘๊ฒŒ ๋‚˜๋ˆ„๊ณ , ๋งค ๋‹จ๊ณ„์˜ ๊ฒ€์ฆ๊ณผ ๋˜๋Œ๋ฆผ์„ ์ •ํ•˜๋Š” ๋ฐ์„œ ๊ฐˆ๋ฆฝ๋‹ˆ๋‹ค. ํ˜ผ์ž ๋งŒ๋“œ๋Š” MVP๋ผ๋ฉด ์ด ๋‹ค์„ฏ ๋‹จ๊ณ„๋งŒ์œผ๋กœ๋„ ์‹คํŒจ ๋น„์šฉ์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ์–ด์š”.

์—๋””ํ„ฐ MAX8๋ถ„ ์†Œ์š”
๐Ÿ“ˆ์„ฑ๊ณต์‚ฌ๋ก€๐Ÿค–๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ๐Ÿ› ๏ธAI ๋„๊ตฌ

Anthropic์˜ ๋‚ด๋ถ€ ํŒ€ ์‚ฌ๋ก€๋Š” AI ์ฝ”๋”ฉ ๋„๊ตฌ๊ฐ€ ์‚ฌ๋žŒ์„ ํ†ต์งธ๋กœ ๋Œ€์ฒดํ•œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค

Anthropic์˜ ๋‚ด๋ถ€ ํŒ€ ์‚ฌ๋ก€๋Š” AI ์ฝ”๋”ฉ ๋„๊ตฌ๊ฐ€ ์‚ฌ๋žŒ์„ ํ†ต์งธ๋กœ ๋Œ€์ฒดํ•œ๋‹ค๋Š” ์ด์•ผ๊ธฐ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ๋ฌธ์„œยทํ…Œ์ŠคํŠธยท์ฒดํฌํฌ์ธํŠธ๋ฅผ ๊ฐ–์ถ˜ ํŒ€์ด ๋ฐ˜๋ณต ์ž‘์—…์„ ๋” ๋นจ๋ฆฌ ์ฒ˜๋ฆฌํ•˜๊ณ , ๋น„๊ฐœ๋ฐœ์ž๋„ ์ž‘์€ ๋ณ€๊ฒฝ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ์›Œํฌํ”Œ๋กœ์šฐ์˜ ์‚ฌ๋ก€์— ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.

์—๋””ํ„ฐ MAX7๋ถ„ ์†Œ์š”
๐Ÿ› ๏ธAI ๋„๊ตฌ๐Ÿค–๋ฐ”์ด๋ธŒ์ฝ”๋”ฉ๐Ÿ“ˆ์„ฑ๊ณต์‚ฌ๋ก€

AI๋กœ ๊ธฐ์ˆ  ๋ฌธ์„œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋Š” ์žˆ์–ด๋„, ์ •ํ™•ํ•œ ๋ฌธ์„œ๊ฐ€ ์ €์ ˆ๋กœ ๋‚˜์˜ค์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค

AI๋กœ ๊ธฐ์ˆ  ๋ฌธ์„œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋งŒ๋“ค ์ˆ˜๋Š” ์žˆ์–ด๋„, ์ •ํ™•ํ•œ ๋ฌธ์„œ๊ฐ€ ์ €์ ˆ๋กœ ๋‚˜์˜ค์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. Google Cloud์˜ ๋ฌธ์„œ ์ œ์ž‘ ์‚ฌ๋ก€์ฒ˜๋Ÿผ ์›๋ฌธ ๊ทผ๊ฑฐยท๋ณ„๋„ ํ‰๊ฐ€ยท์‹คํ–‰ ๊ฒ€์ฆ์„ ๋ถ„๋ฆฌํ•˜๋ฉด, ์ฝ˜ํ…์ธ  ์ž๋™ํ™”๋„ โ€˜๋งŽ์ด ์“ฐ๊ธฐโ€™๊ฐ€ ์•„๋‹ˆ๋ผ โ€˜ํ‹€๋ฆฌ์ง€ ์•Š๊ฒŒ ๊ณ ์น˜๊ธฐโ€™๋กœ ๋ฐ”๊ฟ€ ์ˆ˜ ์žˆ์–ด์š”.

์—๋””ํ„ฐ MAX8๋ถ„ ์†Œ์š”