0Pricing
Learn Rust Coding · 강의

Cargo.toml

매니페스트와 의존성

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

매니페스트

Cargo.toml은 모든 Rust 프로젝트 루트에 있는 매니페스트 파일입니다. TOML 형식을 사용해 패키지와 의존성을 설명합니다.

[package] 섹션

[package] 테이블에는 크레이트의 메타데이터가 들어 있습니다.

  • name — 크레이트 이름
  • version — 시맨틱 버전
  • edition — Rust 에디션(예: 2021)
[package]
name = "my_app"
version = "0.1.0"
edition = "2021"

의존성 추가하기

외부 크레이트는 [dependencies] 아래에 나열합니다. Cargo가 crates.io에서 다운로드하여 대신 컴파일합니다.

[dependencies]
rand = "0.8"
serde = "1.0"

cargo add

파일을 직접 수정하는 대신 cargo add를 사용하면 호환되는 최신 버전의 의존성을 추가할 수 있습니다.

cargo add rand
cargo add serde

버전 요구 사항

버전 문자열은 시맨틱 버전 규칙을 따릅니다:

  • "1.0"은 >=1.0.0 및 <2.0.0을 의미합니다(기본적으로 캐럿 요구 사항)
  • "=1.2.3"은 정확한 버전을 고정합니다
  • "~1.2"는 패치 업데이트만 허용합니다
[dependencies]
regex = "=1.10.2"
log = "~0.4"

의존성 사용하기

추가한 뒤에는 use로 항목을 범위에 가져오고 코드에서 호출합니다. 여기서는 실제 프로젝트에서 사용하는 것처럼 rand 크레이트를 사용합니다.

use rand::Rng;

fn main() {
    let mut rng = rand::thread_rng();
    let n: u8 = rng.gen_range(1..=6);
    println!("Rolled a {n}");
}

의존성 기능

많은 크레이트는 선택적 기능을 제공합니다. features 키로 기능을 활성화하며, 기본 기능을 먼저 비활성화하는 경우가 많습니다.

[dependencies]
serde = { version = "1.0", features = ["derive"] }

개발 의존성

[dev-dependencies]는 테스트, 예제 및 벤치마크를 실행할 때만 컴파일되며 라이브러리와 함께 배포되지 않습니다.

[dev-dependencies]
pretty_assertions = "1.4"

경로 및 Git 의존성

의존성은 crates.io 대신 로컬 경로나 git 저장소에서 가져올 수도 있습니다.

[dependencies]
my_lib = { path = "../my_lib" }
some_crate = { git = "https://github.com/user/repo" }

의존성 업데이트하기

cargo update는 버전 요구 사항이 허용하는 최신 버전으로 의존성을 업데이트하고 Cargo.lock을 다시 작성합니다.

cargo update

선택적 패키지 메타데이터

[package] 테이블에는 게시할 때 crates.io에 표시되는 추가 필드를 넣을 수 있습니다:

  • authors — 작성자
  • description — 간단한 설명
  • license — MIT와 같은 SPDX 식별자
  • repository — 소스 URL
[package]
name = "my_app"
version = "0.1.0"
edition = "2021"
description = "A small demo crate"
license = "MIT"

빠른 확인

테스트를 실행할 때만 필요한 크레이트는 어디에 나열해야 하나요?

복습

매니페스트를 살펴보았습니다:

  • [package]에는 이름, 버전, 에디션과 같은 메타데이터가 들어 있습니다
  • [dependencies]에는 crates.io, 경로 또는 git에서 가져오는 크레이트를 선언합니다
  • 버전 문자열은 시맨틱 버전 규칙을 따릅니다
  • features는 선택적 기능을 활성화합니다
  • [dev-dependencies]는 테스트 전용 의존성입니다

자주 묻는 질문

“Cargo.toml” 강의는 무료인가요?

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

“Cargo.toml”에서 뭘 배우나요?

매니페스트와 의존성 브라우저에서 직접 실행하는 실습 코드로 Learn Rust Coding을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

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

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

“Cargo.toml” 강의는 얼마나 걸리나요?

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

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

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

이 강의의 모든 강의

  1. Cargo 기초
  2. Cargo.toml
  3. 워크스페이스
  4. 기능과 프로필
← Learn Rust Coding(으)로 돌아가기