0Pricing
Learn Rust Coding · 강의

크레이트로 의존성 관리하기

Cargo가 외부 크레이트(라이브러리)를 관리하는 방식과 커뮤니티에서 사용할 자신의 크레이트를 게시하는 방법을 이해합니다.

크레이트로 의존성 관리하기은(는) CoddyKit의 무료 Learn Rust Coding 강의입니다. 이것은 3개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Learn Rust Coding 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Learn Rust Coding 강의에는 총 3개의 강의가 포함되어 있습니다.

크레이트와 Cargo란 무엇인가요?

Rust에서 크레이트는 컴파일과 배포의 기본 단위입니다. 코드를 포함하는 패키지나 라이브러리라고 생각하면 됩니다.

Cargo는 Rust의 공식 패키지 관리자이자 빌드 시스템입니다. 새 프로젝트 생성부터 종속성 관리, 코드 컴파일, 테스트 실행까지 모든 작업을 처리합니다. Rust 개발에서 가장 든든한 도구입니다!

`Cargo.toml` 파일

Cargo로 관리하는 모든 Rust 프로젝트의 루트 디렉터리에는 Cargo.toml 파일이 있습니다. 이 파일은 TOML(Tom's Obvious, Minimal Language)로 작성된 프로젝트의 매니페스트 파일입니다.

프로젝트의 메타데이터를 정의하며, 무엇보다 중요한 종속성 목록을 포함합니다.

프로젝트 구성

Cargo.toml의 [package] 섹션에는 크레이트의 핵심 정보가 들어 있습니다.

  • name: 크레이트의 이름입니다.
  • version: 현재 버전입니다.
  • edition: 사용할 Rust 에디션입니다(예: 2021).
  • authors: 만든 사람입니다.

특히 크레이트를 게시할 계획이라면 이러한 세부 정보가 매우 중요합니다.

종속성 추가하기

프로젝트에서 외부 라이브러리(다른 크레이트)를 사용하려면 Cargo.toml의 [dependencies] 섹션 아래에 해당 라이브러리를 나열합니다.

프로젝트를 빌드하면 Cargo가 Rust의 중앙 패키지 저장소인 crates.io에서 이러한 종속성을 자동으로 다운로드하고 컴파일합니다.

종속성 문법

Cargo.toml에서 종속성을 선언하는 방법은 다음과 같습니다.

[dependencies] rand = "0.8.5"

이 설정은 Cargo에 rand 크레이트의 0.8.5 버전을 가져오도록 지시합니다. 버전 범위나 로컬 경로를 지정할 수도 있습니다.

크레이트 사용하기: 예제

난수를 생성하기 위해 rand 크레이트를 추가해 보겠습니다. 먼저 [dependencies]에 rand = "0.8.5"가 있는지 확인합니다. 그런 다음 코드에서 사용합니다.

use rand::Rng; // Import the Rng trait

fn main() {
  let mut rng = rand::thread_rng(); // Create a random number generator
  let n: u8 = rng.gen_range(1..=10); // Generate a number between 1 and 10 (inclusive)
  println!("Your random number is: {}", n);
}

`Cargo.lock` 파일

종속성이 있는 상태로 빌드하면 Cargo가 Cargo.lock 파일을 생성합니다. 이 파일에는 프로젝트에서 사용하는 모든 직접 종속성과 간접 종속성의 정확한 버전이 기록됩니다.

이를 통해 프로젝트에 참여하는 모든 사람이 같은 종속성 버전을 사용하게 되므로, 서로 다른 환경에서도 동일한 빌드 결과를 재현할 수 있습니다.

종속성 업데이트하기

시간이 지나면 종속성에 버그 수정이나 새로운 기능이 포함된 새 버전이 출시될 수 있습니다. 종속성을 업데이트하려면 cargo update 명령을 사용합니다.

이 명령은 Cargo.toml의 버전 요구 사항과 일치하는 새 버전을 crates.io에서 확인하고 그에 맞게 Cargo.lock을 업데이트합니다.

자신만의 크레이트 게시하기

멋진 Rust 코드를 커뮤니티와 공유하고 싶으신가요? 자신만의 크레이트를 crates.io에 게시할 수 있습니다!

게시하기 전에 Cargo.toml에 description, license, repository 링크와 같은 적절한 메타데이터가 있는지 확인하세요.

게시 명령

과정은 간단합니다.

  1. 로그인: crates.io에서 받은 API 토큰과 함께 cargo login <token>을 사용합니다.
  2. 게시: 프로젝트의 루트 디렉터리에서 cargo publish를 실행합니다.

Cargo가 확인 작업을 수행하고 코드를 패키징한 후 업로드하여 다른 사람들이 사용할 수 있게 합니다!

빠른 확인: Cargo와 크레이트

Cargo를 사용한 Rust의 패키지 관리에 관한 다음 설명 중 옳은 것은 무엇인가요?

복습: 종속성 관리하기

Cargo가 Rust 프로젝트와 해당 프로젝트의 종속 항목을 관리하는 데 얼마나 중요한지 배웠습니다!

  • 크레이트는 재사용 가능한 코드 패키지입니다.
  • Cargo.toml은 프로젝트와 종속 항목을 정의합니다.
  • Cargo.lock은 재현 가능한 빌드를 보장합니다.
  • 자신만의 크레이트를 crates.io에 게시할 수 있습니다.

이 강력한 시스템 덕분에 Rust에서 코드를 공유하고 재사용하는 작업을 매우 효율적이고 안정적으로 수행할 수 있습니다.

자주 묻는 질문

“크레이트로 의존성 관리하기” 강의는 무료인가요?

네 — “크레이트로 의존성 관리하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Learn Rust Coding 강의 전체를 잠금 해제할 수 있습니다. Learn Rust Coding 강의에는 총 3개의 강의가 포함되어 있습니다.

“크레이트로 의존성 관리하기”에서 뭘 배우나요?

Cargo가 외부 크레이트(라이브러리)를 관리하는 방식과 커뮤니티에서 사용할 자신의 크레이트를 게시하는 방법을 이해합니다. 브라우저에서 직접 실행하는 실습 코드로 Learn Rust Coding을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Learn Rust Coding을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Learn Rust Coding은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 3개 중 2번째 강의입니다.

“크레이트로 의존성 관리하기” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Learn Rust Coding 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Learn Rust Coding 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 모듈로 코드 구성하기
  2. 크레이트로 의존성 관리하기
  3. `Result`를 활용한 견고한 오류 처리
← Learn Rust Coding(으)로 돌아가기