Facebook์ ๋ค์ํ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ์ฝ๋๋ฅผ ํฌํจํ์ฌ ๋งค์ฐ ํฐ ์ ์ฅ์์์ ํ๋ก์ ํธ ๋น๋๋ฅผ ๊ตฌ์ฑํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ์๋ก์ด ๋น๋ ์์คํ ์ธ Buck2๋ฅผ ๋์ ํ์ต๋๋ค. ์๋ก์ด ๊ตฌํ๊ณผ ์ด์ ์ Facebook์์ ์ฌ์ฉํ๋ Buck ์์คํ ์ ์ฃผ์ ์ฐจ์ด์ ์ Java ๋์ Rust ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ ์ด์ ๋ธ๋ฆฌ ํ๋ก์ธ์ค์ ํจ์จ์ฑ๊ณผ ์์ฐ์ฑ์ด ํฌ๊ฒ ์ฆ๊ฐํ๋ค๋ ๊ฒ์ ๋๋ค(๋์ผํ ์ธํ๋ผ์ ๋ด๋ถ ํ ์คํธ์์ Buck2๋ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ํํจ). Buck๋ณด๋ค ๋ ๋ฐฐ ๋น ๋ฅธ ์์ ) ์ฝ๋๋ Apache 2.0 ๋ผ์ด์ผ์ค์ ๋ฐ๋ผ ๋ฐฐํฌ๋ฉ๋๋ค.
์ด ์์คํ ์ ํน์ ์ธ์ด์ ์ฝ๋ ์ด์ ๋ธ๋ฆฌ์ ์ฝ๋งค์ด์ง ์๊ณ ์ฆ์ C++, Python, Rust, Kotlin, Erlang, Swift, Objective-C, Haskell ๋ฐ OCaml ์ธ์ด๋ก ์์ฑ๋ ํ๋ก์ ํธ ์ด์ ๋ธ๋ฆฌ๋ฅผ ์ง์ํฉ๋๋ค. , Facebook์์ ์ฌ์ฉ๋ฉ๋๋ค. Bazel๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก Python์ ๊ธฐ๋ฐ์ผ๋ก ํ๋ Starlark ์ธ์ด๋ ์ถ๊ฐ ๊ธฐ๋ฅ์ ์ค๊ณํ๊ณ ์คํฌ๋ฆฝํธ ๋ฐ ๊ท์น์ ์์ฑํ๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. Starlark๋ฅผ ์ฌ์ฉํ๋ฉด ์ด์ ๋ธ๋ฆฌ ์์คํ ์ ๊ธฐ๋ฅ์ ํ์ฅํ๊ณ ์ด์ ๋ธ๋ฆฌ๋ ํ๋ก์ ํธ์ ์ฌ์ฉ๋๋ ํน์ ์ธ์ด๋ฅผ ์ถ์ํํ ์ ์์ต๋๋ค.
๊ฒฐ๊ณผ ์บ์ฑ, ์์ ๋ณ๋ ฌํ, ์์ ์๊ฒฉ ์คํ ์ง์(์๊ฒฉ ๋น๋ ์คํ)์ ํตํด ๊ณ ์ฑ๋ฅ์ด ๋ฌ์ฑ๋ฉ๋๋ค. ์ด์ ๋ธ๋ฆฌ ํ๊ฒฝ์์๋ "๋ฐํ์ฑ"์ด๋ผ๋ ๊ฐ๋ ์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ฆ, ์ด์ ๋ธ๋ฆฌ๋ ์ฝ๋๋ ์ธ๋ถ ์ธ๊ณ์ ์ฐจ๋จ๋๊ณ , ์ด์ ๋ธ๋ฆฌ ํ๋ก์ธ์ค ์ค์ ์ธ๋ถ์์ ์๋ฌด๊ฒ๋ ๋ก๋๋์ง ์์ผ๋ฉฐ, ๋ค๋ฅธ ์์คํ ์์ ์์ ์ ๋ฐ๋ณต์ ์ผ๋ก ์คํํ๋ฉด ๋์ผํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํฉ๋๋ค( ์๋ฅผ ๋ค์ด ๊ฐ๋ฐ์ ์ปดํจํฐ์์ ํ๋ก์ ํธ๋ฅผ ์กฐ๋ฆฝํ ๊ฒฐ๊ณผ๋ ์ฐ์ ํตํฉ ์๋ฒ์ ๋น๋์ ์์ ํ ๋์ผํฉ๋๋ค. ์์กด์ฑ์ด ๋ถ์กฑํ ์ํฉ์ Buck2์์๋ ์ค๋ฅ๋ก ์ธ์๋ฉ๋๋ค.
Buck2์ ์ฃผ์ ๊ธฐ๋ฅ:
- ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ง์ ๊ท์น๊ณผ ์ด์ ๋ธ๋ฆฌ ์์คํ ์ ํต์ฌ์ ์์ ํ ๋ณ๊ฐ์ ๋๋ค. ๊ท์น์ Starlark ์ธ์ด๋ฅผ ์ฌ์ฉํ๊ณ Starlark ํดํท๊ณผ ๊ตฌํ์ Rust๋ก ์์ฑ๋์์ต๋๋ค.
- ์ด์ ๋ธ๋ฆฌ ์์คํ ์ ๋จ์ผ ์ฆ๋ถ ์ข ์์ฑ ๊ทธ๋ํ(๋จ๊ณ ๊ตฌ๋ถ ์์)๋ฅผ ์ฌ์ฉํ๋ฏ๋ก Buck ๋ฐ Bazel์ ๋นํด ์์ ๋ณ๋ ฌํ ๊น์ด๋ฅผ ๋์ด๊ณ ๋ค์ํ ์ ํ์ ์ค๋ฅ๋ฅผ ํผํ ์ ์์ต๋๋ค.
- GitHub์ ๊ฒ์๋ Buck2 ์ฝ๋์ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด ์ง์ ๊ท์น์ Facebook ์ธํ๋ผ์์ ์ฌ์ฉ๋๋ ๋ด๋ถ ๋ฒ์ ๊ณผ ๊ฑฐ์ ๋์ผํฉ๋๋ค(์ ์ผํ ์ฐจ์ด์ ์ Facebook์์ ์ฌ์ฉ๋๋ ์ปดํ์ผ๋ฌ ๋ฐ ์ด์ ๋ธ๋ฆฌ ์๋ฒ์ ๋ฒ์ ์ ๊ดํ ๊ฒ์ ๋๋ค).
- ์กฐ๋ฆฝ ์์คํ ์ ์๊ฒฉ ์๋ฒ์์ ์์ ์ ์คํํ ์ ์๋ ์๊ฒฉ ์์ ์คํ ์์คํ ๊ณผ์ ํตํฉ์ ์ผ๋์ ๋๊ณ ์ค๊ณ๋์์ต๋๋ค. ์๊ฒฉ ์คํ API๋ Bazel๊ณผ ํธํ๋๋ฉฐ Buildbarn ๋ฐ EngFlow์์ ํธํ์ฑ ํ ์คํธ๋ฅผ ๊ฑฐ์ณค์ต๋๋ค.
- ์ ์ฒด ์ ์ฅ์์ ๋ด์ฉ์ด ํ์๋๋ ๊ฐ์ ํ์ผ ์์คํ ๊ณผ์ ํตํฉ์ด ์ ๊ณต๋์ง๋ง ์ค์ ๋ก ์์ ์ ์ ์ฅ์ ์ผ๋ถ์ ํ์ฌ ๋ก์ปฌ ์กฐ๊ฐ์ผ๋ก ์ํ๋ฉ๋๋ค(๊ฐ๋ฐ์๋ ์ ์ฒด ์ ์ฅ์๋ฅผ ๋ณผ ์ ์์ง๋ง ํ์ํ ํ์ผ๋ง ๋ณผ ์ ์์) ์ก์ธ์ค๋๋ ํญ๋ชฉ์ ์ ์ฅ์์์ ์ถ์ถ๋ฉ๋๋ค. Sapling์์ ์ฌ์ฉํ๋ EdenFS ๊ธฐ๋ฐ์ VFS์ Git LFS๋ฅผ ์ง์ํฉ๋๋ค.
์ถ์ฒ : opennet.ru