SpyBara
Go Premium

code-review.md 2026-06-16 21:57 UTC to 2026-06-17 17:02 UTC

66 added, 24 removed.

2026
Thu 18 02:02 Wed 17 17:02 Tue 16 21:57 Mon 15 23:02 Sat 13 21:59 Fri 12 22:00 Thu 11 23:01 Wed 10 23:57 Tue 9 06:34 Mon 8 06:52 Sat 6 06:24 Fri 5 06:45 Thu 4 06:52 Wed 3 06:53 Tue 2 06:51

Code Review

๋‹ค์ค‘ ์—์ด์ „ํŠธ ๋ถ„์„์„ ํ†ตํ•ด ์ „์ฒด ์ฝ”๋“œ๋ฒ ์ด์Šค๋ฅผ ๊ฒ€ํ† ํ•˜์—ฌ ๋…ผ๋ฆฌ ์˜ค๋ฅ˜, ๋ณด์•ˆ ์ทจ์•ฝ์  ๋ฐ ํšŒ๊ท€๋ฅผ ๊ฐ์ง€ํ•˜๋Š” ์ž๋™ํ™”๋œ PR ๊ฒ€ํ† ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค

Code Review๋Š” GitHub ํ’€ ์š”์ฒญ์„ ๋ถ„์„ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•œ ์ฝ”๋“œ ๋ผ์ธ์— ์ธ๋ผ์ธ ๋Œ“๊ธ€๋กœ ๊ฒฐ๊ณผ๋ฅผ ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. ์ „๋ฌธํ™”๋œ ์—์ด์ „ํŠธ ์ง‘ํ•ฉ์ด ์ „์ฒด ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๋งฅ๋ฝ์—์„œ ์ฝ”๋“œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๊ฒ€ํ† ํ•˜์—ฌ ๋…ผ๋ฆฌ ์˜ค๋ฅ˜, ๋ณด์•ˆ ์ทจ์•ฝ์ , ์†์ƒ๋œ ์—ฃ์ง€ ์ผ€์ด์Šค ๋ฐ ๋ฏธ๋ฌ˜ํ•œ ํšŒ๊ท€๋ฅผ ์ฐพ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ๋Š” ์‹ฌ๊ฐ๋„๋ณ„๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋˜๋ฉฐ PR์„ ์Šน์ธํ•˜๊ฑฐ๋‚˜ ์ฐจ๋‹จํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ๊ธฐ์กด ๊ฒ€ํ†  ์›Œํฌํ”Œ๋กœ์šฐ๋Š” ๊ทธ๋Œ€๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— CLAUDE.md ๋˜๋Š” REVIEW.md ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์—ฌ Claude๊ฐ€ ํ”Œ๋ž˜๊ทธํ•˜๋Š” ํ•ญ๋ชฉ์„ ์กฐ์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ด€๋ฆฌ๋˜๋Š” ์„œ๋น„์Šค ๋Œ€์‹  ์ž์‹ ์˜ CI ์ธํ”„๋ผ์—์„œ Claude๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด GitHub Actions ๋˜๋Š” GitLab CI/CD๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ž์ฒด ํ˜ธ์ŠคํŒ… GitHub ์ธ์Šคํ„ด์Šค์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ฒฝ์šฐ GitHub Enterprise Server๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ด ํŽ˜์ด์ง€์—์„œ ๋‹ค๋ฃจ๋Š” ๋‚ด์šฉ:

๊ฒ€ํ†  ์ž‘๋™ ๋ฐฉ์‹

๊ด€๋ฆฌ์ž๊ฐ€ ์กฐ์ง์— ๋Œ€ํ•ด Code Review๋ฅผ ํ™œ์„ฑํ™”ํ•˜๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ตฌ์„ฑ๋œ ๋™์ž‘์— ๋”ฐ๋ผ PR์ด ์—ด๋ฆด ๋•Œ, ๋ชจ๋“  ํ‘ธ์‹œ ์‹œ ๋˜๋Š” ์ˆ˜๋™์œผ๋กœ ์š”์ฒญํ•  ๋•Œ ๊ฒ€ํ† ๊ฐ€ ํŠธ๋ฆฌ๊ฑฐ๋ฉ๋‹ˆ๋‹ค. PR์—์„œ @claude review๋ฅผ ๋Œ“๊ธ€๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋ชจ๋“  ๋ชจ๋“œ์—์„œ ๊ฒ€ํ† ๊ฐ€ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

๊ฒ€ํ† ๊ฐ€ ์‹คํ–‰๋˜๋ฉด ์—ฌ๋Ÿฌ ์—์ด์ „ํŠธ๊ฐ€ Anthropic ์ธํ”„๋ผ์—์„œ ๋ณ‘๋ ฌ๋กœ diff ๋ฐ ์ฃผ๋ณ€ ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•ฉ๋‹ˆ๋‹ค. ๊ฐ ์—์ด์ „ํŠธ๋Š” ๋‹ค๋ฅธ ํด๋ž˜์Šค์˜ ๋ฌธ์ œ๋ฅผ ์ฐพ๊ณ , ๊ฒ€์ฆ ๋‹จ๊ณ„์—์„œ ํ›„๋ณด๋ฅผ ์‹ค์ œ ์ฝ”๋“œ ๋™์ž‘๊ณผ ๋น„๊ตํ•˜์—ฌ ๊ฑฐ์ง“ ์–‘์„ฑ์„ ํ•„ํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ์ค‘๋ณต ์ œ๊ฑฐ๋˜๊ณ  ์‹ฌ๊ฐ๋„๋ณ„๋กœ ์ˆœ์œ„๊ฐ€ ์ง€์ •๋˜๋ฉฐ ๋ฌธ์ œ๊ฐ€ ๋ฐœ๊ฒฌ๋œ ํŠน์ • ๋ผ์ธ์— ์ธ๋ผ์ธ ๋Œ“๊ธ€๋กœ ๊ฒŒ์‹œ๋ฉ๋‹ˆ๋‹ค. ๋ฌธ์ œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์ง€ ์•Š์œผ๋ฉด Code Review๋Š” GitHub ํ™•์ธ ์‹คํ–‰์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ๊ฐ์ง€๋˜์ง€ ์•Š์•˜์Œ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. Claude๋Š” ๋˜ํ•œ PR์— ์งง์€ ํ™•์ธ ๋Œ“๊ธ€์„ ๊ฒŒ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์‹ฌ๊ฐ๋„ ์ˆ˜์ค€

๊ฐ ๊ฒฐ๊ณผ๋Š” ์‹ฌ๊ฐ๋„ ์ˆ˜์ค€์œผ๋กœ ํƒœ๊ทธ๊ฐ€ ์ง€์ •๋ฉ๋‹ˆ๋‹ค:

๋งˆ์ปค ์‹ฌ๊ฐ๋„ ์˜๋ฏธ
๐Ÿ”ด Important ๋ณ‘ํ•ฉ ์ „์— ์ˆ˜์ •ํ•ด์•ผ ํ•˜๋Š” ๋ฒ„๊ทธ
๐ŸŸก Nit ๊ฒฝ๋ฏธํ•œ ๋ฌธ์ œ, ์ˆ˜์ •ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ์ง€๋งŒ ์ฐจ๋‹จํ•˜์ง€๋Š” ์•Š์Œ
๐ŸŸฃ Pre-existing ์ฝ”๋“œ๋ฒ ์ด์Šค์— ์กด์žฌํ•˜์ง€๋งŒ ์ด PR์—์„œ ๋„์ž…๋˜์ง€ ์•Š์€ ๋ฒ„๊ทธ

๊ฒฐ๊ณผ์—๋Š” ํ™•์žฅ ๊ฐ€๋Šฅํ•œ ํ™•์žฅ ์ถ”๋ก  ์„น์…˜์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ Claude๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ”Œ๋ž˜๊ทธํ•œ ์ด์œ ์™€ ๋ฌธ์ œ๋ฅผ ๊ฒ€์ฆํ•œ ๋ฐฉ๋ฒ•์„ ์ดํ•ดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ํ‰๊ฐ€ ๋ฐ ์‘๋‹ต

Claude์˜ ๊ฐ ๊ฒ€ํ†  ๋Œ“๊ธ€์€ ์ด๋ฏธ ๐Ÿ‘ ๋ฐ ๐Ÿ‘Ž๊ฐ€ ์ฒจ๋ถ€๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ๋‘ ๋ฒ„ํŠผ ๋ชจ๋‘ GitHub UI์— ๋‚˜ํƒ€๋‚˜ ํ•œ ๋ฒˆ์˜ ํด๋ฆญ์œผ๋กœ ํ‰๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๊ฐ€ ์œ ์šฉํ–ˆ์œผ๋ฉด ๐Ÿ‘์„ ํด๋ฆญํ•˜๊ณ  ์ž˜๋ชป๋˜์—ˆ๊ฑฐ๋‚˜ ๋…ธ์ด์ฆˆ๊ฐ€ ๋งŽ์œผ๋ฉด ๐Ÿ‘Ž๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. Anthropic์€ PR์ด ๋ณ‘ํ•ฉ๋œ ํ›„ ๋ฐ˜์‘ ๊ฐœ์ˆ˜๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€ํ† ์ž๋ฅผ ์กฐ์ •ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜์‘์€ ์žฌ๊ฒ€ํ† ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๊ฑฐ๋‚˜ PR์˜ ์–ด๋–ค ๊ฒƒ๋„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ธ๋ผ์ธ ๋Œ“๊ธ€์— ์‘๋‹ตํ•ด๋„ Claude๊ฐ€ ์‘๋‹ตํ•˜๊ฑฐ๋‚˜ PR์„ ์—…๋ฐ์ดํŠธํ•˜๋„๋ก ํ”„๋กฌํ”„ํŠธํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด ์กฐ์น˜ํ•˜๋ ค๋ฉด ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ํ‘ธ์‹œํ•ฉ๋‹ˆ๋‹ค. PR์ด ํ‘ธ์‹œ ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€ํ† ์— ๊ตฌ๋…๋˜์–ด ์žˆ์œผ๋ฉด ๋‹ค์Œ ์‹คํ–‰์ด ๋ฌธ์ œ๊ฐ€ ์ˆ˜์ •๋˜์—ˆ์„ ๋•Œ ์Šค๋ ˆ๋“œ๋ฅผ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค. ํ‘ธ์‹œํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๊ฒ€ํ† ๋ฅผ ์š”์ฒญํ•˜๋ ค๋ฉด ์ตœ์ƒ์œ„ PR ๋Œ“๊ธ€๋กœ @claude review once๋ฅผ ๋Œ“๊ธ€๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.

ํ™•์ธ ์‹คํ–‰ ์ถœ๋ ฅ

์ธ๋ผ์ธ ๊ฒ€ํ†  ๋Œ“๊ธ€ ์™ธ์—๋„ ๊ฐ ๊ฒ€ํ† ๋Š” CI ํ™•์ธ๊ณผ ํ•จ๊ป˜ ๋‚˜ํƒ€๋‚˜๋Š” Claude Code Review ํ™•์ธ ์‹คํ–‰์„ ์ฑ„์›๋‹ˆ๋‹ค. Details ๋งํฌ๋ฅผ ํ™•์žฅํ•˜์—ฌ ์‹ฌ๊ฐ๋„๋ณ„๋กœ ์ •๋ ฌ๋œ ๋ชจ๋“  ๊ฒฐ๊ณผ์˜ ์š”์•ฝ์„ ํ•œ ๊ณณ์—์„œ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค:

์‹ฌ๊ฐ๋„ ํŒŒ์ผ:๋ผ์ธ ๋ฌธ์ œ
๐Ÿ”ด Important src/auth/session.ts:142 ํ† ํฐ ์ƒˆ๋กœ๊ณ ์นจ์ด ๋กœ๊ทธ์•„์›ƒ๊ณผ ๊ฒฝ์Ÿํ•˜์—ฌ ์˜ค๋ž˜๋œ ์„ธ์…˜์ด ํ™œ์„ฑ ์ƒํƒœ๋กœ ์œ ์ง€๋จ
๐ŸŸก Nit src/auth/session.ts:88 parseExpiry๊ฐ€ ์ž˜๋ชป๋œ ์ž…๋ ฅ์—์„œ ์ž๋™์œผ๋กœ 0์„ ๋ฐ˜ํ™˜ํ•จ

๊ฐ ๊ฒฐ๊ณผ๋Š” Files changed ํƒญ์˜ ์ฃผ์„์œผ๋กœ๋„ ๋‚˜ํƒ€๋‚˜๋ฉฐ ๊ด€๋ จ diff ๋ผ์ธ์— ์ง์ ‘ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. Important ๊ฒฐ๊ณผ๋Š” ๋นจ๊ฐ„์ƒ‰ ๋งˆ์ปค๋กœ ๋ Œ๋”๋ง๋˜๊ณ , nit์€ ๋…ธ๋ž€์ƒ‰ ๊ฒฝ๊ณ ๋กœ, ๊ธฐ์กด ๋ฒ„๊ทธ๋Š” ํšŒ์ƒ‰ ๊ณต์ง€๋กœ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค. ์ฃผ์„๊ณผ ์‹ฌ๊ฐ๋„ ํ…Œ์ด๋ธ”์€ ์ธ๋ผ์ธ ๊ฒ€ํ†  ๋Œ“๊ธ€๊ณผ ๋…๋ฆฝ์ ์œผ๋กœ ํ™•์ธ ์‹คํ–‰์— ๊ธฐ๋ก๋˜๋ฏ€๋กœ GitHub๊ฐ€ ์ด๋™ํ•œ ๋ผ์ธ์˜ ์ธ๋ผ์ธ ๋Œ“๊ธ€์„ ๊ฑฐ๋ถ€ํ•˜๋”๋ผ๋„ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

ํ™•์ธ ์‹คํ–‰์€ ํ•ญ์ƒ ์ค‘๋ฆฝ์ ์ธ ๊ฒฐ๋ก ์œผ๋กœ ์™„๋ฃŒ๋˜๋ฏ€๋กœ ๋ถ„๊ธฐ ๋ณดํ˜ธ ๊ทœ์น™์„ ํ†ตํ•ด ๋ณ‘ํ•ฉ์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. Code Review ๊ฒฐ๊ณผ์— ๋”ฐ๋ผ ๋ณ‘ํ•ฉ์„ ์ œ์–ดํ•˜๋ ค๋ฉด ์ž์‹ ์˜ CI์—์„œ ํ™•์ธ ์‹คํ–‰ ์ถœ๋ ฅ์—์„œ ์‹ฌ๊ฐ๋„ ๋ถ„์„์„ ์ฝ์œผ์‹ญ์‹œ์˜ค. Details ํ…์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ๋ผ์ธ์€ ์›Œํฌํ”Œ๋กœ์šฐ๊ฐ€ gh ๋ฐ jq๋กœ ๊ตฌ๋ฌธ ๋ถ„์„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๊ณ„ ํŒ๋… ๊ฐ€๋Šฅํ•œ ๋Œ“๊ธ€์ž…๋‹ˆ๋‹ค:

gh api repos/OWNER/REPO/check-runs/CHECK_RUN_ID \
  --jq '.output.text | split("bughunter-severity: ")[1] | split(" -->")[0] | fromjson'

์ด๋Š” ์‹ฌ๊ฐ๋„๋ณ„ ๊ฐœ์ˆ˜๊ฐ€ ํฌํ•จ๋œ JSON ๊ฐ์ฒด๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: {"normal": 2, "nit": 1, "pre_existing": 0}). normal ํ‚ค๋Š” Important ๊ฒฐ๊ณผ์˜ ๊ฐœ์ˆ˜๋ฅผ ๋ณด์œ ํ•ฉ๋‹ˆ๋‹ค. 0์ด ์•„๋‹Œ ๊ฐ’์€ Claude๊ฐ€ ๋ณ‘ํ•ฉ ์ „์— ์ˆ˜์ •ํ•  ๊ฐ€์น˜๊ฐ€ ์žˆ๋Š” ๋ฒ„๊ทธ๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

Code Review๊ฐ€ ํ™•์ธํ•˜๋Š” ํ•ญ๋ชฉ

๊ธฐ๋ณธ์ ์œผ๋กœ Code Review๋Š” ์ •ํ™•์„ฑ์— ์ค‘์ ์„ ๋‘๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค: ํ˜•์‹ ๊ธฐ๋ณธ ์„ค์ •์ด๋‚˜ ๋ˆ„๋ฝ๋œ ํ…Œ์ŠคํŠธ ๋ฒ”์œ„๊ฐ€ ์•„๋‹Œ ํ”„๋กœ๋•์…˜์„ ์ค‘๋‹จํ•  ๋ฒ„๊ทธ์ž…๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์ง€์นจ ํŒŒ์ผ์„ ์ถ”๊ฐ€ํ•˜์—ฌ ํ™•์ธํ•˜๋Š” ํ•ญ๋ชฉ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Code Review ์„ค์ •

๊ด€๋ฆฌ์ž๋Š” ์กฐ์ง์— ๋Œ€ํ•ด ํ•œ ๋ฒˆ Code Review๋ฅผ ํ™œ์„ฑํ™”ํ•˜๊ณ  ํฌํ•จํ•  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

1

Claude Code ๊ด€๋ฆฌ์ž ์„ค์ • ์—ด๊ธฐ

claude.ai/admin-settings/claude-code๋กœ ์ด๋™ํ•˜์—ฌ Code Review ์„น์…˜์„ ์ฐพ์Šต๋‹ˆ๋‹ค. Claude ์กฐ์ง์— ๋Œ€ํ•œ ๊ด€๋ฆฌ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ๊ณผ GitHub ์กฐ์ง์— GitHub ์•ฑ์„ ์„ค์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ถŒํ•œ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

2

์„ค์ • ์‹œ์ž‘

Setup์„ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด GitHub ์•ฑ ์„ค์น˜ ํ๋ฆ„์ด ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

3

Claude GitHub ์•ฑ ์„ค์น˜

ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋”ฐ๋ผ Claude GitHub ์•ฑ์„ GitHub ์กฐ์ง์— ์„ค์น˜ํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์€ ๋‹ค์Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๊ถŒํ•œ์„ ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค:

  • Contents: ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ
  • Issues: ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ
  • Pull requests: ์ฝ๊ธฐ ๋ฐ ์“ฐ๊ธฐ

Code Review๋Š” ์ฝ˜ํ…์ธ ์— ๋Œ€ํ•œ ์ฝ๊ธฐ ์•ก์„ธ์Šค์™€ ํ’€ ์š”์ฒญ์— ๋Œ€ํ•œ ์“ฐ๊ธฐ ์•ก์„ธ์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋” ๊ด‘๋ฒ”์œ„ํ•œ ๊ถŒํ•œ ์ง‘ํ•ฉ์€ ๋‚˜์ค‘์— ํ™œ์„ฑํ™”ํ•˜๋Š” ๊ฒฝ์šฐ GitHub Actions๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

4

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์„ ํƒ

Code Review๋ฅผ ํ™œ์„ฑํ™”ํ•  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๋ณด์ด์ง€ ์•Š์œผ๋ฉด ์„ค์น˜ ์ค‘์— Claude GitHub ์•ฑ์— ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ–ˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค. ๋‚˜์ค‘์— ๋” ๋งŽ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„ ๊ฒ€ํ†  ํŠธ๋ฆฌ๊ฑฐ ์„ค์ •

์„ค์ •์ด ์™„๋ฃŒ๋˜๋ฉด Code Review ์„น์…˜์— ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ํ…Œ์ด๋ธ”์— ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•ด Review Behavior ๋“œ๋กญ๋‹ค์šด์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒ€ํ† ๊ฐ€ ์‹คํ–‰๋˜๋Š” ์‹œ๊ธฐ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค:

  • Once after PR creation: PR์ด ์—ด๋ฆฌ๊ฑฐ๋‚˜ ๊ฒ€ํ†  ์ค€๋น„ ์™„๋ฃŒ๋กœ ํ‘œ์‹œ๋  ๋•Œ ํ•œ ๋ฒˆ ๊ฒ€ํ† ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค
  • After every push: PR ๋ธŒ๋žœ์น˜์— ๋Œ€ํ•œ ๋ชจ๋“  ํ‘ธ์‹œ์—์„œ ๊ฒ€ํ† ๊ฐ€ ์‹คํ–‰๋˜์–ด PR์ด ์ง„ํ™”ํ•จ์— ๋”ฐ๋ผ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ๊ฐ์ง€ํ•˜๊ณ  ํ”Œ๋ž˜๊ทธ๋œ ๋ฌธ์ œ๋ฅผ ์ˆ˜์ •ํ•  ๋•Œ ์Šค๋ ˆ๋“œ๋ฅผ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐํ•ฉ๋‹ˆ๋‹ค
  • Manual: PR์—์„œ @claude review ๋˜๋Š” @claude review once๋ฅผ ๋Œ“๊ธ€๋กœ ์ž‘์„ฑํ•  ๋•Œ๋งŒ ๊ฒ€ํ† ๊ฐ€ ์‹œ์ž‘๋˜๋ฉฐ, @claude review๋Š” ๋˜ํ•œ PR์„ ์ดํ›„ ํ‘ธ์‹œ์— ๋Œ€ํ•œ ๊ฒ€ํ† ์— ๊ตฌ๋…ํ•ฉ๋‹ˆ๋‹ค

๋ชจ๋“  ํ‘ธ์‹œ์—์„œ ๊ฒ€ํ† ํ•˜๋ฉด ๊ฐ€์žฅ ๋งŽ์€ ๊ฒ€ํ† ๊ฐ€ ์‹คํ–‰๋˜๊ณ  ๋น„์šฉ์ด ๊ฐ€์žฅ ๋งŽ์ด ๋“ญ๋‹ˆ๋‹ค. ์ˆ˜๋™ ๋ชจ๋“œ๋Š” ํŠน์ • PR์„ ๊ฒ€ํ† ์— ์˜ตํŠธ์ธํ•˜๋ ค๋Š” ํŠธ๋ž˜ํ”ฝ์ด ๋งŽ์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋‚˜ PR์ด ์ค€๋น„๋  ๋•Œ๊นŒ์ง€๋งŒ ๊ฒ€ํ† ๋ฅผ ์‹œ์ž‘ํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์— ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋ฆฌํฌ์ง€ํ† ๋ฆฌ ํ…Œ์ด๋ธ”์€ ์ตœ๊ทผ ํ™œ๋™์„ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ฐ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ํ‰๊ท  ๊ฒ€ํ†  ๋น„์šฉ๋„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. ํ–‰ ์ž‘์—… ๋ฉ”๋‰ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„๋กœ Code Review๋ฅผ ์ผœ๊ฑฐ๋‚˜ ๋„๊ฑฐ๋‚˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์™„์ „ํžˆ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์„ค์ •์„ ํ™•์ธํ•˜๋ ค๋ฉด ํ…Œ์ŠคํŠธ PR์„ ์—ด์–ด๋ณด์‹ญ์‹œ์˜ค. ์ž๋™ ํŠธ๋ฆฌ๊ฑฐ๋ฅผ ์„ ํƒํ•œ ๊ฒฝ์šฐ Claude Code Review๋ผ๋Š” ํ™•์ธ ์‹คํ–‰์ด ๋ช‡ ๋ถ„ ๋‚ด์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. ์ˆ˜๋™์„ ์„ ํƒํ•œ ๊ฒฝ์šฐ PR์—์„œ @claude review๋ฅผ ๋Œ“๊ธ€๋กœ ์ž‘์„ฑํ•˜์—ฌ ์ฒซ ๋ฒˆ์งธ ๊ฒ€ํ† ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธ ์‹คํ–‰์ด ๋‚˜ํƒ€๋‚˜์ง€ ์•Š์œผ๋ฉด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ๊ด€๋ฆฌ์ž ์„ค์ •์— ๋‚˜์—ด๋˜์–ด ์žˆ๊ณ  Claude GitHub ์•ฑ์ด ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค.

์ˆ˜๋™์œผ๋กœ ๊ฒ€ํ†  ํŠธ๋ฆฌ๊ฑฐ

๋‘ ๊ฐœ์˜ ๋Œ“๊ธ€ ๋ช…๋ น์ด ์š”์ฒญ ์‹œ ๊ฒ€ํ† ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ๋‘˜ ๋‹ค ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ตฌ์„ฑ๋œ ํŠธ๋ฆฌ๊ฑฐ์™€ ๊ด€๊ณ„์—†์ด ์ž‘๋™ํ•˜๋ฏ€๋กœ ์ˆ˜๋™ ๋ชจ๋“œ์—์„œ ํŠน์ • PR์„ ๊ฒ€ํ† ์— ์˜ตํŠธ์ธํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๋ชจ๋“œ์—์„œ ์ฆ‰์‹œ ์žฌ๊ฒ€ํ† ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋ช…๋ น ์ˆ˜ํ–‰ ์ž‘์—…
@claude review ๊ฒ€ํ† ๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  PR์„ ์•ž์œผ๋กœ ํ‘ธ์‹œ ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€ํ† ์— ๊ตฌ๋…ํ•ฉ๋‹ˆ๋‹ค
@claude review once PR์„ ํ–ฅํ›„ ํ‘ธ์‹œ์— ๊ตฌ๋…ํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ผ ๊ฒ€ํ† ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค

PR์˜ ํ˜„์žฌ ์ƒํƒœ์— ๋Œ€ํ•œ ํ”ผ๋“œ๋ฐฑ์„ ์›ํ•˜์ง€๋งŒ ์ดํ›„์˜ ๋ชจ๋“  ํ‘ธ์‹œ๊ฐ€ ๊ฒ€ํ† ๋ฅผ ๋ฐœ์ƒ์‹œํ‚ค์ง€ ์•Š๊ธฐ๋ฅผ ์›ํ•  ๋•Œ @claude review once๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋นˆ๋ฒˆํ•œ ํ‘ธ์‹œ๊ฐ€ ์žˆ๋Š” ์žฅ๊ธฐ ์‹คํ–‰ PR์ด๋‚˜ PR์˜ ๊ฒ€ํ†  ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜์ง€ ์•Š๊ณ  ์ผํšŒ์„ฑ ๋‘ ๋ฒˆ์งธ ์˜๊ฒฌ์„ ์›ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋Œ“๊ธ€์ด ๊ฒ€ํ† ๋ฅผ ํŠธ๋ฆฌ๊ฑฐํ•˜๋ ค๋ฉด:

  • ์ตœ์ƒ์œ„ PR ๋Œ“๊ธ€๋กœ ๊ฒŒ์‹œํ•˜๊ณ  diff ๋ผ์ธ์˜ ์ธ๋ผ์ธ ๋Œ“๊ธ€๋กœ๋Š” ๊ฒŒ์‹œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
  • ๋Œ“๊ธ€์˜ ์‹œ์ž‘ ๋ถ€๋ถ„์— ๋ช…๋ น์„ ์ž…๋ ฅํ•˜๊ณ , ํ•œ ๋ฒˆ๋งŒ ํ˜•์‹์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ once๋ฅผ ๊ฐ™์€ ๋ผ์ธ์— ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค
  • ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ์†Œ์œ ์ž, ๋ฉค๋ฒ„ ๋˜๋Š” ํ˜‘๋ ฅ์ž ์•ก์„ธ์Šค ๊ถŒํ•œ์ด ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค
  • PR์€ ์—ด๋ ค ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

์ž๋™ ํŠธ๋ฆฌ๊ฑฐ์™€ ๋‹ฌ๋ฆฌ ์ˆ˜๋™ ํŠธ๋ฆฌ๊ฑฐ๋Š” ๋ช…์‹œ์  ์š”์ฒญ์ด ์ดˆ์•ˆ ์ƒํƒœ์™€ ๊ด€๊ณ„์—†์ด ์ง€๊ธˆ ๊ฒ€ํ† ๋ฅผ ์›ํ•œ๋‹ค๋Š” ์‹ ํ˜ธ์ด๋ฏ€๋กœ ์ดˆ์•ˆ PR์—์„œ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

ํ•ด๋‹น PR์—์„œ ๊ฒ€ํ† ๊ฐ€ ์ด๋ฏธ ์‹คํ–‰ ์ค‘์ธ ๊ฒฝ์šฐ ์š”์ฒญ์€ ์ง„ํ–‰ ์ค‘์ธ ๊ฒ€ํ† ๊ฐ€ ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๋Œ€๊ธฐ์—ด์— ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. PR์˜ ํ™•์ธ ์‹คํ–‰์„ ํ†ตํ•ด ์ง„ํ–‰ ์ƒํ™ฉ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒ€ํ†  ์‚ฌ์šฉ์ž ์ •์˜

Code Review๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ๋‘ ๊ฐœ์˜ ํŒŒ์ผ์„ ์ฝ์–ด ํ”Œ๋ž˜๊ทธํ•  ํ•ญ๋ชฉ์„ ์•ˆ๋‚ดํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ ๊ฒ€ํ† ์— ์˜ํ–ฅ์„ ๋ฏธ์น˜๋Š” ๊ฐ•๋„๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค:

  • CLAUDE.md: Claude Code๊ฐ€ ๊ฒ€ํ† ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋“  ์ž‘์—…์— ์‚ฌ์šฉํ•˜๋Š” ๊ณต์œ  ํ”„๋กœ์ ํŠธ ์ง€์นจ์ž…๋‹ˆ๋‹ค. Code Review๋Š” ์ด๋ฅผ ํ”„๋กœ์ ํŠธ ์ปจํ…์ŠคํŠธ๋กœ ์ฝ๊ณ  ์ƒˆ๋กœ ๋„์ž…๋œ ์œ„๋ฐ˜์„ nit์œผ๋กœ ํ”Œ๋ž˜๊ทธํ•ฉ๋‹ˆ๋‹ค.
  • REVIEW.md: ๊ฒ€ํ†  ์ „์šฉ ์ง€์นจ์œผ๋กœ ๊ฒ€ํ†  ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ชจ๋“  ์—์ด์ „ํŠธ์— ์ตœ์šฐ์„  ์ˆœ์œ„๋กœ ์ง์ ‘ ์ฃผ์ž…๋ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”Œ๋ž˜๊ทธ๋˜๋Š” ํ•ญ๋ชฉ, ์‹ฌ๊ฐ๋„ ๋ฐ ๊ฒฐ๊ณผ ๋ณด๊ณ  ๋ฐฉ์‹์„ ๋ณ€๊ฒฝํ•ฉ๋‹ˆ๋‹ค.

CLAUDE.md

Code Review๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ CLAUDE.md ํŒŒ์ผ์„ ์ฝ๊ณ  ์ƒˆ๋กœ ๋„์ž…๋œ ์œ„๋ฐ˜์„ nit ์ˆ˜์ค€ ๊ฒฐ๊ณผ๋กœ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์–‘๋ฐฉํ–ฅ์œผ๋กœ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค: PR์ด CLAUDE.md ๋ฌธ์„ ์˜ค๋ž˜๋œ ๊ฒƒ์œผ๋กœ ๋งŒ๋“œ๋Š” ๋ฐฉ์‹์œผ๋กœ ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•˜๋ฉด Claude๋Š” ๋ฌธ์„œ๋„ ์—…๋ฐ์ดํŠธํ•ด์•ผ ํ•œ๋‹ค๊ณ  ํ”Œ๋ž˜๊ทธํ•ฉ๋‹ˆ๋‹ค.

Claude๋Š” ๋””๋ ‰ํ† ๋ฆฌ ๊ณ„์ธต ๊ตฌ์กฐ์˜ ๋ชจ๋“  ์ˆ˜์ค€์—์„œ CLAUDE.md ํŒŒ์ผ์„ ์ฝ์œผ๋ฏ€๋กœ ํ•˜์œ„ ๋””๋ ‰ํ† ๋ฆฌ์˜ CLAUDE.md์˜ ๊ทœ์น™์€ ํ•ด๋‹น ๊ฒฝ๋กœ ์•„๋ž˜์˜ ํŒŒ์ผ์—๋งŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. CLAUDE.md ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋ฉ”๋ชจ๋ฆฌ ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

์ผ๋ฐ˜ Claude Code ์„ธ์…˜์— ์ ์šฉํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ๊ฒ€ํ†  ์ „์šฉ ์ง€์นจ์˜ ๊ฒฝ์šฐ ๋Œ€์‹  REVIEW.md๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

REVIEW\.md

REVIEW.md๋Š” ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ฃจํŠธ์˜ ํŒŒ์ผ๋กœ Code Review๊ฐ€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ ๋‚ด์šฉ์€ ๊ฒ€ํ†  ํŒŒ์ดํ”„๋ผ์ธ์˜ ๋ชจ๋“  ์—์ด์ „ํŠธ์˜ ์‹œ์Šคํ…œ ํ”„๋กฌํ”„ํŠธ์— ์ตœ์šฐ์„  ์ˆœ์œ„ ์ง€์นจ ๋ธ”๋ก์œผ๋กœ ์ฃผ์ž…๋˜์–ด ๊ธฐ๋ณธ ๊ฒ€ํ†  ์ง€์นจ๋ณด๋‹ค ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๊ทธ๋Œ€๋กœ ๋ถ™์—ฌ๋„ฃ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์— REVIEW.md๋Š” ์ผ๋ฐ˜ ์ง€์นจ์ž…๋‹ˆ๋‹ค: @ import ๊ตฌ๋ฌธ์€ ํ™•์žฅ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ฐธ์กฐ๋œ ํŒŒ์ผ์€ ํ”„๋กฌํ”„ํŠธ๋กœ ์ฝํ˜€์ง€์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ ์šฉํ•˜๋ ค๋Š” ๊ทœ์น™์„ ํŒŒ์ผ์— ์ง์ ‘ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.

์กฐ์ •ํ•  ์ˆ˜ ์žˆ๋Š” ํ•ญ๋ชฉ

REVIEW.md๋Š” ์ž์œ  ํ˜•์‹ ๋งˆํฌ๋‹ค์šด์ด๋ฏ€๋กœ ๊ฒ€ํ†  ์ง€์นจ์œผ๋กœ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ชจ๋“  ๊ฒƒ์ด ๋ฒ”์œ„ ๋‚ด์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ํŒจํ„ด์€ ์‹ค์ œ๋กœ ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค.

์‹ฌ๊ฐ๋„: ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•ด ๐Ÿ”ด Important๊ฐ€ ์˜๋ฏธํ•˜๋Š” ๋ฐ”๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ ๋ณด์ •์€ ํ”„๋กœ๋•์…˜ ์ฝ”๋“œ๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋ฌธ์„œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, ๊ตฌ์„ฑ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋˜๋Š” ํ”„๋กœํ† ํƒ€์ž…์€ ํ›จ์”ฌ ๋” ์ข์€ ์ •์˜๋ฅผ ์›ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Important์ธ ๊ฒฐ๊ณผ ํด๋ž˜์Šค์™€ ์ตœ๋Œ€ Nit์ธ ๊ฒฐ๊ณผ ํด๋ž˜์Šค๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๋ช…์‹œํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฐฉํ–ฅ์œผ๋กœ๋„ ํ™•๋Œ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ธฐ๋ณธ nit์ด ์•„๋‹Œ Important๋กœ CLAUDE.md ์œ„๋ฐ˜์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

Nit ๋ณผ๋ฅจ: ๋‹จ์ผ ๊ฒ€ํ† ๊ฐ€ ๊ฒŒ์‹œํ•˜๋Š” ๐ŸŸก Nit ๋Œ“๊ธ€์˜ ์ˆ˜๋ฅผ ์ œํ•œํ•ฉ๋‹ˆ๋‹ค. ์‚ฐ๋ฌธ ๋ฐ ๊ตฌ์„ฑ ํŒŒ์ผ์€ ์˜์›ํžˆ ๋‹ค๋“ฌ์–ด์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. "์ตœ๋Œ€ 5๊ฐœ์˜ nit์„ ๋ณด๊ณ ํ•˜๊ณ  ๋‚˜๋จธ์ง€๋ฅผ ์š”์•ฝ์— ๊ฐœ์ˆ˜๋กœ ์–ธ๊ธ‰"๊ณผ ๊ฐ™์€ ์ œํ•œ์€ ๊ฒ€ํ† ๋ฅผ ์‹คํ–‰ ๊ฐ€๋Šฅํ•˜๊ฒŒ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.

๊ทœ์น™ ๊ฑด๋„ˆ๋›ฐ๊ธฐ: Claude๊ฐ€ ๊ฒฐ๊ณผ๋ฅผ ๊ฒŒ์‹œํ•˜์ง€ ์•Š์•„์•ผ ํ•˜๋Š” ๊ฒฝ๋กœ, ๋ถ„๊ธฐ ํŒจํ„ด ๋ฐ ๊ฒฐ๊ณผ ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์ธ ํ›„๋ณด๋Š” ์ƒ์„ฑ๋œ ์ฝ”๋“œ, lockfile, ๊ณต๊ธ‰๋œ ์ข…์†์„ฑ ๋ฐ ๊ธฐ๊ณ„ ์ž‘์„ฑ ๋ถ„๊ธฐ์ด๋ฉฐ, linting ๋˜๋Š” ๋งž์ถค๋ฒ• ๊ฒ€์‚ฌ์™€ ๊ฐ™์ด CI๊ฐ€ ์ด๋ฏธ ์ ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์™„์ „ํ•œ ์ •๋ฐ€ ๊ฒ€์‚ฌ๋ฅผ ๋ณด์žฅํ•˜์ง€ ์•Š์ง€๋งŒ ์ผ๋ถ€ ๊ฒ€ํ† ๋ฅผ ๋ณด์žฅํ•˜๋Š” ๊ฒฝ๋กœ์˜ ๊ฒฝ์šฐ ์™„์ „ํžˆ ๊ฑด๋„ˆ๋›ฐ๋Š” ๋Œ€์‹  ๋” ๋†’์€ ๊ธฐ์ค€์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค: "scripts/์—์„œ๋Š” ๊ฑฐ์˜ ํ™•์‹คํ•˜๊ณ  ์‹ฌ๊ฐํ•œ ๊ฒฝ์šฐ์—๋งŒ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค."

๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„ ํ™•์ธ: ๋ชจ๋“  PR์—์„œ ํ”Œ๋ž˜๊ทธํ•˜๋ ค๋Š” ๊ทœ์น™์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ: "์ƒˆ API ๊ฒฝ๋กœ์—๋Š” ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค." REVIEW.md๊ฐ€ ์ตœ์šฐ์„  ์ˆœ์œ„๋กœ ์ฃผ์ž…๋˜๊ธฐ ๋•Œ๋ฌธ์— ์ด๋“ค์€ ๊ธด CLAUDE.md์˜ ๋™์ผํ•œ ๊ทœ์น™๋ณด๋‹ค ๋” ์•ˆ์ •์ ์œผ๋กœ ๋„์ฐฉํ•ฉ๋‹ˆ๋‹ค.

๊ฒ€์ฆ ๊ธฐ์ค€: ๊ฒฐ๊ณผ ํด๋ž˜์Šค๊ฐ€ ๊ฒŒ์‹œ๋˜๊ธฐ ์ „์— ์ฆ๊ฑฐ๋ฅผ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด "๋™์ž‘ ์ฃผ์žฅ์€ ๋ช…๋ช…์—์„œ์˜ ์ถ”๋ก ์ด ์•„๋‹Œ ์†Œ์Šค์˜ file:line ์ธ์šฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค"๋Š” ๊ทธ๋ ‡์ง€ ์•Š์œผ๋ฉด ์ž‘์„ฑ์ž์—๊ฒŒ ์™•๋ณต์„ ๋น„์šฉ์œผ๋กœ ํ•˜๋Š” ๊ฑฐ์ง“ ์–‘์„ฑ์„ ์ค„์ž…๋‹ˆ๋‹ค.

์žฌ๊ฒ€ํ†  ์ˆ˜๋ ด: PR์ด ์ด๋ฏธ ๊ฒ€ํ† ๋˜์—ˆ์„ ๋•Œ Claude๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•ด์•ผ ํ•˜๋Š”์ง€ ์•Œ๋ ค์ค๋‹ˆ๋‹ค. "์ฒซ ๋ฒˆ์งธ ๊ฒ€ํ†  ํ›„ ์ƒˆ๋กœ์šด nit์„ ์–ต์ œํ•˜๊ณ  Important ๊ฒฐ๊ณผ๋งŒ ๊ฒŒ์‹œ"์™€ ๊ฐ™์€ ๊ทœ์น™์€ ํ•œ ์ค„ ์ˆ˜์ •์ด ์Šคํƒ€์ผ๋งŒ์œผ๋กœ 7๋ผ์šด๋“œ์— ๋„๋‹ฌํ•˜๋Š” ๊ฒƒ์„ ๋ฐฉ์ง€ํ•ฉ๋‹ˆ๋‹ค.

์š”์•ฝ ํ˜•ํƒœ: ๊ฒ€ํ†  ๋ณธ๋ฌธ์ด 2 factual, 4 style๊ณผ ๊ฐ™์€ ํ•œ ์ค„ ์ง‘๊ณ„๋กœ ์‹œ์ž‘ํ•˜๋„๋ก ์š”์ฒญํ•˜๊ณ  ๊ทธ๊ฒƒ์ด ๊ฒฝ์šฐ์ผ ๋•Œ "factual ๋ฌธ์ œ ์—†์Œ"์œผ๋กœ ์‹œ์ž‘ํ•˜๋„๋ก ์š”์ฒญํ•ฉ๋‹ˆ๋‹ค. ์ž‘์„ฑ์ž๋Š” ์„ธ๋ถ€ ์‚ฌํ•ญ ์ „์— ์ž‘์—…์˜ ํ˜•ํƒœ๋ฅผ ์•Œ๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ

์ด REVIEW.md๋Š” ๋ฐฑ์—”๋“œ ์„œ๋น„์Šค์˜ ์‹ฌ๊ฐ๋„๋ฅผ ์žฌ๋ณด์ •ํ•˜๊ณ , nit์„ ์ œํ•œํ•˜๊ณ , ์ƒ์„ฑ๋œ ํŒŒ์ผ์„ ๊ฑด๋„ˆ๋›ฐ๊ณ , ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„ ํ™•์ธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

# ๊ฒ€ํ†  ์ง€์นจ

## Important๊ฐ€ ์—ฌ๊ธฐ์„œ ์˜๋ฏธํ•˜๋Š” ๋ฐ”

๋™์ž‘์„ ์ค‘๋‹จํ•˜๊ฑฐ๋‚˜ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ถœํ•˜๊ฑฐ๋‚˜ ๋กค๋ฐฑ์„ ์ฐจ๋‹จํ•  ๊ฒฐ๊ณผ์— ๋Œ€ํ•ด Important๋ฅผ ์˜ˆ์•ฝํ•ฉ๋‹ˆ๋‹ค: ์ž˜๋ชป๋œ ๋…ผ๋ฆฌ, ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ, ๋กœ๊ทธ ๋˜๋Š” ์˜ค๋ฅ˜ ๋ฉ”์‹œ์ง€์˜ PII, ๊ทธ๋ฆฌ๊ณ  ์—ญํ˜ธํ™˜๋˜์ง€ ์•Š๋Š” ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜์ž…๋‹ˆ๋‹ค. ์Šคํƒ€์ผ, ๋ช…๋ช… ๋ฐ ๋ฆฌํŒฉํ† ๋ง ์ œ์•ˆ์€ ์ตœ๋Œ€ Nit์ž…๋‹ˆ๋‹ค.

## Nit ์ œํ•œ

๊ฒ€ํ† ๋‹น ์ตœ๋Œ€ 5๊ฐœ์˜ Nit์„ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๋” ๋งŽ์ด ๋ฐœ๊ฒฌํ•œ ๊ฒฝ์šฐ ์ธ๋ผ์ธ์œผ๋กœ ๊ฒŒ์‹œํ•˜๋Š” ๋Œ€์‹  ์š”์•ฝ์—์„œ "plus N similar items"๋ผ๊ณ  ๋งํ•ฉ๋‹ˆ๋‹ค. ๋ฐœ๊ฒฌํ•œ ๋ชจ๋“  ๊ฒƒ์ด Nit์ธ ๊ฒฝ์šฐ "No blocking issues"๋กœ ์š”์•ฝ์„ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.

## ๋ณด๊ณ ํ•˜์ง€ ์•Š์Œ

- CI๊ฐ€ ์ด๋ฏธ ์ ์šฉํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ: lint, ํ˜•์‹, ํƒ€์ž… ์˜ค๋ฅ˜
- `src/gen/` ์•„๋ž˜์˜ ์ƒ์„ฑ๋œ ํŒŒ์ผ ๋ฐ ๋ชจ๋“  `*.lock` ํŒŒ์ผ
- ์˜๋„์ ์œผ๋กœ ํ”„๋กœ๋•์…˜ ๊ทœ์น™์„ ์œ„๋ฐ˜ํ•˜๋Š” ํ…Œ์ŠคํŠธ ์ „์šฉ ์ฝ”๋“œ

## ํ•ญ์ƒ ํ™•์ธ

- ์ƒˆ API ๊ฒฝ๋กœ์—๋Š” ํ†ตํ•ฉ ํ…Œ์ŠคํŠธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค
- ๋กœ๊ทธ ๋ผ์ธ์— ์ด๋ฉ”์ผ ์ฃผ์†Œ, ์‚ฌ์šฉ์ž ID ๋˜๋Š” ์š”์ฒญ ๋ณธ๋ฌธ์ด ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค
- ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ฟผ๋ฆฌ๋Š” ํ˜ธ์ถœ์ž์˜ ํ…Œ๋„ŒํŠธ๋กœ ๋ฒ”์œ„๊ฐ€ ์ง€์ •๋ฉ๋‹ˆ๋‹ค

์ดˆ์  ์œ ์ง€

๊ธธ์ด๋Š” ๋น„์šฉ์ด ์žˆ์Šต๋‹ˆ๋‹ค: ๊ธด REVIEW.md๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ทœ์น™์„ ํฌ์„ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€ํ†  ๋™์ž‘์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ง€์นจ์œผ๋กœ ์œ ์ง€ํ•˜๊ณ  ์ผ๋ฐ˜ ํ”„๋กœ์ ํŠธ ์ปจํ…์ŠคํŠธ๋Š” CLAUDE.md์— ๋‚จ๊ฒจ๋‘ก๋‹ˆ๋‹ค.

์‚ฌ์šฉ๋Ÿ‰ ๋ณด๊ธฐ

claude.ai/analytics/code-review๋กœ ์ด๋™ํ•˜์—ฌ ์กฐ์ง ์ „์ฒด์˜ Code Review ํ™œ๋™์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค. ๋Œ€์‹œ๋ณด๋“œ๋Š” ๋‹ค์Œ์„ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค:

์„น์…˜ ํ‘œ์‹œ ๋‚ด์šฉ
PRs reviewed ์„ ํƒํ•œ ์‹œ๊ฐ„ ๋ฒ”์œ„ ๋™์•ˆ ๊ฒ€ํ† ๋œ ํ’€ ์š”์ฒญ์˜ ์ผ์ผ ๊ฐœ์ˆ˜
Cost weekly Code Review์˜ ์ฃผ๊ฐ„ ์ง€์ถœ
Feedback ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์—ฌ ์ž๋™์œผ๋กœ ํ•ด๊ฒฐ๋œ ๊ฒ€ํ†  ๋Œ“๊ธ€์˜ ๊ฐœ์ˆ˜
Repository breakdown ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„ ๊ฒ€ํ† ๋œ PR ๊ฐœ์ˆ˜ ๋ฐ ํ•ด๊ฒฐ๋œ ๋Œ“๊ธ€

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

๊ฐ€๊ฒฉ

Code Review๋Š” ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฒญ๊ตฌ๋ฉ๋‹ˆ๋‹ค. ๊ฐ ๊ฒ€ํ† ๋Š” ํ‰๊ท  $15-25์˜ ๋น„์šฉ์ด ์†Œ์š”๋˜๋ฉฐ, PR ํฌ๊ธฐ, ์ฝ”๋“œ๋ฒ ์ด์Šค ๋ณต์žก๋„ ๋ฐ ๊ฒ€์ฆ์ด ํ•„์š”ํ•œ ๋ฌธ์ œ์˜ ์ˆ˜์— ๋”ฐ๋ผ ํ™•์žฅ๋ฉ๋‹ˆ๋‹ค. Code Review ์‚ฌ์šฉ๋Ÿ‰์€ ์‚ฌ์šฉ๋Ÿ‰ ํฌ๋ ˆ๋”ง์„ ํ†ตํ•ด ๋ณ„๋„๋กœ ์ฒญ๊ตฌ๋˜๋ฉฐ ๊ณ„ํš์— ํฌํ•จ๋œ ์‚ฌ์šฉ๋Ÿ‰์— ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์„ ํƒํ•œ ๊ฒ€ํ†  ํŠธ๋ฆฌ๊ฑฐ๋Š” ์ด ๋น„์šฉ์— ์˜ํ–ฅ์„ ๋ฏธ์นฉ๋‹ˆ๋‹ค:

  • Once after PR creation: PR๋‹น ํ•œ ๋ฒˆ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค
  • After every push: ๊ฐ ํ‘ธ์‹œ์—์„œ ์‹คํ–‰๋˜์–ด ํ‘ธ์‹œ ์ˆ˜๋งŒํผ ๋น„์šฉ์ด ๊ณฑํ•ด์ง‘๋‹ˆ๋‹ค
  • Manual: PR์—์„œ ๋ˆ„๊ตฐ๊ฐ€ @claude review๋ฅผ ๋Œ“๊ธ€๋กœ ์ž‘์„ฑํ•  ๋•Œ๊นŒ์ง€ ๊ฒ€ํ† ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค

๋ชจ๋“  ๋ชจ๋“œ์—์„œ @claude review๋ฅผ ๋Œ“๊ธ€๋กœ ์ž‘์„ฑํ•˜๋ฉด PR์ด ํ‘ธ์‹œ ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€ํ† ์— ์˜ตํŠธ์ธ๋˜๋ฏ€๋กœ ํ•ด๋‹น ๋Œ“๊ธ€ ์ดํ›„ ํ‘ธ์‹œ๋‹น ์ถ”๊ฐ€ ๋น„์šฉ์ด ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ํ–ฅํ›„ ํ‘ธ์‹œ์— ๊ตฌ๋…ํ•˜์ง€ ์•Š๊ณ  ๋‹จ์ผ ๊ฒ€ํ† ๋ฅผ ์‹คํ–‰ํ•˜๋ ค๋ฉด ๋Œ€์‹  @claude review once๋ฅผ ๋Œ“๊ธ€๋กœ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค.

๋น„์šฉ์€ ์กฐ์ง์ด ๋‹ค๋ฅธ Claude Code ๊ธฐ๋Šฅ์— Amazon Bedrock ๋˜๋Š” Google Vertex AI๋ฅผ ์‚ฌ์šฉํ•˜๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด Anthropic ์ฒญ๊ตฌ์„œ์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค. Code Review์˜ ์›”๊ฐ„ ์ง€์ถœ ํ•œ๋„๋ฅผ ์„ค์ •ํ•˜๋ ค๋ฉด claude.ai/admin-settings/usage๋กœ ์ด๋™ํ•˜์—ฌ Claude Code Review ์„œ๋น„์Šค์˜ ํ•œ๋„๋ฅผ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค.

๋ถ„์„์˜ ์ฃผ๊ฐ„ ๋น„์šฉ ์ฐจํŠธ ๋˜๋Š” ๊ด€๋ฆฌ์ž ์„ค์ •์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ณ„ ํ‰๊ท  ๋น„์šฉ ์—ด์„ ํ†ตํ•ด ์ง€์ถœ์„ ๋ชจ๋‹ˆํ„ฐ๋งํ•ฉ๋‹ˆ๋‹ค.

๋ฌธ์ œ ํ•ด๊ฒฐ

๊ฒ€ํ†  ์‹คํ–‰์€ ์ตœ์„ ์˜ ๋…ธ๋ ฅ์ž…๋‹ˆ๋‹ค. ์‹คํŒจํ•œ ์‹คํ–‰์€ PR์„ ์ฐจ๋‹จํ•˜์ง€ ์•Š์ง€๋งŒ ์ž๋™์œผ๋กœ ์žฌ์‹œ๋„ํ•˜์ง€๋„ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ์„น์…˜์—์„œ๋Š” ์‹คํŒจํ•œ ์‹คํ–‰์—์„œ ๋ณต๊ตฌํ•˜๋Š” ๋ฐฉ๋ฒ•๊ณผ ํ™•์ธ ์‹คํ–‰์ด ์ฐพ์„ ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ๋ฅผ ๋ณด๊ณ ํ•  ๋•Œ ์–ด๋””๋ฅผ ๋ด์•ผ ํ•˜๋Š”์ง€ ๋‹ค๋ฃน๋‹ˆ๋‹ค.

์‹คํŒจํ•˜๊ฑฐ๋‚˜ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋œ ๊ฒ€ํ†  ์žฌํŠธ๋ฆฌ๊ฑฐ

๊ฒ€ํ†  ์ธํ”„๋ผ๊ฐ€ ๋‚ด๋ถ€ ์˜ค๋ฅ˜์— ๋„๋‹ฌํ•˜๊ฑฐ๋‚˜ ์‹œ๊ฐ„ ์ œํ•œ์„ ์ดˆ๊ณผํ•˜๋ฉด ํ™•์ธ ์‹คํ–‰์ด Code review encountered an error ๋˜๋Š” Code review timed out ์ œ๋ชฉ์œผ๋กœ ์™„๋ฃŒ๋ฉ๋‹ˆ๋‹ค. ๊ฒฐ๋ก ์€ ์—ฌ์ „ํžˆ ์ค‘๋ฆฝ์ ์ด๋ฏ€๋กœ ๋ณ‘ํ•ฉ์„ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ์€ ์—†์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ€ ๊ฒŒ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๊ฒ€ํ† ๋ฅผ ๋‹ค์‹œ ์‹คํ–‰ํ•˜๋ ค๋ฉด PR์—์„œ @claude review once๋ฅผ ๋Œ“๊ธ€๋กœ ์ž‘์„ฑํ•˜์‹ญ์‹œ์˜ค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด PR์„ ํ–ฅํ›„ ํ‘ธ์‹œ์— ๊ตฌ๋…ํ•˜์ง€ ์•Š๊ณ  ์ƒˆ๋กœ์šด ๊ฒ€ํ† ๋ฅผ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. PR์ด ์ด๋ฏธ ํ‘ธ์‹œ ํŠธ๋ฆฌ๊ฑฐ ๊ฒ€ํ† ์— ๊ตฌ๋…๋˜์–ด ์žˆ์œผ๋ฉด ์ƒˆ ์ปค๋ฐ‹์„ ํ‘ธ์‹œํ•˜๋ฉด ์ƒˆ ๊ฒ€ํ† ๋„ ์‹œ์ž‘๋ฉ๋‹ˆ๋‹ค.

GitHub์˜ Checks ํƒญ์˜ Re-run ๋ฒ„ํŠผ์€ Code Review๋ฅผ ์žฌํŠธ๋ฆฌ๊ฑฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋Œ“๊ธ€ ๋ช…๋ น์ด๋‚˜ ์ƒˆ ํ‘ธ์‹œ๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค.

๊ฒ€ํ† ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š์•˜๊ณ  PR์ด ์ง€์ถœ ํ•œ๋„ ๋ฉ”์‹œ์ง€๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค

์กฐ์ง์˜ ์›”๊ฐ„ ์ง€์ถœ ํ•œ๋„์— ๋„๋‹ฌํ•˜๋ฉด Code Review๋Š” ๊ฒ€ํ† ๊ฐ€ ๊ฑด๋„ˆ๋›ฐ์–ด์กŒ์Œ์„ ์„ค๋ช…ํ•˜๋Š” ๋‹จ์ผ ๋Œ“๊ธ€์„ PR์— ๊ฒŒ์‹œํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€ํ† ๋Š” ๋‹ค์Œ ์ฒญ๊ตฌ ๊ธฐ๊ฐ„์˜ ์‹œ์ž‘ ์‹œ ์ž๋™์œผ๋กœ ์žฌ๊ฐœ๋˜๊ฑฐ๋‚˜ ๊ด€๋ฆฌ์ž๊ฐ€ claude.ai/admin-settings/usage์—์„œ ํ•œ๋„๋ฅผ ๋†’์ผ ๋•Œ ์ฆ‰์‹œ ์žฌ๊ฐœ๋ฉ๋‹ˆ๋‹ค.

์ธ๋ผ์ธ ๋Œ“๊ธ€๋กœ ํ‘œ์‹œ๋˜์ง€ ์•Š๋Š” ๋ฌธ์ œ ์ฐพ๊ธฐ

ํ™•์ธ ์‹คํ–‰ ์ œ๋ชฉ์ด ๋ฌธ์ œ๊ฐ€ ๋ฐœ๊ฒฌ๋˜์—ˆ๋‹ค๊ณ  ๋งํ•˜์ง€๋งŒ diff์—์„œ ์ธ๋ผ์ธ ๊ฒ€ํ†  ๋Œ“๊ธ€์„ ๋ณด์ง€ ๋ชปํ•˜๋ฉด ๊ฒฐ๊ณผ๊ฐ€ ํ‘œ์‹œ๋˜๋Š” ๋‹ค๋ฅธ ์œ„์น˜๋ฅผ ํ™•์ธํ•˜์‹ญ์‹œ์˜ค:

  • Check run Details: Checks ํƒญ์˜ Claude Code Review ํ™•์ธ ์˜†์— ์žˆ๋Š” Details๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค. ์‹ฌ๊ฐ๋„ ํ…Œ์ด๋ธ”์€ ์ธ๋ผ์ธ ๋Œ“๊ธ€์ด ์ˆ˜๋ฝ๋˜์—ˆ๋Š”์ง€ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํŒŒ์ผ, ๋ผ์ธ ๋ฐ ์š”์•ฝ๊ณผ ํ•จ๊ป˜ ๋ชจ๋“  ๊ฒฐ๊ณผ๋ฅผ ๋‚˜์—ดํ•ฉ๋‹ˆ๋‹ค.
  • Files changed annotations: PR์˜ Files changed ํƒญ์„ ์—ฝ๋‹ˆ๋‹ค. ๊ฒฐ๊ณผ๋Š” ๊ฒ€ํ†  ๋Œ“๊ธ€๊ณผ ๋ณ„๋„๋กœ diff ๋ผ์ธ์— ์ง์ ‘ ์ฒจ๋ถ€๋œ ์ฃผ์„์œผ๋กœ ๋ Œ๋”๋ง๋ฉ๋‹ˆ๋‹ค.
  • Review body: ๊ฒ€ํ† ๊ฐ€ ์‹คํ–‰ ์ค‘์ธ ๋™์•ˆ PR์„ ํ‘ธ์‹œํ•œ ๊ฒฝ์šฐ ์ผ๋ถ€ ๊ฒฐ๊ณผ๋Š” ํ˜„์žฌ diff์— ๋” ์ด์ƒ ์กด์žฌํ•˜์ง€ ์•Š๋Š” ๋ผ์ธ์„ ์ฐธ์กฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋“ค์€ ์ธ๋ผ์ธ ๋Œ“๊ธ€์ด ์•„๋‹Œ ๊ฒ€ํ†  ๋ณธ๋ฌธ ํ…์ŠคํŠธ์˜ Additional findings ์ œ๋ชฉ ์•„๋ž˜์— ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

๋กœ์ปฌ์—์„œ diff ๊ฒ€ํ† 

/code-review ๋ช…๋ น์€ GitHub ์•ฑ์„ ์„ค์น˜ํ•˜์ง€ ์•Š๊ณ  ํ„ฐ๋ฏธ๋„์—์„œ diff๋ฅผ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค. Claude Code ์„ธ์…˜์—์„œ ์‹คํ–‰ํ•˜์‹ญ์‹œ์˜ค: ์ •ํ™•์„ฑ ๋ฒ„๊ทธ ๋ฐ {/* min-version: 2.1.151 */}์žฌ์‚ฌ์šฉ, ๋‹จ์ˆœํ™” ๋ฐ ํšจ์œจ์„ฑ ์ •๋ฆฌ๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ์ ์œผ๋กœ ๋กœ์ปฌ ๊ฒ€ํ† ๋Š” ์—…์ŠคํŠธ๋ฆผ๋ณด๋‹ค ์•ž์„  ๋ธŒ๋žœ์น˜์˜ ์ปค๋ฐ‹๊ณผ ์ž‘์—… ํŠธ๋ฆฌ์˜ ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. --comment๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ๊ฒฐ๊ณผ๋ฅผ ์ธ๋ผ์ธ PR ๋Œ“๊ธ€๋กœ ๊ฒŒ์‹œํ•˜๊ฑฐ๋‚˜ --fix๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ๊ฒ€ํ†  ํ›„ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์—… ํŠธ๋ฆฌ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‚ฎ์€ ๋…ธ๋ ฅ ์ˆ˜์ค€์€ ๋” ์ ์€ ์ˆ˜์˜ ๋†’์€ ์‹ ๋ขฐ๋„ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ˜๋ฉด, high๋ถ€ํ„ฐ max๊นŒ์ง€๋Š” ๋” ๊ด‘๋ฒ”์œ„ํ•œ ๋ฒ”์œ„๋ฅผ ์ œ๊ณตํ•˜๋ฉฐ ๋ถˆํ™•์‹คํ•œ ๊ฒฐ๊ณผ๋ฅผ ํฌํ•จํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋…ธ๋ ฅ ์ธ์ˆ˜ ์—†์ด ๊ฒ€ํ† ๋Š” ์„ธ์…˜์˜ ํ˜„์žฌ ๋…ธ๋ ฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ๊ธฐ๋ณธ diff ๋Œ€์‹  ๋‹ค๋ฅธ ํ•ญ๋ชฉ์„ ๊ฒ€ํ† ํ•˜๋ ค๋ฉด ๋Œ€์ƒ์„ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค: ํŒŒ์ผ ๊ฒฝ๋กœ, PR ๋ฒˆํ˜ธ, ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ๋˜๋Š” main...my-feature์™€ ๊ฐ™์€ ref ๋ฒ”์œ„์ž…๋‹ˆ๋‹ค. ref ๋ฒ”์œ„ ํ˜•์‹์€ ๋ธŒ๋žœ์น˜์˜ ์—…์ŠคํŠธ๋ฆผ์ด ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋Š”์ง€์™€ ๊ด€๊ณ„์—†์ด my-feature์—์„œ main์œผ๋กœ์˜ ํ’€ ์š”์ฒญ์ด ํฌํ•จํ•  ์ปค๋ฐ‹๋œ diff๋ฅผ ๊ฒ€ํ† ํ•ฉ๋‹ˆ๋‹ค.

/code-review ultra --fix๋Š” ํด๋ผ์šฐ๋“œ์—์„œ ๋” ๊นŠ์€ ultrareview๋ฅผ ์‹คํ–‰ํ•œ ๋‹ค์Œ ์„ธ์…˜์œผ๋กœ ๋Œ์•„์˜ฌ ๋•Œ ๊ฒฐ๊ณผ๋ฅผ ์ž‘์—… ํŠธ๋ฆฌ์— ์ ์šฉํ•ฉ๋‹ˆ๋‹ค. Ultrareview๋Š” ์ž์ฒด ๋ฒ”์œ„๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค: ํ˜„์žฌ ๋ธŒ๋žœ์น˜์™€ ์ €์žฅ์†Œ์˜ ๊ธฐ๋ณธ ๋ธŒ๋žœ์น˜, ๊ทธ๋ฆฌ๊ณ  ์ž‘์—… ํŠธ๋ฆฌ์˜ ์ปค๋ฐ‹๋˜์ง€ ์•Š์€ ๋ฐ ์Šคํ…Œ์ด์ง•๋œ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค.

์ด ๋ช…๋ น์€ v2.1.147 ์ด์ „์— /simplify๋กœ ๋ช…๋ช…๋˜์—ˆ์œผ๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ–ˆ์Šต๋‹ˆ๋‹ค. {/* min-version: 2.1.154 */}v2.1.154๋ถ€ํ„ฐ /simplify๋Š” ๋ฒ„๊ทธ๋ฅผ ์ฐพ์ง€ ์•Š๊ณ  ์ˆ˜์ • ์‚ฌํ•ญ์„ ์ ์šฉํ•˜๋Š” ๋ณ„๋„์˜ ์ •๋ฆฌ ์ „์šฉ ๊ฒ€ํ† ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค. ๋ฒ„๊ทธ ์ฐพ๊ธฐ๋ฅผ ์œ„ํ•ด /simplify๋ฅผ ์Šคํฌ๋ฆฝํŠธํ–ˆ๋‹ค๋ฉด ๋ณ€๊ฒฝ๋˜์ง€ ์•Š์€ /code-review --fix๋กœ ์ „ํ™˜ํ•˜์‹ญ์‹œ์˜ค.

Code Review๋Š” Claude Code์˜ ๋‚˜๋จธ์ง€ ๋ถ€๋ถ„๊ณผ ํ•จ๊ป˜ ์ž‘๋™ํ•˜๋„๋ก ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. PR์„ ์—ด๊ธฐ ์ „์— ๋กœ์ปฌ์—์„œ ๊ฒ€ํ† ๋ฅผ ์‹คํ–‰ํ•˜๊ฑฐ๋‚˜, ์ž์ฒด ํ˜ธ์ŠคํŒ… ์„ค์ •์ด ํ•„์š”ํ•˜๊ฑฐ๋‚˜, CLAUDE.md๊ฐ€ ๋„๊ตฌ ์ „์ฒด์—์„œ Claude์˜ ๋™์ž‘์„ ํ˜•์„ฑํ•˜๋Š” ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋” ๊นŠ์ด ์•Œ๊ณ  ์‹ถ๋‹ค๋ฉด ๋‹ค์Œ ํŽ˜์ด์ง€๊ฐ€ ์ข‹์€ ๋‹ค์Œ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค:

  • Commands: ๋กœ์ปฌ Claude Code ์„ธ์…˜์—์„œ /code-review๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ‘ธ์‹œ ์ „์— diff๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค
  • GitHub Actions: ์ฝ”๋“œ ๊ฒ€ํ†  ์ด์ƒ์˜ ์‚ฌ์šฉ์ž ์ •์˜ ์ž๋™ํ™”๋ฅผ ์œ„ํ•ด ์ž์‹ ์˜ GitHub Actions ์›Œํฌํ”Œ๋กœ์šฐ์—์„œ Claude๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค
  • GitLab CI/CD: GitLab ํŒŒ์ดํ”„๋ผ์ธ์„ ์œ„ํ•œ ์ž์ฒด ํ˜ธ์ŠคํŒ… Claude ํ†ตํ•ฉ
  • Memory: Claude Code ์ „์ฒด์—์„œ CLAUDE.md ํŒŒ์ผ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹
  • Analytics: ์ฝ”๋“œ ๊ฒ€ํ†  ์ด์ƒ์œผ๋กœ Claude Code ์‚ฌ์šฉ๋Ÿ‰์„ ์ถ”์ ํ•ฉ๋‹ˆ๋‹ค