Skip to main content

Visual Studio Code์šฉ CodeQL ์„ค์น˜

Visual Studio Code์šฉ CodeQL์„(๋ฅผ) ์‹œ์ž‘ํ•˜๋ ค๋ฉด ์ต์Šคํ…์…˜์„ ์„ค์น˜ํ•˜๊ณ  ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๋ˆ„๊ฐ€ ์ด ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?

CodeQL์€(๋Š”) ๋‹ค์Œ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ ์œ ํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • GitHub.com์˜ ํผ๋ธ”๋ฆญ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ, GitHub CodeQL ์‚ฌ์šฉ ์•ฝ๊ด€ ์ฐธ์กฐ
  • GitHub Code Security๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ์„ค์ •๋œ GitHub Team์˜ ์กฐ์ง ์†Œ์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ

ํ•„์ˆ˜ ์กฐ๊ฑด

CodeQL ์ต์Šคํ…์…˜์—๋Š” ์ตœ์†Œ Visual Studio Code 1.82.0์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฒ„์ „์€ ์ง€์›๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ต์Šคํ…์…˜ ์„ค์น˜

์—ฌ๋Ÿฌ ๊ฐ€์ง€ ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Visual Studio Code ์ต์Šคํ…์…˜์šฉ CodeQL์„(๋ฅผ) ์„ค์น˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ๋ธŒ๋ผ์šฐ์ €์—์„œ Visual Studio Code ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

  • Visual Studio Code์˜ โ€œ์ต์Šคํ…์…˜โ€ ๋ณด๊ธฐ์—์„œ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค.

  • VSIX ํŒŒ์ผ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Visual Studio Code ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ์‚ฌ์šฉ

  1. Visual Studio Code ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค์—์„œ โ€œGitHub Copilotโ€ ํŽ˜์ด์ง€๋กœ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.

  2. ์„ค์น˜๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ ํ™”๋ฉด์˜ ํ”„๋กฌํ”„ํŠธ๋ฅผ ๋”ฐ๋ฆ…๋‹ˆ๋‹ค.

"์ต์Šคํ…์…˜" ๋ณด๊ธฐ์—์„œ ๊ฒ€์ƒ‰

  1. VS Code์—์„œ โ€œ์ต์Šคํ…์…˜โ€ ๋ณด๊ธฐ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

  2. GitHub Copilot์„(๋ฅผ) ๊ฒ€์ƒ‰ํ•œ ๋‹ค์Œ ์„ค์น˜๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

CodeQL VSIX ํŒŒ์ผ ์‚ฌ์šฉ

  1. GitHub์˜ github/vscode-codeql ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์—์„œ CodeQL VSIX ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.

  2. VS Code์—์„œ โ€œ์ต์Šคํ…์…˜โ€ ๋ณด๊ธฐ๋ฅผ ์—ฝ๋‹ˆ๋‹ค.

  3. ์‚ฌ์ด๋“œ๋ฐ”์˜ ์˜ค๋ฅธ์ชฝ ์ƒ๋‹จ์—์„œ ์ค„์ž„ํ‘œ๋ฅผ ํด๋ฆญํ•œ ๋‹ค์Œ VSIX์—์„œ ์„ค์น˜โ€ฆ ๋ฅผ ํด๋ฆญํ•ฉ๋‹ˆ๋‹ค.

  4. 1๋‹จ๊ณ„์—์„œ ๋‹ค์šด๋กœ๋“œํ•œ CodeQL VSIX ํŒŒ์ผ์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.

  5. ํ™”๋ฉด ์ง€์‹œ์— ๋”ฐ๋ผ ์„ค์น˜๋ฅผ ์™„๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

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

์ต์Šคํ…์…˜์—์„œ CodeQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด CodeQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

CodeQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ด๋ฏธ ์ฐพ๊ฑฐ๋‚˜ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ๋งŒ๋“  ๊ฒฝ์šฐ ์ต์Šคํ…์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ CodeQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ CodeQL ์ฟผ๋ฆฌ ์‹คํ–‰์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ์ถ”๊ฐ€ ์ข…์†์„ฑ์„ ๋ชจ๋ธ๋งํ•˜๊ณ  code scanning ๊ฒฐ๊ณผ๋ฅผ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด CodeQL ๋ชจ๋ธ ํŽธ์ง‘๊ธฐ ์‚ฌ์šฉ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ต์Šคํ…์…˜์— ์„ค์น˜๋œ ๊ฒƒ๊ณผ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ CodeQL CLI์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด CodeQL CLI์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ตฌ์„ฑ์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

CodeQL ์ž‘์—… ์˜์—ญ์„ ์„ค์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ์•„๋ณด๋ ค๋ฉด CodeQL ์ž‘์—… ์˜์—ญ ์„ค์ •์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.