본문 바로가기
Programming/Rust

[Rust] Rust란

by dev_ss 2022. 10. 23.

Rust <https://ko.wikipedia.org>

 

Rust : 한국어로 "녹"이라는 뜻을 가지고 있는 러스트는 이름에 걸맞게 로고도 톱니바퀴의 모양이다.

Mozilla Research에서 개발한 오픈소스 범용 프로그래밍 언어이며 안전성, 속도, 병행처리에 중점을 두고 만들어진 언어이다.

 

Feature

  • 메모리 관련 오류를 발생하지 않는다. (정확히 컴파일 과정에서 오류난 곳을 감지하여 미연에 메모리 오류 발생을 방지한다.)
    • 러스트는 Null pointer 및 초기화되지 않은 pointer가 존재하지 않도록 강제함
    • 모든 변수는 초기값을 가지고 할당 -> 해제된 포인터 접근 시 컴파일러가 감지하여 오류 발생
  • 속도가 매우 빠르다. (C++과 비슷한 수준의 성능을 목표로 하고 실제로 매우 빠름)

 

 

Install (for MacOS/Linux) :

$ curl https://sh.rustup.rs -sSf | sh

 

Update :

$ rustup update

 

Check :

$ rustc --version

Cargo : 카고는 러스트의 컴파일러(rustc)를 포함하는 Build system이며, 동시에 패키지 매니저의

역할도 하는 소프트웨어이다. 러스트를 설치하면 함께 설치가 되어있다.

* Build : 소스 코드 파일을 컴퓨터 등의 기기에서 실행할 수 있는 독립 소프트웨어 가공물로 변환하는 과정 또는 그의 결과물 - Compile

 

Check :

$ cargo --version

Cargo.toml : Cargo의 환경설정 포맷

 - Example :

[package]
name = "project_name"
version = "0.1.0"
authors = ["name <email@example.com>"]
description = "Just toml example"

[dependencies]

* package : 이후의 문장들이 패키지 환경설정이라는 것을 나타내는 구간

* dependencies : 프로젝트의 의존성들의 리스트들을 적을 수 있는 구간


cargo build : 해당 프로젝트를 Build 하는 명령어

$ cargo build

cargo run : build 된 프로젝트를 실행하는 명령어 (build가 되지 않았다면 build과정도 같이 수행)

$ cargo run

cargo check : 코드가 Compile이 되는지 빠르게 확인해 주는 명령어 (실행파일은 생성하지 않음)

$ cargo check

Release Build : 프로젝트가 배포의 단계에 있을 때 릴리즈 빌드를 이용하여 최적화 및 컴파일을 수행

$ cargo build --release

 

기본 빌드와 릴리즈 빌드의 차이점 :

  • Build : ./target/debug에 실행파일을 생성하고 Complie은 빠르게 수행하나 Code를 읽고 실행하는 것은 느리게 동작한다.
  • Release Build : ./target/release에 실행파일을 생성하고 Compile은 느리나 Code를 읽고 실행하는 것은 빠르게 동작한다.
반응형