Code Review
๋ค์ค ์์ด์ ํธ ๋ถ์์ ํตํด ์ ์ฒด ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๊ฒํ ํ์ฌ ๋ ผ๋ฆฌ ์ค๋ฅ, ๋ณด์ ์ทจ์ฝ์ ๋ฐ ํ๊ท๋ฅผ ๊ฐ์งํ๋ ์๋ํ๋ PR ๊ฒํ ๋ฅผ ์ค์ ํฉ๋๋ค
Code Review๋ ์ฐ๊ตฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ ์ํ์ด๋ฉฐ Team ๋ฐ Enterprise ๊ตฌ๋ ์์ ์ฌ์ฉ ๊ฐ๋ฅํฉ๋๋ค. Zero Data Retention์ด ํ์ฑํ๋ ์กฐ์ง์์๋ ์ฌ์ฉํ ์ ์์ต๋๋ค.
Code Review๋ GitHub ํ ์์ฒญ์ ๋ถ์ํ๊ณ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ ์ฝ๋ ๋ผ์ธ์ ์ธ๋ผ์ธ ๋๊ธ๋ก ๊ฒฐ๊ณผ๋ฅผ ๊ฒ์ํฉ๋๋ค. ์ ๋ฌธํ๋ ์์ด์ ํธ ์งํฉ์ด ์ ์ฒด ์ฝ๋๋ฒ ์ด์ค์ ๋งฅ๋ฝ์์ ์ฝ๋ ๋ณ๊ฒฝ ์ฌํญ์ ๊ฒํ ํ์ฌ ๋ ผ๋ฆฌ ์ค๋ฅ, ๋ณด์ ์ทจ์ฝ์ , ์์๋ ์ฃ์ง ์ผ์ด์ค ๋ฐ ๋ฏธ๋ฌํ ํ๊ท๋ฅผ ์ฐพ์ต๋๋ค.
๊ฒฐ๊ณผ๋ ์ฌ๊ฐ๋๋ณ๋ก ํ๊ทธ๊ฐ ์ง์ ๋๋ฉฐ PR์ ์น์ธํ๊ฑฐ๋ ์ฐจ๋จํ์ง ์์ผ๋ฏ๋ก ๊ธฐ์กด ๊ฒํ ์ํฌํ๋ก์ฐ๋ ๊ทธ๋๋ก ์ ์ง๋ฉ๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ์ CLAUDE.md ๋๋ REVIEW.md ํ์ผ์ ์ถ๊ฐํ์ฌ Claude๊ฐ ํ๋๊ทธํ๋ ํญ๋ชฉ์ ์กฐ์ ํ ์ ์์ต๋๋ค.
๊ด๋ฆฌ๋๋ ์๋น์ค ๋์ ์์ ์ CI ์ธํ๋ผ์์ Claude๋ฅผ ์คํํ๋ ค๋ฉด GitHub Actions ๋๋ GitLab CI/CD๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ์์ฒด ํธ์คํ GitHub ์ธ์คํด์ค์ ๋ฆฌํฌ์งํ ๋ฆฌ์ ๊ฒฝ์ฐ GitHub Enterprise Server๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
์ด ํ์ด์ง์์ ๋ค๋ฃจ๋ ๋ด์ฉ:
- ๊ฒํ ์๋ ๋ฐฉ์
- ์ค์
@claude review๋ฐ@claude review once๋ฅผ ์ฌ์ฉํ ์๋ ๊ฒํ ํธ๋ฆฌ๊ฑฐCLAUDE.md๋ฐREVIEW.md๋ฅผ ์ฌ์ฉํ ๊ฒํ ์ฌ์ฉ์ ์ ์- ๊ฐ๊ฒฉ
- ์คํจํ ์คํ ๋ฐ ๋๋ฝ๋ ๋๊ธ ๋ฌธ์ ํด๊ฒฐ
- ๋ก์ปฌ์์ diff ๊ฒํ -
/code-review๋ช ๋ น ์ฌ์ฉ
GitHub ์ฑ์ ์ค์นํ์ง ์๊ณ ํฐ๋ฏธ๋์์ ๋ก์ปฌ๋ก diff๋ฅผ ๊ฒํ ํ๋ ค๋ฉด Claude Code ์ธ์
์์ /code-review ๋ช
๋ น์ ์คํํ์ญ์์ค. ๋ก์ปฌ์์ diff ๊ฒํ ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๊ฒํ ์๋ ๋ฐฉ์
๊ด๋ฆฌ์๊ฐ ์กฐ์ง์ ๋ํด 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๋ฅผ ํ์ฑํํ๊ณ ํฌํจํ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ ํํฉ๋๋ค.
Claude Code ๊ด๋ฆฌ์ ์ค์ ์ด๊ธฐ
claude.ai/admin-settings/claude-code๋ก ์ด๋ํ์ฌ Code Review ์น์ ์ ์ฐพ์ต๋๋ค. Claude ์กฐ์ง์ ๋ํ ๊ด๋ฆฌ์ ์ก์ธ์ค ๊ถํ๊ณผ GitHub ์กฐ์ง์ GitHub ์ฑ์ ์ค์นํ ์ ์๋ ๊ถํ์ด ํ์ํฉ๋๋ค.
์ค์ ์์
Setup์ ํด๋ฆญํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด GitHub ์ฑ ์ค์น ํ๋ฆ์ด ์์๋ฉ๋๋ค.
Claude GitHub ์ฑ ์ค์น
ํ๋กฌํํธ๋ฅผ ๋ฐ๋ผ Claude GitHub ์ฑ์ GitHub ์กฐ์ง์ ์ค์นํฉ๋๋ค. ์ฑ์ ๋ค์ ๋ฆฌํฌ์งํ ๋ฆฌ ๊ถํ์ ์์ฒญํฉ๋๋ค:
- Contents: ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ
- Issues: ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ
- Pull requests: ์ฝ๊ธฐ ๋ฐ ์ฐ๊ธฐ
Code Review๋ ์ฝํ ์ธ ์ ๋ํ ์ฝ๊ธฐ ์ก์ธ์ค์ ํ ์์ฒญ์ ๋ํ ์ฐ๊ธฐ ์ก์ธ์ค๋ฅผ ์ฌ์ฉํฉ๋๋ค. ๋ ๊ด๋ฒ์ํ ๊ถํ ์งํฉ์ ๋์ค์ ํ์ฑํํ๋ ๊ฒฝ์ฐ GitHub Actions๋ ์ง์ํฉ๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ ์ ํ
Code Review๋ฅผ ํ์ฑํํ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ ํํฉ๋๋ค. ๋ฆฌํฌ์งํ ๋ฆฌ๊ฐ ๋ณด์ด์ง ์์ผ๋ฉด ์ค์น ์ค์ Claude GitHub ์ฑ์ ์ก์ธ์ค ๊ถํ์ ๋ถ์ฌํ๋์ง ํ์ธํ์ญ์์ค. ๋์ค์ ๋ ๋ง์ ๋ฆฌํฌ์งํ ๋ฆฌ๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค.
๋ฆฌํฌ์งํ ๋ฆฌ๋ณ ๊ฒํ ํธ๋ฆฌ๊ฑฐ ์ค์
์ค์ ์ด ์๋ฃ๋๋ฉด 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 ์ฌ์ฉ๋์ ์ถ์ ํฉ๋๋ค