Catch the Bugs Your Code Review Misses - Killian Carlsen-Phelan & Taylor Luttrell-Williams, Sonar
ํ ์ค ํต์ฌ
AI๊ฐ ์์ฑํ ์ฝ๋๋ฅผ ์ฌ๋์ด ๋ค ๊ฒํ ํ๊ธฐ ์ด๋ ค์ด ์ํฉ์์, GitHub PR๊ณผ CI ์ปจํ ์คํธ๋ฅผ ํ์ฉํด ์ฝ๋ ๋ณ๊ฒฝ์ ์๋ ๊ฒ์ฆยท์์ ยท๋ณํฉํ๋ Git Guardian/Gitar์ ์ค์ ์ฌ์ฉ๋ฒ์ ๋ณด์ฌ์ฃผ๋ ์ํฌ์์ด๋ค.
์๊ฐ๋ณ ์์ฝ
-
0:00
์๊ฐ Sonar์ ๊ฐ๋ฐ์ ์ฝํ ์ธ ํ์ด AI ์์ฑ ์ฝ๋์ ๋ฌธ์ ๋ฅผ ๋ฐ๊ฒฌํ๋ ๋ฐ์ ๋๋์ง ์๊ณ , ์ค์ ๋ฐฐํฌ ์ ์ ๋นํ์ ์ผ๋ก ๊ฒ์ฆํ๊ณ ๊ณ ์น๋ ๋ฐฉ๋ฒ์ ์ค๋์ ๋ชฉํ๋ก ์ ์ํ๋ค.
-
0:39
๋ฌด๋ฃ ์ฒดํ๊ณผ ์ํฌ์ ์ ์ฅ์ ์ค์ QR ์ฝ๋๋ก 14์ผ Pro ์ฒดํ์ ์์ํ๊ณ ์ ์ฉ GitHub ์ํฌ์ ์ ์ฅ์์ ์ ๊ทผํด ๋ธ๋ผ์ฐ์ ๋ง์ผ๋ก ๋ฐ๋ผ์ฌ ์ ์๋๋ก ์ค๋นํ๋ค. ์ค์น๋ GitHub App๊ณผ ์ ์ฅ์ ์ค์ ์ด ์์ด์ผ ์๋ ๊ฒ์ฆ, ์๋ ๋ณํฉ ๊ฐ์ ๊ธฐ๋ฅ์ ์ค์ตํ ์ ์๋ค.
-
4:19
๋๊ฐ ์์ด์ ํธ๊ฐ ์ด ์ฝ๋๋ฅผ ๊ฒ์ฆํ๋๊ฐ AI ์ฝ๋ฉ ์์ด์ ํธ๊ฐ ์ฝ๋๋ฅผ ๋น ๋ฅด๊ฒ ๋ง์ด ๋ง๋ค์๋ก ๋ฆฌ๋ทฐ ๋ณ๋ชฉ๊ณผ ์ด์ ์ฅ์ ๊ฐ ๋์ด๋๋ฏ๋ก, ๋ ๋น ๋ฅด๊ณ ๋ ์ ํํ ๊ฒ์ฆ ๊ณ์ธต์ด ํ์ํ๋ค๋ ๋ฌธ์ ๋ฅผ ์ง๋๋ค. ๋จ์ํ ๋ฌธ๋ฒยท์ ์ ๋ถ์๋ง์ผ๋ก๋ ์๋์ ๋น์ฆ๋์ค ๊ท์น ์๋ฐ์ ์ก๊ธฐ ์ด๋ ต๋ค.
-
6:46
Gitar๊ฐ ํ๋ ์ผ Gitar๋ PR diff, ์ฝ๋ฉํธ, CI ๋ก๊ทธ, ํ๋ก์ ํธ๋ณ ์ง์นจ ๊ฐ์ ๋ค์ํ ์ปจํ ์คํธ๋ฅผ ๋ชจ์ ๋ณ๊ฒฝ์ ๊ฒ์ฆํ๊ณ , ์คํจ ์์ธ์ ์ง๋จํ๋ฉฐ, ํ์ํ๋ฉด ์๋์ผ๋ก ์์ ๊น์ง ์ํํ๋ค. ๋์ ์ ํธ ๋ ์ก์๋น์ ๋ฐ๋ณต ๊ฒ์ฆ, ๋์๋ณด๋๋ฅผ ํตํ ํฌ๋ช ์ฑ์ด ํต์ฌ ๊ฐ์น๋ก ์ ์๋๋ค.
-
10:30
์ค์ต: ์ ์ฅ์ ํฌํฌํ๊ธฐ ์ํฌ์ ์ ์ฅ์๋ฅผ ์์ ์ ์กฐ์ง ์๋๋ก ํฌํฌํ๊ณ , main๋ง ๋ณต์ฌํ์ง ์๋๋ก ์ฃผ์ํ๋ฉฐ, GitHub Actions์ Gitar ๋์๋ณด๋ ์ค์ ์ ๋ง์ถ๋ค. ์ด๋ ๊ฒ ํด์ผ ์๋ ๋จธ์ง์ ์น์ธ, ๊ทธ๋ฆฌ๊ณ ํฌํฌ๋ ์ ์ฅ์์ ๋ํ Gitar์ ์ฝ๊ธฐ ๊ถํ์ด ์ ์ ๋์ํ๋ค.
-
12:43
Box Office ๋ฐ๋ชจ ์ฑ Box Office๋ ํฐ์ผ ๊ตฌ๋งคยท์ทจ์ยทํ๋ถ๊ณผ QR ์ฒดํฌ์ธ์ ๋ค๋ฃจ๋ ๊ฐ๋จํ Python ์์ ์ด๋ฉฐ, ๊ฐ ๋ธ๋์น๋ณ PR์ ๋ฏธ๋ฆฌ ์ด์ด Gitar ๊ฒํ ๋ฅผ ๋ณ๋ ฌ๋ก ๋๋ฆฐ๋ค. ์ค์ต์ fork๋ฅผ ๊ธฐ์ค ์ ์ฅ์๋ก ์ผ์์ผ ํ๋ฉฐ, ํ ์คํธ๋ ๊ฐ PR๋ง๋ค CI๋ก ์คํ๋๋ค.
-
15:43
์ฒซ ๋ฒ์งธ PR: diff ๋ฐ์ ์จ์ด ์๋ ๋ฒ๊ทธ ํฐ์ผ์ ๋ค๋ฅธ ์ฌ๋์๊ฒ ๋๊ธด ๋ค ์๋ ๊ตฌ๋งค์๊ฐ ์ทจ์ํด ๋ฒ๋ฆฌ๋ฉด ์น๊ตฌ์ ํฐ์ผ๊น์ง ๋ฌดํจ๊ฐ ๋๋ ์ฃ์ง ์ผ์ด์ค๊ฐ ๋ฐ์ํ๋ค. diff์ ๋๋ฌ๋์ง ์๋๋ผ๋ ๊ธฐ์กด ํ๋ถ ๋ก์ง๊ณผ์ ์ํธ์์ฉ์ ์ฝ์ด๋ด์ด, ์ค์ ๋ก ๊นจ์ง๋ ๋น์ฆ๋์ค ๋์์ ์ฐพ์๋ธ๋ค.
-
20:08
ํ ๋ฒ์ ํด๋ฆญ์ผ๋ก ์์ ํ๊ธฐ ์ ์ฉ ๋ฒํผ์ด๋ `Guitar fix` ์ฝ๋ฉํธ๋ง์ผ๋ก ์ ์ปค๋ฐ์ ๋ง๋ค๊ณ , ์ดํ ๊ฒ์ฆ๊ณผ ์ฌ์๋๋ฅผ ์๋์ผ๋ก ๋ฐ๋ณตํด PR์ด ๋ค์ ๋ น์์ด ๋๋๋ก ํ๋ค. ์คํจ ์ง๋จ, ์ฌํธ์, ์ฌ๊ฒ์ฆ์ ๋ฐ๋ณต์ ์ฌ๋์ด ์ง์ ํ์ง ์์๋ ๋๋ค.
-
22:07
๋ ๋ฒ์งธ PR: ๋น์ฆ๋์ค ๊ท์น์ ํ์ต์ํค๊ธฐ ๋ชจ๋ ํ์ ๊ฐ๊ฒฉ์ all-in price์ฌ์ผ ํ๋ค๋ ํ์ฌ ๊ท์น์ฒ๋ผ ์ฝ๋์ ์ง์ ๋๋ฌ๋์ง ์๋ ์ ์ฑ ์ `.gitar/review`์ `.gitar/rules`๋ก ์ฃผ์ ํ ์ ์๋ค. ๊ฐ๊ฒฉ ๊ด๋ จ ํ๋๋ฅผ ํธ์งํ PR์์ ๊ณ ๊ฐ์๊ฒ ๋ณด์ด๋ ๊ฐ์ด ๊ท์น์ ๋ฐ๋ฅด๋์ง ๊ฒ์ฌํด, ๊ธฐ์ ์ ์ผ๋ก๋ ๋ง์๋ ์ฌ์ ์ ํ๋ฆฐ ๋ณ๊ฒฝ์ ๊ฑธ๋ฌ๋ธ๋ค.
-
26:36
์ธ ๋ฒ์งธ PR: CI ์คํจ ์ง๋จ๊ณผ ์๋ ๋ณํฉ ๋ธ๋์น ๊ท์น๊ณผ ์ํ ์ฒดํฌ๋ฅผ ์ค์ ํด ํ ์คํธ๊ฐ ํต๊ณผํด์ผ๋ง ์๋ ๋ณํฉ๋๋๋ก ํ ๋ค, ์คํจํ CI ๋ก๊ทธ๋ฅผ ์ฝ์ด ์ค์บ ๋ก์ง ๋ฆฌํฉํฐ๋ง์ ๊ฒฐํจ์ ์ฐพ์๋ธ๋ค. `guitar auto apply on`๊ณผ `guitar auto merge on`์ ์ผ๋ฉด ์์ ๊ณผ ๊ฒ์ฆ, ๋ณํฉ๊น์ง ํ ํ๋ฆ์ผ๋ก ์๋ํ๋๋ค.
-
33:24
๊ณ ๊ธ ๊ธฐ๋ฅ: ์ ์ฅ์ ๊ฐยทPR ๊ฐ ๋ถ์ Jira, linear, Slack ๊ฐ์ ์ธ๋ถ ๋งฅ๋ฝ์ ์ฐ๊ฒฐํด ๋ณ๊ฒฝ์ด ์ค์ ํฐ์ผ๊ณผ ๋ง๋์ง ๊ฒ์ฆํ๊ณ , ํผ๋๋ฐฑ๊ณผ ๋ฆฌ๋ทฐ ํ์คํ ๋ฆฌ๋ฅผ ํ์ตํด ๋ ์ ๊ตํ ํ๋จ์ ๋ง๋ ๋ค. ๋ํ ์ฌ๋ฌ ์ ์ฅ์๋ ์งํ ์ค์ธ ์ฌ๋ฌ PR ์ฌ์ด์ ์ํธ ์ถฉ๋๊น์ง ๋ถ์ํด, ๊ฐ๋ณ PR์ ํต๊ณผํ์ง๋ง ํจ๊ป ๋ฃ์ผ๋ฉด ๊นจ์ง๋ ๋ฌธ์ ๋ฅผ ์ฐพ๋๋ค.
-
36:54
์ง์์๋ต MCP ์ฐ๊ฒฐ ๊ฐ๋ฅ ์ฌ๋ถ์ knowledge ๊ธฐ๋ฅ์ ์ฐจ์ด์ฒ๋ผ, ์ธ๋ถ ์ปจํ ์คํธ ์์ง ๋ฐฉ์๊ณผ ๋ฆฌ๋ทฐ ์ฑํฅ์ ํ์ตํ๋ ๋ฐฉ์์ ๊ฒฝ๊ณ๋ฅผ ์ค๋ช ํ๋ค. knowledge๋ Gitar๊ฐ ์์ผ๋ก ์ด๋ค ๋ฐฉ์์ผ๋ก ์์ ํ ์ง์ ๋ํ ์ ํธ๋ฅผ ์ ์ฅํ๋ ์ชฝ์ ๊ฐ๊น๊ณ , ์ธ๋ถ ์ฐ๋์ ๋ณ๋์ ํตํฉ ๊ฒฝ๋ก๋ฅผ ํตํด ํ์ฅ๋๋ค.
์ค๋ฌด ์ธ์ฌ์ดํธ
- ์ ์ ๋ถ์๊ณผ ์ฝ๋ ๋ฆฌ๋ทฐ ์์ด์ ํธ๋ ๊ฒฝ์ ๊ด๊ณ๊ฐ ์๋๋ผ ๋ณด์ ๊ด๊ณ์ด๋ฏ๋ก, ๋ณด์ยท๊ตฌ์กฐ ๋ฌธ์ ๋ ๊ธฐ์กด ๋๊ตฌ๋ก, ์๋ยท๋น์ฆ๋์ค ๊ท์น ์๋ฐ์ Gitar ๊ฐ์ ๊ฒ์ฆ ์์ด์ ํธ๋ก ๋๋์ด ์ก๋ ๊ตฌ์ฑ์ด ํจ๊ณผ์ ์ด๋ค.
- PR diff๋ง ๋ณด์ง ๋ง๊ณ ๊ธฐ์กด ๊ธฐ๋ฅ, CI ๋ก๊ทธ, ๋ฌธ์ยท์ฌ๋ยทํฐ์ผ ๊ฐ์ ์ฃผ๋ณ ์ปจํ ์คํธ๊น์ง ํจ๊ป ๋ณด๊ฒ ํด์ผ ์ค์ ๋ฐฐํฌ ์ฌ๊ณ ๋ฅผ ์ค์ผ ์ ์๋ค.
- ์๋ ์์ ๊ณผ ์๋ ๋ณํฉ์ ํ ๋ฒ์ ์ผ๊ธฐ๋ณด๋ค, ์ ์ฅ์๋ณ ๊ท์น๊ณผ ์ํ ์ฒดํฌ๋ฅผ ๋จผ์ ์ ๊ตํ๊ฒ ๋ง๋ ๋ค ๋จ๊ณ์ ์ผ๋ก ํ๋ํ๋ ํธ์ด ์์ ํ๋ค.