Skip to main content

๊ฒฝ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ํƒ์ƒ‰

CodeQL ์ฟผ๋ฆฌ๋ฅผ Visual Studio Code์—์„œ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋กœ๊ทธ๋žจ์„ ํ†ตํ•ด ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ถ”์ ํ•˜๊ณ  ์ž ์žฌ์ ์ธ ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ ์˜์—ญ์„ ๊ฐ•์กฐ ํ‘œ์‹œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋กœ ์ฟผ๋ฆฌ ์ •๋ณด

๊ฒฝ๋กœ ์ฟผ๋ฆฌ๋Š” @kind path-problem ์†์„ฑ์ด ์žˆ๋Š” CodeQL ์ฟผ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ‘œ์ค€ CodeQL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ ์ด๋Ÿฌํ•œ ์—ฌ๋Ÿฌ ํ•ญ๋ชฉ์„ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ‘œ์ค€ CodeQL ๊ฒฝ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ๋ณด์•ˆ ์ทจ์•ฝ์„ฑ์„ ์‹๋ณ„ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ์ˆ˜๋™์œผ๋กœ ์‚ดํŽด๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. CodeQL์—์„œ ๋ฐ์ดํ„ฐ ํ๋ฆ„์„ ์ถ”์ ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ CodeQL ์„ค๋ช…์„œ์˜ ๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋ถ„์„ ์ •๋ณด๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋ฐ์ดํ„ฐ ํ๋ฆ„ ๋ถ„์„ ๋ฐ ๊ธฐ์กด ์ฟผ๋ฆฌ์— ์ต์ˆ™ํ•ด์ง€๋ฉด CodeQL์—์„œ ๊ณ ์œ ํ•œ ๊ฒฝ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์Œ ๋‹จ๊ณ„๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”.

๋กœ์ปฌ๋กœ VS Code์—์„œ ๊ฒฝ๋กœ ์ฟผ๋ฆฌ ์‹คํ–‰

  1. VS Code์—์„œ ๊ฒฝ๋กœ ์ฟผ๋ฆฌ ์—ด๊ธฐ
  2. ์ฟผ๋ฆฌ๊ฐ€ ์—ด๋ ค ์žˆ๋Š” ์ฐฝ์„ ๋งˆ์šฐ์Šค ์˜ค๋ฅธ์ชฝ ๋‹จ์ถ”๋กœ ํด๋ฆญํ•˜๊ณ  CodeQL: ์„ ํƒํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ฟผ๋ฆฌ ์‹คํ–‰์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๋˜๋Š” VS Code Command Palette์—์„œ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ์ฟผ๋ฆฌ ์‹คํ–‰์ด ์™„๋ฃŒ๋˜๋ฉด ๋“œ๋กญ๋‹ค์šด ๋ฉ”๋‰ด alerts ์•„๋ž˜์˜ "๊ฒฐ๊ณผ" ๋ณด๊ธฐ์—์„œ ๊ฒฐ๊ณผ๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ๋Š” ์›๋ณธ ๋ฐ ์‹ฑํฌ ๊ฐ„์˜ ์ •๋ณด ํ๋ฆ„์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.
  4. ๊ฒฐ๊ณผ๋ฅผ ํ™•์žฅํ•˜์—ฌ ๋ฐ์ดํ„ฐ๊ฐ€ ๋”ฐ๋ฅด๋Š” ๊ฐœ๋ณ„ ๋‹จ๊ณ„๋ฅผ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  5. ๊ฐ ๋‹จ๊ณ„๋ฅผ ํด๋ฆญํ•˜์—ฌ ์†Œ์Šค ์ฝ”๋“œ์—์„œ ํ•ด๋‹น ๋‹จ๊ณ„๋กœ ์ด๋™ํ•˜๊ณ  ๋ฌธ์ œ๋ฅผ ์ถ”๊ฐ€๋กœ ์กฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

๋‹ค์Œ ๋‹จ๊ณ„

๋Œ€๊ทœ๋ชจ ๊ฒฝ๋กœ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ค€๋น„๊ฐ€ ๋˜๋ฉด "๋ณ€ํ˜• ๋ถ„์„ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ" ๋ณด๊ธฐ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ GitHub.com์—์„œ ์ตœ๋Œ€ 1,000๊ฐœ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•ด ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ ๋‹ค์ค‘ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ๋ณ€ํ˜• ๋ถ„์„์„ ์‚ฌ์šฉํ•˜์—ฌ ๋Œ€๊ทœ๋ชจ CodeQL ์ฟผ๋ฆฌ ์‹คํ–‰์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์‚ฌ์šฉ์ž ๊ณ ์œ ์˜ ๊ฒฝ๋กœ ์ฟผ๋ฆฌ์— ์˜ฌ๋ฐ”๋ฅธ ํ˜•์‹ ๋ฐ ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ CodeQL ์„ค๋ช…์„œ์˜ ๊ฒฝ๋กœ ์ฟผ๋ฆฌ ๋งŒ๋“ค๊ธฐ๋ฅผ ์ฐธ์กฐํ•˜์„ธ์š”. CodeQL ์„ค๋ช…์„œ์—๋Š” ์ƒˆ ์›๋ณธ ๋ฐ ์‹ฑํฌ๋ฅผ ์ •์˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ž์„ธํ•œ ์ •๋ณด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ถ„์„์— ๋งž๊ฒŒ ํ‘œ์ค€ CodeQL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ํ…œํ”Œ๋ฆฟ ๋ฐ ์˜ˆ์ œ๋„ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.