[Rust 공식문서 한국어 정리] 88. Rust Profile 설정 가이드
[Rust 공식문서 한국어 정리] 88. Rust Profile 설정 가이드
원문 제목: Profiles
작성자: The Rust Project
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📌 1. 서론 — 이 문서가 다루는 내용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Cargo의 Profile 설정이 컴파일 결과물에 미치는 영향을 설명합니다.
개발과 릴리스 환경에서 다른 최적화 전략을 구성하는 방법을 다룹니다.
컴파일 시간, 바이너리 크기, 런타임 성능 사이의 트레이드오프를 학습합니다.
커스텀 프로파일을 정의하여 특수한 빌드 요구사항을 충족하는 방법을 정리합니다.
Rust 컴파일러 최적화 옵션과 Cargo 프로파일의 연관 관계를 이해합니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔑 2. 핵심 개념 4가지
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
① dev 프로파일 — 빠른 컴파일을 우선시하는 개발용 설정
② release 프로파일 — 최적화를 극대화하는 배포용 설정
③ opt-level — 컴파일러 최적화 레벨 (0~3, s, z)
④ 커스텀 프로파일 — 사용자 정의 빌드 구성
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📖 3. 주요 내용 상세
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Cargo 프로파일은 컴파일러에 전달할 설정의 집합입니다.
기본 제공 프로파일은 dev, release, test, bench, doc가 있습니다.
dev 프로파일은 opt-level = 0으로 기본 설정되어 컴파일 속도가 가장 빠릅니다.
debug = true 설정으로 디버깅 정보가 포함되어 디버거에서 소스 레벨 추적이 가능합니다.
release 프로파일은 opt-level = 3으로 최고 성능을 목표로 합니다.
lto = false나 thin 설정으로 링크 타임 최적화 수준을 조절할 수 있습니다.
codegen-units는 병렬 코드 생성 단위 수를 지정하며 값이 클수록 컴파일이 빠르지만 최적화가 감소합니다.
panic = "unwind" 또는 "abort"로 패닉 처리 방식을 선택할 수 있습니다.
abort 방식은 더 작은 바이너리를 생성하지만 스택 언와인딩이 불가능합니다.
incremental = true는 증분 컴파일을 활성화하여 수정된 부분만 재컴파일합니다.
strip 설정은 심볼 테이블과 디버깅 정보를 제거하여 바이너리 크기를 줄입니다.
overflow-checks = false는 릴리스에서 산술 오버플로우 검사를 비활성화할 수 있습니다.
[profile.custom] 형태로 사용자 정의 프로파일을 만들 수 있습니다.
커스텀 프로파일은 inherits로 기존 프로파일을 상속받아 덮어쓸 수 있습니다.
--profile 플래그로 특정 프로파일을 지정하여 빌드할 수 있습니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🛠 4. 실전 활용
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
개발 중에는 기본 dev 프로파일로 빠른 피드백 루프를 유지합니다.
배포 빌드 전 release 프로파일로 전환하여 성능을 검증합니다.
임베디드 환경에서는 panic = "abort"와 opt-level = "z"로 크기를 최소화합니다.
CI에서 별도의 test 프로파일을 조정하여 테스트 실행 시간을 단축할 수 있습니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 5. 정리
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
프로파일은 컴파일 결과의 품질과 속도를 제어하는 핵심 도구입니다.
목적에 맞는 프로파일 선택은 개발 생산성과 배포 성능에 직결됩니다.
커스텀 프로파일로 특수한 요구사항도 유연하게 대응할 수 있습니다.
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔗 출처 링크
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
원문: https://doc.rust-lang.org/cargo/reference/profiles.html
Cargo Reference: https://doc.rust-lang.org/cargo/reference/
#Rust #Cargo #Profile #최적화 #번역

오뉴노노 님의 최근 댓글
ㅋㅋㅋㅋㅋ 2019 01.14 잘 읽었습니다 2018 12.30 포인트가 없어서 아직 시작을 못하고있는데요! 글은 잘 읽었습니다! 포인트 쌓고 도전할거에요 2018 12.30