Root
Cargo.toml
[workspace]와 members가 빌드할 crate 집합을 선언한다.
root Cargo.toml은 멤버 crate 목록을 알고, 각 crate는 path dependency로 서로를 참조하며 하나의 lockfile을 공유한다.
Cargo.toml
[workspace]와 members가 빌드할 crate 집합을 선언한다.
adder
add-one
실행 crate와 library crate를 분리해 역할을 작게 유지한다.
Cargo.lock
target/
의존성 해석과 빌드 산출물이 workspace 단위로 모인다.
| 구성 | 책임 | 확인할 파일 |
|---|---|---|
| members | cargo build/test가 방문할 crate 목록을 고정한다. | root Cargo.toml |
| path dependency | 한 member가 다른 member를 로컬 경로로 참조한다. | crate별 Cargo.toml |
| shared lock | 같은 의존성 버전을 workspace 전체에 적용한다. | Cargo.lock |
핵심: crate는 작게 나누되 빌드와 의존성 결정은 workspace 루트에서 한 번에 관리한다.