
230
이펙티브 러스트
4
장에서는 러스트에서
cargo
도구를 활용하는 방법 위주로 설명하며, 이 과정에서 언급한 주
의 사항과 이슈는 다른 도구뿐만 아니라 다른 언어에도 적용할 수 있다.
아이템
21
: 시맨틱 버저닝의 의미를 이해하라
SemVer
는 정보 일부가 사라질 수 있는 손실 추정치이고 변경의 의미 역시 완벽하게 표현할
수 없음을 깨닫는다면 무딘 도구로 보이기 시작합니다.
타이터스 윈터스, 『구글 엔지니어는 이렇게 일한다』(한빛미디어,
2022
)
러스트의 패키지 관리자인 카고
Cargo
를 사용하면 러스트 코드에 적합한 의존성(아이템
25
)을
시맨틱 버저닝
semantic
versioning
(셈버
semver
)에 따라 자동으로 선택하게 만들 수 있다.
Cargo
.
toml
에 다음과 같이 스탠자
stanza
를 작성한다.
[dependencies]
serde = "1.4"
그러면 여기에 명시한 의존성에 적합한 셈버 버전의 범위를
cargo
에 알려준다. 이 범위를 정
확히 지정하는 방법은 공식 문서 (
https
://
oreil
.
ly
/
fchXS
)에 자세히 나와 있지만, 가장 자
주 사용하는 몇 가지 방법은 다음과 같다.
●
"1.2.3":
1
.
2
.
3
과 셈버 호환
semver
-
compatible
되는 버전을 모두 허용한다.
●
"^1.2.3":
"1.2.3"
과 동일한 내용을 더 명시적으로 ...