CARGO WORKSPACE
여러 크레이트를 한 저장소에서 빌드 산출물과 잠금 파일을 공유한다
작업공간은 커지는 라이브러리를 여러 패키지로 나누면서도 같은 의존성 해석과 target 디렉터리를 쓰게 해 줍니다.
[workspace]
members = ["adder", "add_one"]
members = ["adder", "add_one"]
Root Cargo.toml`[package]` 대신 `[workspace]`와 members 목록으로 전체 구성을
선언합니다.root
Cargo.lock모든 멤버가 같은 의존성 버전 결정을 공유해 빌드 재현성을
높입니다.lock
target최상위 target을 공유해 멤버 간 불필요한 재컴파일을
줄입니다.output
members바이너리와 라이브러리 크레이트가 같은 작업공간 안에서 서로
의존합니다.crates
핵심: workspace는 코드 분리를 돕지만 배포 단위와 의존성 경계가
흐려지지 않도록 멤버 책임을 명확히 둡니다.