[Rust] workspace

๊ด€๋ จ ํฌ์ŠคํŠธ
https://blog.naver.com/sssang97/222373492319

workspace๋Š” crate๋“ค์„ ๊ฐ™์€ ๋ ˆ๋ฒจ๋กœ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” ๋ชจ๋“ˆ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ์ด๋‹ค.

๊ธฐ์กด์˜ crate local link๊ฐ€ ๊ทธ๋ƒฅ ์ƒํ•˜๊ด€๊ณ„๋กœ๋งŒ ์ข…์†์‹œํ‚ค๋Š” ๊ฒƒ์ด์—ˆ๋‹ค๋ฉด, ์ด๊ฑด ๋™๋“ฑํ•œ ์กฐ๊ฑด์—์„œ crate๋ผ๋ฆฌ ์ƒํ˜ธ์ž‘์šฉํ•˜๋„๋ก ๊ตฌ์„ฑํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.




ํ”„๋กœ์ ํŠธ ๊ตฌ์„ฑ

์šฐ์„  ๋งจ ๋ฐ”๊นฅ์—๋Š” ๊ป๋ฐ๊ธฐ ํ”„๋กœ์ ํŠธ๊ฐ€ ์žˆ์–ด์•ผ ํ•œ๋‹ค.
๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ป๋ฐ๊ธฐ์—๋‹ค๊ฐ€ ์‹ค์งˆ์ ์ธ ๊ธฐ๋Šฅ์„ ํ•  crate๋“ค์„ ์ดˆ๊ธฐํ™”ํ•ด์ค€๋‹ค. ๋‚˜๋Š” foo์™€ bar, 2๊ฐœ๋งŒ ์ถ”๊ฐ€ํ–ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์ด๋Ÿฐ์‹์œผ๋กœ ๊ตฌ์„ฑํ•˜๋ฉด ๋œ๋‹ค.


๊ทธ๋ฆฌ๊ณ  ์ € crate ๊ฐ๊ฐ์— ์ ์ ˆํžˆ ํ•จ์ˆ˜๋ฅผ ๊ตฌํ˜„ํ–ˆ๋‹ค.




workspace ์„ค์ •

๋งจ ๋ฐ”๊นฅ์˜ ๊ป๋ฐ๊ธฐ crate์—๋Š” ๋งŽ์€ ๊ฒƒ์ด ํ•„์š”ํ•˜์ง€ ์•Š๋‹ค.
์ฝ”๋“œ๋„ ์—†์–ด๋„ ๋˜๊ณ , toml๋งŒ ์žˆ์œผ๋ฉด ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ workspace์— ์†ํ•  crate๋“ค์„ ์ง€์ •ํ•ด์ฃผ๋ฉด ๋˜๋Š” ๊ฒƒ์ด๋‹ค.
๊ทธ๋Ÿฌ๋ฉด ์ € crate๋ผ๋ฆฌ๋Š” ์„œ๋กœ๋ฅผ ์ฐธ์กฐํ•˜๋„๋ก ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  crate๋“ค๋ผ๋ฆฌ ์ฐธ์กฐ๋ฅผ ํ• ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด dependencies์— ์ถ”๊ฐ€๋งŒ ํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ์“ฐ๋ฉด

๋Œ์•„๊ฐˆ ๊ฒƒ์ด๋‹ค.
์›Œํฌ์ŠคํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ์—๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด -p ์˜ต์…˜์œผ๋กœ ์–ด๋–ค ์„œ๋ธŒ crate๋ฅผ ์‹คํ–‰ํ•  ๊ฒƒ์ธ์ง€๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.

์ด๊ฑฐ ๋ง๊ณ  ๋‹ค๋ฅธ ๋ช…๋ น๋“ค์„ ์‚ฌ์šฉํ• ๋•Œ๋„ -p ์˜ต์…˜์„ ์‚ฌ์šฉํ•˜๋ฉด ์ตœ์ƒ์œ„ crate์—์„œ sub crate๋“ค์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋‹ค.




๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ์ถ”๊ฐ€

workspace๊ฐ€ ์ฃผ๋Š” ๋˜ ํ•˜๋‚˜์˜ ์ด์ ์€, ์ข…์†์„ฑ ๊ด€๋ฆฌ๋ฅผ ์ตœ์ƒ์œ„์—์„œ ๋ชจ์•„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค.
๋‹ค์Œ๊ณผ ๊ฐ™์ด crate๋ฅผ ํ•˜๋‚˜ ๋“ฑ๋กํ•˜๋ฉด

๊ฐœ๋ณ„ crate๊ฐ€ ์•„๋‹Œ, ์ตœ์ƒ์œ„ crate์˜ Cargo.lock์—๋งŒ ์ข…์†์„ฑ ํŠธ๋ฆฌ๊ฐ€ ๊ด€๋ฆฌ๋œ๋‹ค.

๋นŒ๋“œ ๊ฒฐ๊ณผ๋ฌผ๋„ ๊ทธ๋ ‡๋‹ค. ์ตœ์ƒ์œ„์— ์Œ“์ธ๋‹ค.




์ฐธ์กฐ
https://doc.rust-lang.org/book/ch14-03-cargo-workspaces.html