Cargo workspace

루트 설정이 멤버와 공유 산출물을 묶고, 실행할 패키지만 고른다

작업공간은 패키지를 나누어도 잠금 파일과 빌드 결과를 한곳에 두고, 각 패키지의 Cargo.toml 의존성 선언을 따라 실행 경로를 정합니다.

workspace Cargo.toml root

`[workspace]`와 `members`가 `adder`, `add_one`, `add_two`를 같은 작업공간으로 묶습니다.

adder bin

실행 대상이며 라이브러리 크레이트를 호출합니다.

add_one add_two
add_one lib

자기 Cargo.toml에 필요한 외부 의존성을 따로 적습니다.

rand
add_two lib

같은 작업공간 멤버지만 의존성 선언은 패키지별로 분리됩니다.

공유 Cargo.lock / target one set
Cargo.lock 모든 멤버가 같은 의존성 버전을 씁니다.
target 빌드 결과가 최상위 디렉터리에 모입니다.

`-p adder`는 공유 결과물에서 `adder` 바이너리를 골라 실행합니다.

root members deps lock target run -p