Bazel 1.0 ๋นŒ๋“œ ์‹œ์Šคํ…œ ์ถœ์‹œ

๋„์ž… ๊ฐœ๋ฐฉํ˜• ์กฐ๋ฆฝ ๋„๊ตฌ ์ถœ์‹œ ๋ฐ”์ ค 1.0, Google ์—”์ง€๋‹ˆ์–ด๊ฐ€ ๊ฐœ๋ฐœํ–ˆ์œผ๋ฉฐ ๋Œ€๋ถ€๋ถ„์˜ ํšŒ์‚ฌ ๋‚ด๋ถ€ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋ฆด๋ฆฌ์Šค 1.0์€ ์˜๋ฏธ๋ก ์  ๋ฆด๋ฆฌ์Šค ๋ฒ„์ „ ๊ด€๋ฆฌ๋กœ์˜ ์ „ํ™˜์„ ์˜๋ฏธํ–ˆ์œผ๋ฉฐ ์ด์ „ ๋ฒ„์ „๊ณผ์˜ ํ˜ธํ™˜์„ฑ์„ ๊นจ๋œจ๋ฆฌ๋Š” ๋งŽ์€ ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋„์ž…ํ•œ ๊ฒƒ์œผ๋กœ๋„ ์œ ๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ ๋ฐฐํฌ์ž Apache 2.0์— ๋”ฐ๋ผ ๋ผ์ด์„ผ์Šค๊ฐ€ ๋ถ€์—ฌ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

Bazel์€ ํ•„์š”ํ•œ ์ปดํŒŒ์ผ๋Ÿฌ์™€ ํ…Œ์ŠคํŠธ๋ฅผ ์‹คํ–‰ํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ๋นŒ๋“œํ•ฉ๋‹ˆ๋‹ค. ๋นŒ๋“œ ์‹œ์Šคํ…œ์€ ์—ฌ๋Ÿฌ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋œ ์ฝ”๋“œ๋ฅผ ํฌํ•จํ•˜๊ณ  ๊ด‘๋ฒ”์œ„ํ•œ ํ…Œ์ŠคํŠธ๊ฐ€ ํ•„์š”ํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ํ”Œ๋žซํผ์šฉ์œผ๋กœ ๊ตฌ์ถ•๋œ ํ”„๋กœ์ ํŠธ์™€ ์ดˆ๋Œ€ํ˜• ํ”„๋กœ์ ํŠธ๋ฅผ ํฌํ•จํ•˜์—ฌ Google ํ”„๋กœ์ ํŠธ๋ฅผ ์ตœ์ ์œผ๋กœ ๋นŒ๋“œํ•˜๋„๋ก ์ฒ˜์Œ๋ถ€ํ„ฐ ์„ค๊ณ„๋˜์—ˆ์Šต๋‹ˆ๋‹ค. Java, C++, Objective-C, Python, Rust, Go ๋ฐ ๊ธฐํƒ€ ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ์ฝ”๋“œ๋ฅผ ๋นŒ๋“œํ•˜๊ณ  ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์€ ๋ฌผ๋ก  Android ๋ฐ iOS์šฉ ๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋นŒ๋“œํ•˜๋Š” ๊ฒƒ๋„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ๊ณผ ์•„ํ‚คํ…์ฒ˜์— ๋Œ€ํ•œ ๋‹จ์ผ ์–ด์…ˆ๋ธ”๋ฆฌ ํŒŒ์ผ์˜ ์‚ฌ์šฉ์ด ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋ณ€๊ฒฝ ์—†์ด ํ•˜๋‚˜์˜ ์–ด์…ˆ๋ธ”๋ฆฌ ํŒŒ์ผ์„ ์„œ๋ฒ„ ์‹œ์Šคํ…œ๊ณผ ๋ชจ๋ฐ”์ผ ์žฅ์น˜ ๋ชจ๋‘์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Bazel์˜ ๋…ํŠนํ•œ ํŠน์ง• ์ค‘์—๋Š” ์กฐ๋ฆฝ ๊ณต์ •์˜ ๋น ๋ฅธ ์†๋„, ์‹ ๋ขฐ์„ฑ ๋ฐ ๋ฐ˜๋ณต์„ฑ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋†’์€ ๋นŒ๋“œ ์†๋„๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด Bazel์€ ๋นŒ๋“œ ํ”„๋กœ์„ธ์Šค์— ์บ์‹ฑ ๋ฐ ๋ณ‘๋ ฌํ™” ๊ธฐ์ˆ ์„ ์ ๊ทน์ ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. BUILD ํŒŒ์ผ์€ ๋ณ€๊ฒฝ ํ›„ ๊ตฌ์„ฑ ์š”์†Œ๋ฅผ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๊ณ (๋ณ€๊ฒฝ๋œ ํŒŒ์ผ๋งŒ ๋‹ค์‹œ ๋นŒ๋“œ) ์–ด์…ˆ๋ธ”๋ฆฌ ํ”„๋กœ์„ธ์Šค๋ฅผ ๋ณ‘๋ ฌํ™”ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ•œ ๊ธฐ์ค€์— ๋”ฐ๋ผ ๋ชจ๋“  ์ข…์†์„ฑ์„ ์™„์ „ํžˆ ์ •์˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ํˆด๋ง์€ ๋˜ํ•œ ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ์กฐ๋ฆฝ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž์˜ ์ปดํ“จํ„ฐ์—์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ๊ตฌ์ถ•ํ•œ ๊ฒฐ๊ณผ๋Š” ์ง€์†์  ํ†ตํ•ฉ ์„œ๋ฒ„์™€ ๊ฐ™์€ ํƒ€์‚ฌ ์‹œ์Šคํ…œ์—์„œ ๊ตฌ์ถ•ํ•œ ๊ฒฐ๊ณผ์™€ ์™„์ „ํžˆ ๋™์ผํ•ฉ๋‹ˆ๋‹ค.

Make ๋ฐ Ninja์™€ ๋‹ฌ๋ฆฌ Bazel์€ ๋นŒ๋“œ ์ค‘์ธ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋ช…๋ น ๋ฐ”์ธ๋”ฉ์„ ์ •์˜ํ•˜๋Š” ๋Œ€์‹  "์‹คํ–‰ ํŒŒ์ผ ๋นŒ๋“œ"์™€ ๊ฐ™์€ ๋ณด๋‹ค ์ถ”์ƒ์ ์ธ ๊ธฐ์„ฑ ๋ธ”๋ก์„ ์‚ฌ์šฉํ•˜๋Š” ์–ด์…ˆ๋ธ”๋ฆฌ ๊ทœ์น™ ์ž‘์„ฑ์— ๋Œ€ํ•œ ๋” ๋†’์€ ์ˆ˜์ค€์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. C++', 'C++๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ตฌ์ถ•' ๋˜๋Š” 'C++์šฉ ํ…Œ์ŠคํŠธ ์‹คํ–‰'๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋Œ€์ƒ ๋ฐ ๋นŒ๋“œ ํ”Œ๋žซํผ ์‹๋ณ„๋„ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. BUILD ํ…์ŠคํŠธ ํŒŒ์ผ์—์„œ ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ ์š”์†Œ๋Š” ๊ฐœ๋ณ„ ํŒŒ์ผ ๋ฐ ์ปดํŒŒ์ผ๋Ÿฌ ํ˜ธ์ถœ ๋ช…๋ น ์ˆ˜์ค€์—์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ณ  ์ผ๋ จ์˜ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ์‹คํ–‰ ํŒŒ์ผ ๋ฐ ํ…Œ์ŠคํŠธ๋กœ ์„ค๋ช…๋ฉ๋‹ˆ๋‹ค. ์ถ”๊ฐ€ ๊ธฐ๋Šฅ์€ ํ™•์žฅ ์—ฐ๊ฒฐ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€