반응형
Rust
는 시스템 프로그래밍 언어로, 메모리 안전성을 보장하면서도 성능이 뛰어난 언어입니다. 주요 특징은 다음과 같습니다.- 메모리 안전성: 소유권 시스템(Ownership)과 빌림(Borrowing) 메커니즘을 사용하여 메모리 오류 방지
- 고성능: C, C++과 비슷한 성능을 제공
- 병렬성: 안전한 스레드 동기화 지원
Rust
는 공식 설치 도구인 rustup
을 통해 설치할 수 있습니다.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
설치 후, Rust 버전을 확인하려면 다음 명령어를 사용합니다.
rustc --version
Rust 프로그램의 기본 구조는 다음과 같습니다.
fn main() {
println!("Hello, world!");
}
fn main()
: 프로그램의 진입점println!()
: 매크로를 사용하여 문자열 출력
Rust에서 변수는 기본적으로 변경 가능 여부에 따라 let
과 const
로 선언됩니다.
let mut x = 5; // 변경 가능 변수
x = 10;
const MAX_POINTS: u32 = 100_000; // 변경 불가능한 상수
Rust는 정적 타입 언어로, 변수 선언 시 타입을 지정할 수 있습니다.
let int_num: i32 = -10;
let float_num: f64 = 3.14;
let is_active: bool = true;
let letter: char = 'A';
let number = 10;
if number > 5 {
println!("큰 숫자입니다.");
} else {
println!("작은 숫자입니다.");
}
for i in 0..5 {
println!("반복: {}", i);
}
fn add(a: i32, b: i32) -> i32 {
a + b // 마지막 표현식의 결과가 반환됨
}
- Rust의 주요 개념인 소유권(
Ownership
)과 빌림(Borrowing
)은 메모리 안정성을 보장합니다.
fn main() {
let s = String::from("hello");
take_ownership(s);
// s는 여기서 사용할 수 없음
}
fn take_ownership(some_string: String) {
println!("{}", some_string);
}
fn main() {
let s = String::from("hello");
print_string(&s);
println!("{}", s); // s는 여전히 사용 가능
}
fn print_string(some_string: &String) {
println!("{}", some_string);
}
struct User {
name: String,
age: u32,
}
fn main() {
let user1 = User {
name: String::from("Alice"),
age: 30,
};
println!("사용자: {} ({}세)", user1.name, user1.age);
}
enum Direction {
Up,
Down,
Left,
Right,
}
fn main() {
let dir = Direction::Up;
match dir {
Direction::Up => println!("위로 이동"),
Direction::Down => println!("아래로 이동"),
Direction::Left => println!("왼쪽으로 이동"),
Direction::Right => println!("오른쪽으로 이동"),
}
}
Rust는 강력한 메모리 관리 기능과 높은 성능을 제공하는 언어로, 시스템 프로그래밍, 웹 개발, 임베디드 프로그래밍 등 다양한 분야에서 활용됩니다. 기본 문법과 개념을 익히면 더욱 깊이 있는 활용이 가능합니다.
728x90
반응형
'Rust' 카테고리의 다른 글
hexyl : 터미널에서 손쉽게 활용하는 현대적인 헥스(Hex) 뷰어 (0) | 2025.03.11 |
---|---|
Rust의 소유권(Ownership)과 이동(Move) 개념 (0) | 2025.02.18 |
hyperfine : rust 기반 명령줄 벤치마킹 도구 (0) | 2024.12.06 |