Skip to main content

ํ…Œ์ŠคํŠธ ์‹คํ–‰

QL ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

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

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

  • GitHub Code Security๋ฅผ ์ง€์›ํ•˜๋Š” ์กฐ์ง ์†Œ์œ  ๋ฆฌํฌ์ง€ํ† ๋ฆฌ

์ด ๋ฌธ์„œ์˜ ๋‚ด์šฉ

์ฐธ๊ณ  ํ•ญ๋ชฉ

์ด ์ฝ˜ํ…์ธ ๋Š” CodeQL CLI์˜ ์ตœ์‹  ๋ฆด๋ฆฌ์Šค์— ๋Œ€ํ•ด ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์ด ์š”์†Œ์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์€ https://github.com/github/codeql-cli-binaries/releases์„(๋ฅผ) ์ฐธ์กฐํ•˜์„ธ์š”.

์ด์ „ ๋ฆด๋ฆฌ์Šค์—์„œ ์ด ๋ช…๋ น์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์˜ต์…˜์˜ ์„ธ๋ถ€ ์ •๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํ„ฐ๋ฏธ๋„์—์„œ ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ --help ๋ช…๋ น์„ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

๊ฐœ์š”

Shell
codeql test run [--threads=<num>] [--ram=<MB>] <options>... -- <test|dir>...

์„ค๋ช…

QL ์ฟผ๋ฆฌ์— ๋Œ€ํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.

์˜ต์…˜

๊ธฐ๋ณธ ์˜ต์…˜

<test|dir>...

๊ฐ ์ธ์ˆ˜๋Š” ๋‹ค์Œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค.

  • ์‹คํ–‰ํ•  ํ…Œ์ŠคํŠธ๋ฅผ ์ •์˜ํ•˜๋Š” .ql ๋˜๋Š” .qlref ํŒŒ์ผ์ž…๋‹ˆ๋‹ค.
  • ์‹คํ–‰ํ•  ํŒŒ์ผ์„ ์žฌ๊ท€์ ์œผ๋กœ ๊ฒ€์ƒ‰ํ•  ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค.

--failing-exitcode=<code>

[๊ณ ๊ธ‰] ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝ์šฐ ์ƒ์„ฑํ•  ์ข…๋ฃŒ ์ฝ”๋“œ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ 1์ด์ง€๋งŒ ์ถœ๋ ฅ์„ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜๋Š” ๋„๊ตฌ๋Š” 0์œผ๋กœ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--format=<fmt>

์ถœ๋ ฅ ํ˜•์‹์„ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค. ๊ฐ€๋Šฅํ•œ ์„ ํƒ ์‚ฌํ•ญ:

text (๊ธฐ๋ณธ๊ฐ’): ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ํ…์ŠคํŠธ ๋ Œ๋”๋ง์ž…๋‹ˆ๋‹ค.

json: ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ๊ฐœ์ฒด์˜ ์ŠคํŠธ๋ฆฌ๋ฐ๋œ JSON ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

betterjson: ์ด๋ฒคํŠธ ๊ฐœ์ฒด์˜ ์ŠคํŠธ๋ฆฌ๋ฐ๋œ JSON ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

jsonz: 0์œผ๋กœ ๋๋‚˜๋Š” JSON ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ ๊ฐœ์ฒด์˜ ์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค.

betterjsonz: 0์œผ๋กœ ๋๋‚˜๋Š” JSON ์ด๋ฒคํŠธ ๊ฐœ์ฒด์˜ ์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค.

betterjson ๋ฐ betterjsonz ํ˜•์‹์˜ ๊ฒฝ์šฐ ๊ฐ ์ด๋ฒคํŠธ์—๋Š” ์ด๋ฒคํŠธ์˜ ์œ ํ˜•์„ ์ง€์ •ํ•˜๋Š” type ์†์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜์ค‘์— ์ƒˆ๋กœ์šด ์ด๋ฒคํŠธ ์œ ํ˜•์ด ์ถ”๊ฐ€๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์†Œ๋น„์ž๋Š” ์ธ์‹ํ•  ์ˆ˜ ์—†๋Š” kind ์†์„ฑ์ด ์žˆ๋Š” ๋ชจ๋“  ์ด๋ฒคํŠธ๋ฅผ ๋ฌด์‹œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--[no-]keep-databases

[๊ณ ๊ธ‰] ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“  ํ…Œ์ŠคํŠธ๊ฐ€ ํ†ต๊ณผํ•˜๋”๋ผ๋„ ํ…Œ์ŠคํŠธ ์ฟผ๋ฆฌ๋ฅผ ์‹คํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ์ถ”์ถœ๋œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค. (ํ…Œ์ŠคํŠธ๊ฐ€ _์‹คํŒจ_ํ•œ ๊ฒฝ์šฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ•ญ์ƒ ๋‚จ์•„ ์žˆ์Šต๋‹ˆ๋‹ค).

--[no-]fast-compilation

[์‚ฌ์šฉ๋˜์ง€ ์•Š์Œ] [๊ณ ๊ธ‰] ํ…Œ์ŠคํŠธ ์ฟผ๋ฆฌ๋ฅผ ์ปดํŒŒ์ผ๋งํ•  ๋•Œ ํŠนํžˆ ๋А๋ฆฐ ์ตœ์ ํ™” ๋‹จ๊ณ„๋ฅผ ์ƒ๋žตํ•ฉ๋‹ˆ๋‹ค.

--[no-]learn

[๊ณ ๊ธ‰] ํ…Œ์ŠคํŠธ๊ฐ€ ์˜ˆ๊ธฐ์น˜ ์•Š์€ ์ถœ๋ ฅ์„ ์ƒ์„ฑํ•˜๋Š” ๊ฒฝ์šฐ ์‹คํŒจํ•˜๋Š” ๋Œ€์‹  ์‹ค์ œ ์ถœ๋ ฅ๊ณผ ์ผ์น˜ํ•˜๋„๋ก .expected ํŒŒ์ผ์„ ์—…๋ฐ์ดํŠธํ•˜์—ฌ ํ†ต๊ณผํ•˜๋„๋ก ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ์—์„œ๋„ ์ฟผ๋ฆฌํ•  ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋งŒ๋“ค์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ์™€ ๊ฐ™์ด ํ…Œ์ŠคํŠธ๊ฐ€ ์‹คํŒจํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--consistency-queries=<dir>

[๊ณ ๊ธ‰] ๊ฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด ์‹คํ–‰๋  ์ผ๊ด€์„ฑ ์ฟผ๋ฆฌ๊ฐ€ ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ์ž…๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— .expected ํŒŒ์ผ์ด ์žˆ๋Š” CONSISTENCY ํ•˜์œ„ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ํฌํ•จ๋˜์ง€ ์•Š๋Š” ํ•œ ํ•ด๋‹น ์ฟผ๋ฆฌ๋Š” ์–ด๋–ค ์ถœ๋ ฅ๋„ ์ƒ์„ฑํ•ด์„œ๋Š” ์•ˆ ๋ฉ๋‹ˆ๋‹ค(๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•œ ๊ฒฝ์šฐ ์ œ์™ธ). ์ฃผ๋กœ ์ถ”์ถœ๊ธฐ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค.

--[no-]check-databases

[๊ณ ๊ธ‰] ๋งŒ๋“  ๊ฐ ํ…Œ์ŠคํŠธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•ด codeql dataset check๋ฅผ ์‹คํ–‰ํ•˜๊ณ  ๋ถˆ์ผ์น˜๊ฐ€ ๊ฐ์ง€๋˜๋ฉด ์‹คํŒจ๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค. ์ฃผ๋กœ ์ถ”์ถœ๊ธฐ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋Š” ๋ฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋Œ€ํ•œ ๊ฒ€์‚ฌ๊ฐ€(์ผ์‹œ์ ์œผ๋กœ!) ์‹คํŒจํ•  ๊ฒƒ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ ํ…Œ์ŠคํŠธ ๋””๋ ‰ํ„ฐ๋ฆฌ์— DB-CHECK.expected ํŒŒ์ผ์„ ๋ฐฐ์น˜ํ•˜์„ธ์š”.

--[no-]show-extractor-output

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

-M, --ram=<MB>

ํ…Œ์ŠคํŠธ ์‹คํ–‰๊ธฐ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ด RAM ์–‘์„ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

--slice=<N/M>

[๊ณ ๊ธ‰] ํ…Œ์ŠคํŠธ ์‚ฌ๋ก€๋ฅผ ๋Œ€๋žต ๊ฐ™์€ ํฌ๊ธฐ์˜ _M_๊ฐœ์˜ ์กฐ๊ฐ์œผ๋กœ ๋‚˜๋ˆ„๊ณ  ๊ทธ ์ค‘ Nth๋ฒˆ์งธ ์กฐ๊ฐ๋งŒ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ…Œ์ŠคํŠธ ํ”„๋กœ์„ธ์Šค์˜ ์ˆ˜๋™ ๋ณ‘๋ ฌํ™”์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--[no-]strict-test-discovery

[๊ณ ๊ธ‰] ํ…Œ์ŠคํŠธ๋กœ ํ™•๊ณ ํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ์ฟผ๋ฆฌ๋งŒ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ชจ๋“œ๋Š” ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ •์˜ํ•˜๋Š” .ql ํŒŒ์ผ๊ณผ ์œ ์šฉํ•œ ์ฟผ๋ฆฌ์ธ .ql ํŒŒ์ผ์„ ๊ตฌ๋ถ„ํ•˜๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด ์˜ต์…˜์€ ๋””๋ ‰ํ„ฐ๋ฆฌ ํŠธ๋ฆฌ์˜ ํŒŒ์ผ ์ •๋ ฌ ๋ฐฉ์‹์— ๋Œ€ํ•œ ์‚ฌ์ „ ์ง€์‹์— ์˜์กดํ•˜์ง€ ์•Š๊ณ  ๋””๋ ‰ํ„ฐ๋ฆฌ ํŠธ๋ฆฌ์˜ ๋ชจ๋“  ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์‹๋ณ„ํ•ด์•ผ ํ•˜๋Š” IDE์™€ ๊ฐ™์€ ๋„๊ตฌ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

qlpack.yml์ด tests ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ ์–ธํ•˜๋Š” QL ํŒฉ ๋‚ด์—์„œ ํ•ด๋‹น ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ๋ชจ๋“  .ql ํŒŒ์ผ์€ ํ…Œ์ŠคํŠธ๋กœ ๊ฐ„์ฃผ๋˜๋ฉฐ ๊ทธ ์™ธ๋ถ€์˜ .ql ํŒŒ์ผ์€ ๋ฌด์‹œ๋ฉ๋‹ˆ๋‹ค. tests ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์„ ์–ธํ•˜์ง€ ์•Š๋Š” QL ํŒฉ์—์„œ .ql ํŒŒ์ผ์€ ํ•ด๋‹น .expected ํŒŒ์ผ์ด ์žˆ๋Š” ๊ฒฝ์šฐ์—๋งŒ ํ…Œ์ŠคํŠธ๋กœ ์‹๋ณ„๋ฉ๋‹ˆ๋‹ค.

์ผ๊ด€์„ฑ์„ ์œ„ํ•ด .qlref ํŒŒ์ผ์ด ์‹ค์ œ๋กœ ํ…Œ์ŠคํŠธ๊ฐ€ ์•„๋‹Œ ํŒŒ์ผ์ผ ์ˆ˜ ์—†๋”๋ผ๋„ .qlref ํŒŒ์ผ์€ .ql ํŒŒ์ผ๊ณผ ๋™์ผํ•œ ๊ทœ์น™์œผ๋กœ ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ์— ์‚ฌ์šฉ๋˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ์ถ”์ถœ๊ธฐ๋ฅผ ์ฐพ๋Š” ์˜ต์…˜

--search-path=<dir>[:<dir>...]

QL ํŒฉ์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. ๊ฐ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” QL ํŒฉ(๋˜๋Š” ๋ฃจํŠธ์— .codeqlmanifest.json ํŒŒ์ผ์ด ํฌํ•จ๋œ ํŒฉ ๋ฒˆ๋“ค) ๋˜๋Š” ๊ทธ๋Ÿฌํ•œ ๋””๋ ‰ํ„ฐ๋ฆฌ ํ•˜๋‚˜ ์ด์ƒ์˜ ์ง๊ณ„ ๋ถ€๋ชจ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฒฝ๋กœ์— ๋‘˜ ์ด์ƒ์˜ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ํฌํ•จ๋œ ๊ฒฝ์šฐ ๋””๋ ‰ํ„ฐ๋ฆฌ์˜ ์ˆœ์„œ๊ฐ€ ์šฐ์„  ์ˆœ์œ„๋ฅผ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ํ™•์ธํ•ด์•ผ ํ•˜๋Š” ํŒฉ ์ด๋ฆ„์ด ๋””๋ ‰ํ„ฐ๋ฆฌ ํŠธ๋ฆฌ ์ค‘ ๋‘˜ ์ด์ƒ์—์„œ ์ผ์น˜ํ•˜๋Š” ๊ฒฝ์šฐ ๋จผ์ € ์ง€์ •๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ๊ฐ€ ์šฐ์„ ํ•ฉ๋‹ˆ๋‹ค.

์˜คํ”ˆ ์†Œ์Šค CodeQL ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ์ฒดํฌ ์•„์›ƒ์—์„œ ์ด๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋ฉด ํ•ด๋‹น ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ์žˆ๋Š” ์–ธ์–ด ์ค‘ ํ•˜๋‚˜๋ฅผ ์ฟผ๋ฆฌํ•  ๋•Œ ์ž‘๋™ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์••์ถ•์„ ํ‘ผ CodeQL ํˆด์ฒด์ธ์˜ ํ˜•์ œ๋กœ CodeQL ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฒดํฌ ์•„์›ƒํ•œ ๊ฒฝ์šฐ ์ด ์˜ต์…˜์„ ์ง€์ •ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ํ˜•์ œ ๋””๋ ‰ํ„ฐ๋ฆฌ๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ๋Š” ์ฐพ์„ ์ˆ˜ ์—†๋Š” QL ํŒฉ์œผ๋กœ ํ•ญ์ƒ ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค. (์ด ๊ธฐ๋ณธ๊ฐ’์ด ์ž‘๋™ํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ ์‚ฌ์šฉ์ž๋ณ„ ๊ตฌ์„ฑ ํŒŒ์ผ์—์„œ --search-path๋ฅผ ํ•œ ๋ฒˆ๋งŒ ์„ค์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค).

(์ฐธ๊ณ : Windows์—์„œ๋Š” ๊ฒฝ๋กœ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๊ฐ€ ;์ž…๋‹ˆ๋‹ค.)

--additional-packs=<dir>[:<dir>...]

์ด ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ด ์ง€์ •๋œ ๊ฒฝ์šฐ --search-path์— ์žˆ๋Š” ๋””๋ ‰ํ„ฐ๋ฆฌ๋ณด๋‹ค ๋จผ์ € ํŒฉ์ด ๊ฒ€์ƒ‰๋ฉ๋‹ˆ๋‹ค. ์ด ์‚ฌ์ด์˜ ์ˆœ์„œ๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด ๋ชฉ๋ก์„ ํ†ตํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๋‘ ์œ„์น˜์—์„œ ํŒฉ ์ด๋ฆ„์„ ์ฐพ์„ ๊ฒฝ์šฐ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค.

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

(์ฐธ๊ณ : Windows์—์„œ๋Š” ๊ฒฝ๋กœ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๊ฐ€ ;์ž…๋‹ˆ๋‹ค.)

--library-path=<dir>[:<dir>...]

[๊ณ ๊ธ‰] QL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์˜ ์›์‹œ ๊ฐ€์ ธ์˜ค๊ธฐ ๊ฒ€์ƒ‰ ๊ฒฝ๋กœ์— ์ถ”๊ฐ€๋  ์„ ํƒ์  ๋””๋ ‰ํ„ฐ๋ฆฌ ๋ชฉ๋ก์ž…๋‹ˆ๋‹ค. QL ํŒฉ์œผ๋กœ ํŒจํ‚ค์ง€๋˜์ง€ ์•Š์€ QL ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ์—๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

(์ฐธ๊ณ : Windows์—์„œ๋Š” ๊ฒฝ๋กœ ๊ตฌ๋ถ„ ๊ธฐํ˜ธ๊ฐ€ ;์ž…๋‹ˆ๋‹ค.)

--dbscheme=<file>

[๊ณ ๊ธ‰] ์ปดํŒŒ์ผํ•ด์•ผ ํ•˜๋Š” dbscheme ์ฟผ๋ฆฌ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ •์˜ํ•ฉ๋‹ˆ๋‹ค. ์ž์‹ ์ด ์ˆ˜ํ–‰ํ•˜๊ณ  ์žˆ๋Š” ์ž‘์—…์— ๋Œ€ํ•ด ๋งค์šฐ ํ™•์‹ ํ•˜๋Š” ํ˜ธ์ถœ์ž์— ์˜ํ•ด์„œ๋งŒ ์ง€์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

--compilation-cache=<dir>

[๊ณ ๊ธ‰] ์ปดํŒŒ์ผ ์บ์‹œ๋กœ ์‚ฌ์šฉํ•  ์ถ”๊ฐ€ ๋””๋ ‰ํ„ฐ๋ฆฌ๋ฅผ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

--no-default-compilation-cache

[๊ณ ๊ธ‰] ์ฟผ๋ฆฌ๋ฅผ ํฌํ•จํ•˜๋Š” QL ํŒฉ ๋˜๋Š” CodeQL ํˆด์ฒด์ธ ๋””๋ ‰ํ„ฐ๋ฆฌ์™€ ๊ฐ™์€ ํ‘œ์ค€ ์œ„์น˜์—์„œ ์ปดํŒŒ์ผ ์บ์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

CodeQL ํŒจํ‚ค์ง€ ๊ด€๋ฆฌ์ž๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์˜ต์…˜

--registries-auth-stdin

์‰ผํ‘œ๋กœ ๊ตฌ๋ถ„๋œ <registry_url>=<token> ์Œ ๋ชฉ๋ก์„ ์ „๋‹ฌํ•˜์—ฌ GitHub Enterprise Server ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด https://containers.GHEHOSTNAME1/v2/=TOKEN1,https://containers.GHEHOSTNAME2/v2/=TOKEN2๋ฅผ ์ „๋‹ฌํ•˜์—ฌ ๋‘ ๊ฐœ์˜ GitHub Enterprise Server ์ธ์Šคํ„ด์Šค์— ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด CODEQL_REGISTRIES_AUTH ๋ฐ GITHUB_TOKEN ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์žฌ์ •์˜๋ฉ๋‹ˆ๋‹ค. github.com ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์—๋งŒ ์ธ์ฆํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ๋” ๊ฐ„๋‹จํ•œ --github-auth-stdin ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ์ธ์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

--github-auth-stdin

ํ‘œ์ค€ ์ž…๋ ฅ์„ ํ†ตํ•ด github.com์— GitHub Apps ํ† ํฐ ๋˜๋Š” ๊ฐœ์ธ์šฉ ์•ก์„ธ์Šค ํ† ํฐ์„ ์ „๋‹ฌํ•˜์—ฌ github.com ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

GitHub Enterprise Server ์ปจํ…Œ์ด๋„ˆ ๋ ˆ์ง€์ŠคํŠธ๋ฆฌ์— ์ธ์ฆํ•˜๋ ค๋ฉด --registries-auth-stdin์„ ์ „๋‹ฌํ•˜๊ฑฐ๋‚˜ CODEQL_REGISTRIES_AUTH ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด GITHUB_TOKEN ํ™˜๊ฒฝ ๋ณ€์ˆ˜๊ฐ€ ์žฌ์ •์˜๋ฉ๋‹ˆ๋‹ค.

์ฟผ๋ฆฌ ์ปดํŒŒ์ผ์„ ์ œ์–ดํ•˜๋Š” ์˜ต์…˜

--no-release-compatibility

[๊ณ ๊ธ‰] ์ด์‹์„ฑ์„ ํฌ์ƒํ•˜๊ณ  ์ตœ์‹  ์ปดํŒŒ์ผ๋Ÿฌ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

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

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

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

v2.11.1๋ถ€ํ„ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํ…Œ์ŠคํŠธ ์ฟผ๋ฆฌ ํ‰๊ฐ€๋ฅผ ์ œ์–ดํ•˜๋Š” ์˜ต์…˜

--[no-]tuple-counting

[๊ณ ๊ธ‰] ์ฟผ๋ฆฌ ํ‰๊ฐ€๊ธฐ ๋กœ๊ทธ์— ๊ฐ ํ‰๊ฐ€ ๋‹จ๊ณ„์— ๋Œ€ํ•œ ํŠœํ”Œ ์ˆ˜๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค. --evaluator-log ์˜ต์…˜์ด ์ œ๊ณต๋˜๋ฉด ๋ช…๋ น์œผ๋กœ ์ƒ์„ฑ๋œ ํ…์ŠคํŠธ ๊ธฐ๋ฐ˜ ๋ฐ ๊ตฌ์กฐํ™”๋œ JSON ๋กœ๊ทธ ๋ชจ๋‘์— ํŠœํ”Œ ์ˆ˜๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. (๋ณต์žกํ•œ QL ์ฝ”๋“œ์˜ ์„ฑ๋Šฅ ์ตœ์ ํ™”์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

--timeout=<seconds>

[๊ณ ๊ธ‰] ์ฟผ๋ฆฌ ํ‰๊ฐ€์— ๋Œ€ํ•œ ์‹œ๊ฐ„ ์ œํ•œ ๊ธธ์ด(์ดˆ)๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.

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

์‹œ๊ฐ„ ์ œํ•œ์ด ์ง€์ •๋˜์ง€ ์•Š๊ฑฐ๋‚˜ 0์œผ๋กœ ์ง€์ •๋œ ๊ฒฝ์šฐ ์‹œ๊ฐ„ ์ œํ•œ์ด ์„ค์ •๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(๊ธฐ๋ณธ ์‹œ๊ฐ„ ์ œํ•œ์ด 5๋ถ„์ธ codeql test run ์ œ์™ธ).

-j, --threads=<num>

ํ•ด๋‹น ์Šค๋ ˆ๋“œ ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ฟผ๋ฆฌ๋ฅผ ํ‰๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์€ 1์ž…๋‹ˆ๋‹ค. 0์„ ์ „๋‹ฌํ•˜์—ฌ ์ปดํ“จํ„ฐ์˜ ์ฝ”์–ด๋‹น ํ•˜๋‚˜์˜ ์Šค๋ ˆ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ -_N_์„ ์ „๋‹ฌํ•˜์—ฌ _N_๊ฐœ์˜ ์ฝ”์–ด๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ•˜๋‚˜ ์ด์ƒ์˜ ์Šค๋ ˆ๋“œ๋ฅผ ๊ณ„์† ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์ œ์™ธ).

๊ตฌ์กฐํ™”๋œ ํ‰๊ฐ€๊ธฐ ๋กœ๊ทธ์˜ ์ถœ๋ ฅ์„ ์ œ์–ดํ•˜๋Š” ์˜ต์…˜

--evaluator-log=<file>

[๊ณ ๊ธ‰] ํ‰๊ฐ€๊ธฐ ์„ฑ๋Šฅ์— ๋Œ€ํ•œ ๊ตฌ์กฐํ™”๋œ ๋กœ๊ทธ๋ฅผ ์ง€์ •๋œ ํŒŒ์ผ๋กœ ์ถœ๋ ฅํ•ฉ๋‹ˆ๋‹ค. ์ด ๋กœ๊ทธ ํŒŒ์ผ์˜ ํ˜•์‹์€ ์˜ˆ๊ณ  ์—†์ด ๋ณ€๊ฒฝ๋  ์ˆ˜ ์žˆ์ง€๋งŒ ๋‘ ๊ฐœ์˜ ์ค„ ๋ฐ”๊ฟˆ ๋ฌธ์ž(๊ธฐ๋ณธ๊ฐ’) ๋˜๋Š” --evaluator-log-minify ์˜ต์…˜์ด ์ „๋‹ฌ๋œ ๊ฒฝ์šฐ ํ•˜๋‚˜์˜ ๊ธฐ๋ณธ๊ฐ’ ๋ฌธ์ž๋กœ ๊ตฌ๋ถ„๋œ JSON ๊ฐœ์ฒด ์ŠคํŠธ๋ฆผ์ž…๋‹ˆ๋‹ค. codeql generate log-summary <file>์„(๋ฅผ) ์‚ฌ์šฉํ•˜์—ฌ ์ด ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ณด๋‹ค ์•ˆ์ •์ ์ธ ์š”์•ฝ์„ ์ƒ์„ฑํ•˜๊ณ  ํŒŒ์ผ์„ ์ง์ ‘ ๊ตฌ๋ฌธ ๋ถ„์„ํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ํŒŒ์ผ์ด ์ด๋ฏธ ์žˆ์œผ๋ฉด ๋ฎ์–ด์”๋‹ˆ๋‹ค.

--evaluator-log-minify

[๊ณ ๊ธ‰] --evaluator-log ์˜ต์…˜์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒฝ์šฐ ์ด ์˜ต์…˜๋„ ์ „๋‹ฌํ•˜๋ฉด ์ƒ์„ฑ๋˜๋Š” JSON ๋กœ๊ทธ์˜ ํฌ๊ธฐ๊ฐ€ ์ตœ์†Œํ™”๋˜์ง€๋งŒ ๊ฐ€๋…์„ฑ์ด ํ›จ์”ฌ ๋–จ์–ด์ง‘๋‹ˆ๋‹ค.

๊ฐ€์ ธ์˜จ ํŠธ๋žฉ์„ ๊ฒ€์‚ฌํ•˜๋Š” ์˜ต์…˜

--[no-]check-undefined-labels

[๊ณ ๊ธ‰] ์ •์˜๋˜์ง€ ์•Š์€ ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

--[no-]check-unused-labels

[๊ณ ๊ธ‰] ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

--[no-]check-repeated-labels

[๊ณ ๊ธ‰] ๋ฐ˜๋ณต๋˜๋Š” ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

--[no-]check-redefined-labels

[๊ณ ๊ธ‰] ๋‹ค์‹œ ์ •์˜๋œ ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

--[no-]check-use-before-definition

[๊ณ ๊ธ‰] ์ •์˜ํ•˜๊ธฐ ์ „์— ์‚ฌ์šฉ๋œ ๋ ˆ์ด๋ธ”์— ๋Œ€ํ•œ ์˜ค๋ฅ˜๋ฅผ ๋ณด๊ณ ํ•ฉ๋‹ˆ๋‹ค.

--[no-]fail-on-trap-errors

[๊ณ ๊ธ‰] ํŠธ๋žฉ ๊ฐ€์ ธ์˜ค๊ธฐ ์ค‘์— ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด 0์ด ์•„๋‹Œ ๊ฐ’์œผ๋กœ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค.

--[no-]include-location-in-star

[๊ณ ๊ธ‰] ์ถœ์ฒ˜๊ฐ€ ๋œ ํŠธ๋žฉ ํŒŒ์ผ์˜ ์œ„์น˜๋ฅผ ์ธ์ฝ”๋”ฉํ•˜๋Š” ์—”ํ„ฐํ‹ฐ ID๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ํŠธ๋žฉ ์ƒ์„ฑ๊ธฐ ๋””๋ฒ„๊น…์— ์œ ์šฉํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋ฐ์ดํ„ฐ ์„ธํŠธ์—์„œ ๋งŽ์€ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค.

--[no-]linkage-aware-import

[๊ณ ๊ธ‰] codeql ๋ฐ์ดํ„ฐ ์„ธํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ๊ฐ€ ์—ฐ๊ฒฐ ์ธ์‹ (๊ธฐ๋ณธ๊ฐ’) ์ธ์ง€ ์—ฌ๋ถ€๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋งŒ๋“ค๊ธฐ์˜ ์ด ๋ถ€๋ถ„์ด ๋„ˆ๋ฌด ๋งŽ์€ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ์ด ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋„๋ก ์„ค์ •ํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์™„์„ฑ๋„๋ฅผ ๋‚ฎ์ถ”๋Š” ๋Œ€์‹  ์ž‘์—…์„ ์ง„ํ–‰ํ•˜๋Š” ๋ฐ ๋„์›€์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

v2.15.3๋ถ€ํ„ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ฐ˜ ์˜ต์…˜

-h, --help

์ด ๋„์›€๋ง ํ…์ŠคํŠธ๋ฅผ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค.

-J=<opt>

[๊ณ ๊ธ‰] ๋ช…๋ น์„ ์‹คํ–‰ํ•˜๋Š” JVM์— ์˜ต์…˜์„ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค.

(๊ณต๋ฐฑ์„ ํฌํ•จํ•˜๋Š” ์˜ต์…˜์€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋‹ˆ ์ฃผ์˜ํ•˜์„ธ์š”.)

-v, --verbose

์ถœ๋ ฅ๋˜๋Š” ์ง„ํ–‰๋ฅ  ๋ฉ”์‹œ์ง€ ์ˆ˜๋ฅผ ์ ์ง„์ ์œผ๋กœ ๋Š˜๋ฆฝ๋‹ˆ๋‹ค.

-q, --quiet

์ถœ๋ ฅ๋˜๋Š” ์ง„ํ–‰๋ฅ  ๋ฉ”์‹œ์ง€ ์ˆ˜๋ฅผ ์ ์ง„์ ์œผ๋กœ ์ค„์ž…๋‹ˆ๋‹ค.

--verbosity=<level>

[๊ณ ๊ธ‰] ์„ธ๋ถ€ ์ •๋ณด ํ‘œ์‹œ ์ˆ˜์ค€์„ ์˜ค๋ฅ˜, ๊ฒฝ๊ณ , ์ง„ํ–‰๋ฅ , ์ง„ํ–‰๋ฅ +, ์ง„ํ–‰๋ฅ ++, ์ง„ํ–‰๋ฅ +++ ์ค‘ ํ•˜๋‚˜๋กœ ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. -v ๋ฐ -q๋ฅผ ์žฌ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

--logdir=<dir>

[๊ณ ๊ธ‰] ํƒ€์ž„์Šคํƒฌํ”„์™€ ์‹คํ–‰ ์ค‘์ธ ํ•˜์œ„ ๋ช…๋ น์˜ ์ด๋ฆ„์„ ํฌํ•จํ•˜๋Š” ์ƒ์„ฑ๋œ ์ด๋ฆ„์„ ์‚ฌ์šฉํ•˜์—ฌ ์ง€์ •๋œ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์žˆ๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํŒŒ์ผ์— ์ž์„ธํ•œ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค.

(๋ชจ๋“  ๊ถŒํ•œ์„ ๊ฐ€์ง„ ์ด๋ฆ„์œผ๋กœ ๋กœ๊ทธ ํŒŒ์ผ์„ ์ž‘์„ฑํ•˜๋ ค๋ฉด --log-to-stderr์„(๋ฅผ) ์ง€์ •ํ•˜๊ณ  stderr๋ฅผ ์›ํ•˜๋Š” ๋Œ€๋กœ ๋ฆฌ๋””๋ ‰์…˜ํ•ฉ๋‹ˆ๋‹ค.)

--common-caches=<dir>

[๊ณ ๊ธ‰] ๋‹ค์šด๋กœ๋“œํ•œ QL ํŒฉ ๋ฐ ์ปดํŒŒ์ผ๋œ ์ฟผ๋ฆฌ ๊ณ„ํš๊ณผ ๊ฐ™์ด ์—ฌ๋Ÿฌ CLI ์‹คํ–‰ ๊ฐ„์— ์œ ์ง€๋˜๋Š” ๋””์Šคํฌ์˜ ์บ์‹œ๋œ ๋ฐ์ดํ„ฐ์˜ ์œ„์น˜๋ฅผ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์œผ๋กœ ์„ค์ •ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ์ด ๊ธฐ๋ณธ๊ฐ’์€ ์‚ฌ์šฉ์ž์˜ ํ™ˆ ๋””๋ ‰ํ„ฐ๋ฆฌ์— ์ด๋ฆ„์ด ์ง€์ •๋œ .codeql ๋””๋ ‰ํ„ฐ๋ฆฌ๋กœ ์„ค์ •๋˜๋ฉฐ, ์•„์ง ์—†๋Š” ๊ฒฝ์šฐ ๋งŒ๋“ค์–ด์ง‘๋‹ˆ๋‹ค.

v2.15.2๋ถ€ํ„ฐ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.