์ฐธ๊ณ ํญ๋ชฉ
์ด ์ฝํ ์ธ ๋ CodeQL CLI์ ์ต์ ๋ฆด๋ฆฌ์ค์ ๋ํด ์ค๋ช ํฉ๋๋ค. ์ด ์์์ ๋ํ ์์ธํ ๋ด์ฉ์ https://github.com/github/codeql-cli-binaries/releases์(๋ฅผ) ์ฐธ์กฐํ์ธ์.
์ด์ ๋ฆด๋ฆฌ์ค์์ ์ด ๋ช
๋ น์ ์ฌ์ฉํ ์ ์๋ ์ต์
์ ์ธ๋ถ ์ ๋ณด๋ฅผ ๋ณด๋ ค๋ฉด ํฐ๋ฏธ๋์์ ์ต์
์ ์ฌ์ฉํ์ฌ --help
๋ช
๋ น์ ์คํํฉ๋๋ค.
๊ฐ์
codeql database finalize [--dbscheme=<file>] [--threads=<num>] [--ram=<MB>] <options>... -- <database>
codeql database finalize [--dbscheme=<file>] [--threads=<num>] [--ram=<MB>] <options>... -- <database>
์ค๋ช
[๋ฐฐ๊ด] ๋ฐ์ดํฐ๋ฒ ์ด์ค ๋ง๋ค๊ธฐ์ ๋ง์ง๋ง ๋จ๊ณ์ ๋๋ค.
codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค init๋ฅผ ์ฌ์ฉํ์ฌ ๋ง๋ ํ codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ถ์ ๋ช ๋ น์ ์ฌ์ฉํ์ฌ ๋ถ์ ๋ฐ์ดํฐ๋ก ์๋๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋ง๋ฌด๋ฆฌํฉ๋๋ค. ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฟผ๋ฆฌํ๋ ค๋ฉด ์ด ์์ ์ด ํ์ํฉ๋๋ค.
์ต์
๊ธฐ๋ณธ ์ต์
<database>
[ํ์] ์์ฑ ์ค์ธ CodeQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ฒฝ๋ก์ ๋๋ค. codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค init์ ์ฌ์ฉํ์ฌ ์ถ์ถํ ์ค๋น๊ฐ ๋์ด ์์ด์ผ ํฉ๋๋ค.
--db-cluster
์ต์
์ด ์ง์ ๋ ๊ฒฝ์ฐ, ์ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๊ฐ ์๋๋ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจํ๋ ๋๋ ํฐ๋ฆฌ์ด๋ฉฐ ์ด๋ฌํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํจ๊ป ์ฒ๋ฆฌ๋ฉ๋๋ค.
--[no-]db-cluster
๋ช ๋ น์ค์ ์ง์ ๋ ๋๋ ํฐ๋ฆฌ๊ฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์ฒด๊ฐ ์๋๋ผ ์์ฑ ์ค์ธ ํ๋ ์ด์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํฌํจํ๋ ๋๋ ํฐ๋ฆฌ์์ ๋ํ๋ ๋๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํจ๊ป ์ฒ๋ฆฌ๋ฉ๋๋ค.
--additional-dbs=<database>[:<database>...]
[๊ณ ๊ธ] ์์ฑ ์ค์ธ ์ถ๊ฐ CodeQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ๊ฒฝ๋ก์ ๋๋ค. ์ด๋ฌํ ๋ฐ์ดํฐ ์์ฒด๋ ์๋ฃ๋์ง ์์ง๋ง ํด๋น ๋ฐ์ดํฐ๋ ์์ฑ๋๋ ์ข ๋ฃ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ํฌํจ๋ฉ๋๋ค. ์ด ์ต์ ์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์ํ๋ ํจ๊ณผ๊ฐ ์์ ์ ์๋ ๊ณ ๊ธ ์ต์ ์ ๋๋ค. ์์ธํ ๋ด์ฉ์ codeql ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ฐ์ ธ์ค๊ธฐ์ ์ค๋ช ์๋ฅผ ์ฐธ์กฐํ์ธ์.
--db-cluster
์ต์
์ด ์ ๊ณต๋๋ฉด ๊ฐ๋ณ CodeQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๊ฐ ๋ ๊ฒ์ผ๋ก ์์๋ฉ๋๋ค.
(์ฐธ๊ณ : Windows์์๋ ๊ฒฝ๋ก ๊ตฌ๋ถ ๊ธฐํธ๊ฐ ;
์
๋๋ค.)
--no-cleanup
[๊ณ ๊ธ] ์ข ๋ฃ ํ ๋ชจ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๋ฆฌ๋ฅผ ํ์ํ์ง ์์ต๋๋ค. ๋๋ฒ๊น ์ฉ๋๋ก ์ ์ฉํฉ๋๋ค.
--no-pre-finalize
[๊ณ ๊ธ] ํ์ฑ CodeQL ์ถ์ถ๊ธฐ์์ ์ง์ ํ ์ฌ์ ์ข ๋ฃ ์คํฌ๋ฆฝํธ๋ฅผ ๊ฑด๋๋๋๋ค.
--[no-]skip-empty
[๊ณ ๊ธ] ๋น๋ ์ค์ ์์ค ์ฝ๋๊ฐ ํ์๋์ง ์์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ๋น์ด ์๋ ๊ฒฝ์ฐ, ์คํจํ๋ ๋์ ๊ฒฝ๊ณ ๋ฅผ ์ถ๋ ฅํฉ๋๋ค. ๋น ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ณ ์ ๋์ง ์์ ์ํ๋ก ๋จ์ ์์ต๋๋ค.
TRAP ๊ฐ์ ธ์ค๊ธฐ ์์ ์ ์ ์ดํ๋ ์ต์
-S, --dbscheme=<file>
[๊ณ ๊ธ] TRAP ํ์ผ์ด ์ค์ํ๋ ๊ฒ์ผ๋ก ๊ฐ์ฃผ๋๋ ์๋ ๊ฒ์๋ dbscheme ์ ์๋ฅผ ์ฌ์ ์ํฉ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ถ์ถ๊ธฐ์์ ๊ฐ์ ธ์ต๋๋ค.
-j, --threads=<num>
๊ฐ์ ธ์ค๊ธฐ ์์ ์ ํด๋น ์ค๋ ๋ ์๋ฅผ ์ฌ์ฉํฉ๋๋ค.
๊ธฐ๋ณธ๊ฐ์ 1์ ๋๋ค. 0์ ์ ๋ฌํ์ฌ ์ปดํจํฐ์ ์ฝ์ด๋น ํ๋์ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ -_N_์ ์ ๋ฌํ์ฌ _N_๊ฐ์ ์ฝ์ด๋ฅผ ์ฌ์ฉํ์ง ์์ ์ํ๋ก ๋ ์ ์์ต๋๋ค(ํ๋ ์ด์์ ์ค๋ ๋๋ฅผ ๊ณ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ์ธ).
-M, --ram=<MB>
๊ฐ์ ธ์ค๊ธฐ ์์ ์ ์ด ์ ๋์ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํ์ ์์ค ๋ฐ์ดํฐ ์ธํธ ์ ๋ฆฌ ์ต์
--max-disk-cache=<MB>
์ค๊ฐ ์ฟผ๋ฆฌ ๊ฒฐ๊ณผ์ ๋ํด ๋์คํฌ ์บ์๊ฐ ์ฌ์ฉํ ์ ์๋ ์ต๋ ๊ณต๊ฐ์ ์ค์ ํฉ๋๋ค.
์ด ํฌ๊ธฐ๊ฐ ๋ช ์์ ์ผ๋ก ๊ตฌ์ฑ๋์ง ์์ ๊ฒฝ์ฐ ํ๊ฐ๊ธฐ๋ ๋ฐ์ดํฐ ์ธํธ์ ํฌ๊ธฐ์ ์ฟผ๋ฆฌ์ ๋ณต์ก์ฑ์ ๋ฐ๋ผ "ํฉ๋ฆฌ์ ์ธ" ์์ ์บ์ ๊ณต๊ฐ์ ์ฌ์ฉํ๋ ค๊ณ ํฉ๋๋ค. ์ด ๊ธฐ๋ณธ ์ฌ์ฉ๋๋ณด๋ค ๋์ ํ๋๋ฅผ ๋ช ์์ ์ผ๋ก ์ค์ ํ๋ฉด ์ถ๊ฐ ์บ์ฑ์ด ๊ฐ๋ฅํด์ง๋ฏ๋ก ์ดํ ์ฟผ๋ฆฌ์ ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
--min-disk-free=<MB>
[๊ณ ๊ธ] ํ์ผ ์์คํ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ๋ชฉํ๋์ ์ค์ ํฉ๋๋ค.
--max-disk-cache
๊ฐ ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ํ์ผ ์์คํ
์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ด ์ด ๊ฐ ์๋๋ก ๋จ์ด์ง๋ฉด ํ๊ฐ๊ธฐ๋ ๋์คํฌ ์บ์ ์ฌ์ฉ๋์ ์ค์ด๋ ค๊ณ ๋
ธ๋ ฅํฉ๋๋ค.
--min-disk-free-pct=<pct>
[๊ณ ๊ธ] ํ์ผ ์์คํ ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ ๋ชฉํ ๋น์จ์ ์ค์ ํฉ๋๋ค.
--max-disk-cache
๊ฐ ์ง์ ๋์ง ์์ ๊ฒฝ์ฐ ํ์ผ ์์คํ
์ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ณต๊ฐ์ด ์ด ๋ฐฑ๋ถ์จ ์๋๋ก ๋จ์ด์ง๋ฉด ํ๊ฐ๊ธฐ๋ ๋์คํฌ ์บ์ ์ฌ์ฉ๋์ ์ค์ด๋ ค๊ณ ๋
ธ๋ ฅํฉ๋๋ค.
--cache-cleanup=<mode>
์บ์๋ฅผ ํธ๋ฆฌ๋ฐํ๋ ๋ฐฉ๋ฒ์ ์ ๊ทน์ ์ผ๋ก ์ ํํฉ๋๋ค. ๋ค์์ ์ ํํ ์ ์์ต๋๋ค.
clear
: ์๋ก ์ถ์ถ๋ ๋ฐ์ดํฐ ์ธํธ์ ์ํ๋ก ํธ๋ฆฌ๋ฐํ์ฌ ์ ์ฒด ์บ์๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
trim
(๊ธฐ๋ณธ๊ฐ): ๋ช
์์ ์ผ๋ก "์บ์๋" ์กฐ๊ฑด์๋ฅผ ์ ์ธํ ๋ชจ๋ ํญ๋ชฉ์ ํธ๋ฆฌ๋ฐํฉ๋๋ค.
fit
: ๋์คํฌ ์บ์์ ๋ํด ์ ์๋ ํฌ๊ธฐ ์ ํ์ด ๊ด์ฐฐ๋์ด ํ์ํ ๋งํผ ์ค๊ฐ์ ์ญ์ ํด์ผ ํฉ๋๋ค.
overlay
: ์ค๋ฒ๋ ์ด๋ฅผ ํ๊ฐํ ๋ ์ ์ฉํ ๋ฐ์ดํฐ๋ง ์๋ผ๋
๋๋ค.
--cleanup-upgrade-backups
๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ๊ทธ๋ ์ด๋๋ก ์ธํด ๋ฐ์ํ๋ ๋ฐฑ์ ๋๋ ํฐ๋ฆฌ๋ฅผ ์ญ์ ํฉ๋๋ค.
๊ฐ์ ธ์จ TRAP ๊ฒ์ฌ ์ต์
--[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
๋ถํฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.