320x100
320x100

러스트 (Rust)
모질라 리서치에서 개발한 범용 프로그래밍 언어로써 안정성을 중점으로 개발된 프로그래밍 언어
고수준의 문법으로 저수준의 제어가 가능

- 구성요소
Cargo (의존성 관리자 및 빌드 도구)
Rustfmt (포매팅 도구)
Rust Language Server (러스트 언어 서버 / 코드 자동 완성 / 인라인 메시지 등을 IDE에 제공)

 

 

 

 

 

러스트 설치 (자동 설치)

- 리눅스

curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh

 

 러스트 컴파일 시 오류가 발생한다면 C 컴파일러를 설치하여 해결

 

- 윈도우

https://www.rust-lang.org/tools/install

 

Install Rust

A language empowering everyone to build reliable and efficient software.

www.rust-lang.org

 

 

 



러스트 설치 (수동 설치)
1. rust forge에서 os 및 아키텍처에 맞는 러스트 설치 파일 다운로드

https://forge.rust-lang.org/infra/other-installation-methods.html

 

Other Installation Methods - Rust Forge

Rust runs on many platforms, and there are many ways to install Rust. If you want to install Rust in the most straightforward, recommended way, then follow the instructions on the main installation page. That page describes installation via rustup, a tool

forge.rust-lang.org

 

2. 압축 해제 (xz 예시)

tar -xvf rustc-1.70.0-x86_64-unknown-linux-gnu.tar.xz

 

3. 설치 (압축해제한 폴더에서 설치)

sudo ./rustc-1.70.0-x86_64-unknown-linux-gnu/install.sh

 

 

 

 

 

설치 확인

rustc --version
# rustc x.y.z (abcabcabc yyyy-mm-dd)
# 버전 (커밋 해시 커밋 날짜)

 

정보가 보이지 않는다면 환경변수 확인 필요 (%PATH% 등)

 

 

 

 

 

러스트 업데이트 및 삭제

- 업데이트

rustup update

 

- 삭제

restup self uninstall

 

 

 

 

 

Hello World

- main.rs

fn main() {
  println!("Hello, world!");
}

 

- 컴파일 및 실행

# mac OS
rustc main.rs
./main

# 윈도우
rustc main.rs
/\main.exe

 

 

 

 

 

러스트의 프로그래밍적 특징

1. 함수 본문은 중괄호 {} 로 구분

 

2. 탭 대신 스페이스 4칸을 사용

 

3. 함수명 뒤에 !가 붙으면 함수가 아닌 매크로를 호출한다는 의미

 

4. 거의 모든 라인이 세미콜론으로 끝남

 

5. 소스 파일 컴파일에 성공하면 실행 가능한 바이너리를 만듦

 

6. 윈도우에서 컴파일 시 디버깅 정보가 포함된 .pdb 파일을 생성함

 

7. AOT (ahead-of-time) 컴파일 언어로, 컴파일과 실행이 별개인 대신 컴파일하여 만든 실행 파일을 러스트가 설치되지 않은 곳에서도 실행 가능

 

 

 

 

 

Cargo

러스트 빌드 시스템 및 패키지 매니저

코드 빌드, 외부 라이브러리 다운로드 등을 수행

러스트를 설치하면 Cargo도 자동으로 설치됨

 

- Cargo 설치 확인

cargo --version

 

- 프로젝트 생성

cargo new hello.cargo
cd hello_cargo

Cargo.toml 파일과 src 디렉터리가 생성됨 (src 디렉터리 내에는 main.rs가 위치)

그외에 .gitignore 파일과 함께 git 저장소가 초기화 됨 (git 저장소가 없는 경우에만)

 

- Cargo.toml

[package]
name = "heelo_cargo"
version = "0.1.0"
edition = "2021"

[dependencies]

[package] = 섹션 헤더로 아래에 cargo가 코드를 컴파일하는데 필요한 설정 정보를 가짐

패키지명, 버전, 작성자, 사용하는 러스트 에디션을 표현

[dependencies] = 프로젝트에서 사용하는 디펜던시 목록

러스트에서는 코드 패키지를 crate라고 호칭

 

- 빌드

cargo build

target/debug/{프로젝트 명}으로 실행파일이 생성됨

디펜던시 버전을 정확하게 기록하기 위한 Cargo.lock 파일이 생성됨

 

- 실행

cargo run

바이너리 경로를 입력하여 실행하지 않아도 되기 때문에 편리함

소스코드 변경 사항이 있는 경우 프로젝트를 다시 빌드하고 바이너리를 실행

 

- 작성한 코드가 컴파일 가능 여부 확인

cargo check

실행 파일은 만들지 않고 컴파일 가능 여부만 확인

 

- 릴리즈 빌드 생성

cargo build --release

target/release 경로에 실행 파일이 생성됨

컴파일 시 최적화를 진행하기 때문에 컴파일이 오래 걸리는 대신 더 빠르게 작동됨

러스트에서는 작업의 흐름을 끊지 않기 위해 빌드 속도를 빠르게 하고 배포 시에는 프로그램의 작동 속도를 빠르게 함

 

- 크레이트 버전 업데이트

cargo update

Cargo.lock 파일을 무시하고 Cargo.toml에 명시한 요구사항에 맞는 최신 버전을 확인하여 Cargo.lock 파일에 기록 (! 버전이 0.8.5로 명시되어 있으면 0.9.0은 무시하고 0.8.6을 기록)

300x250
728x90