Rust 크레이트와 패키지 관리 (12)
1
Cargo와 크레이트 소개
Cargo는 Rust의 공식 빌드 도구이자 패키지 매니저입니다. 크레이트(crate)는 Rust에서 라이브러리나 실행 가능한 바이너리 프로그램의 단위를 나타냅니다. Cargo는 크레이트의 생성, 빌드, 의존성 관리 등을 도와줍니다.
Cargo를 사용하면 새로운 Rust 프로젝트를 쉽게 생성할 수 있습니다. 예를 들어 cargo new my-project를 실행하면 새로운 프로젝트 폴더와 필요한 파일이 자동으로 생성됩니다. 이후 cargo build로 프로젝트를 빌드하고, cargo run으로 실행할 수 있습니다.
의존성 관리
Cargo의 가장 큰 장점 중 하나는 의존성 관리 기능입니다. 프로젝트에서 사용할 외부 라이브러리(크레이트)를 Cargo.toml 파일에 명시하면, Cargo가 해당 크레이트를 자동으로 다운로드하고 빌드합니다. 이를 통해 수동으로 라이브러리를 다운로드하고 설정하는 번거로움을 피할 수 있습니다.
[dependencies]
rand = "0.8.5" # 특정 버전 지정
regex = "*" # 최신 버전 사용
의존성은 semantic versioning을 따르므로, 버전 번호를 통해 호환성을 신경 쓸 필요가 없습니다. 또한 cargo update를 실행하면 의존성 크레이트의 최신 버전으로 업데이트할 수 있습니다.
크레이트 배포
Rust 커뮤니티에서 생산된 다양한 라이브러리 크레이트는 crates.io에 등록되어 있습니다. 여기서 원하는 크레이트를 검색하고 의존성으로 추가할 수 있습니다.
자신이 작성한 크레이트도 crates.io에 배포할 수 있습니다. 먼저 crates.io 사이트에 계정을 만들고, cargo login으로 인증을 합니다. 그 다음 cargo publish를 실행하면 크레이트가 crates.io에 업로드됩니다. 이후 다른 사람들이 해당 크레이트를 의존성으로 추가하고 사용할 수 있게 됩니다.
워크스페이스
Cargo는 워크스페이스(workspace) 기능을 제공하여 여러 개의 크레이트를 하나의 프로젝트로 관리할 수 있습니다. 예를 들어 하나의 실행 파일(바이너리 크레이트)과 여러 개의 라이브러리 크레이트로 구성된 프로젝트를 워크스페이스로 묶을 수 있습니다.
워크스페이스를 사용하면 한 번의 명령으로 전체 프로젝트를 빌드하거나 테스트할 수 있고, 크레이트 간 의존성도 쉽게 관리할 수 있습니다. 또한 라이브러리 크레이트를 별도로 배포하거나 의존성으로 추가할 수 있습니다.
# Cargo.toml
[workspace]
members = [
"crates/library1",
"crates/library2",
"main-binary"
]
위와 같이 Cargo.toml에 워크스페이스 멤버를 명시하면 해당 디렉터리의 크레이트들이 하나의 워크스페이스로 묶입니다.
이처럼 Cargo는 크레이트 및 패키지 관리를 용이하게 해주어 Rust 개발 생산성을 높여줍니다. 크레이트 의존성 관리, 크레이트 배포, 워크스페이스 등의 기능을 활용하면 대규모 프로젝트도 효율적으로 관리할 수 있습니다.
참고 자료
[1] The Cargo Book: https://doc.rust-lang.org/cargo/ [2] Rust by Example: Cargo: https://doc.rust-lang.org/rust-by-example/cargo.html [3] The Rust Programming Language Book: Packages and Crates: https://doc.rust-lang.org/book/ch07-01-packages-and-crates.html
이상으로 Rust의 크레이트와 패키지 관리에 대해 알아보았습니다. Cargo의 다양한 기능을 잘 활용하면 Rust 개발 프로세스가 한결 수월해질 것입니다.
한 고대 문서 이야기
여기 한 고대 문서가 있습니다. 이 문서는 B.C. 1,500년 부터 A.D 100년까지 약 1,600 여 년 동안 기록되었습니다. 이 문서의 저자는 약 40 명입니다. 이 문서의 고대 사본은 25,000 개가 넘으나, 사본간 오
gospel79.tistory.com
유튜브 프리미엄 월 1만원 할인받고 월 4000원에 이용하는 방법
올해 5월부터 월 8000원 정도이던 유튜브 프리미엄 요금이 15000원 정도로 인상됩니다. 각종 OTT 서비스, ChatGPT 같은 서비스들이 늘어나다보니 이런 거 몇 개만 이용하더라도 월 이용요금이 5만원을
stock79.tistory.com
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."