Youn's IT Memo
정리 1. Rust 역사와 기본 설명 본문
왜 시작했는가?
Java 처럼 GC를 이용해서 메모리가 Managed 되는 언어가 아닌 Un-Managed되는 언어를 하나 사용해보고 싶습니다.
하지만 예전처럼 C나 C++이 아닌 새로운 언어를 배워보고 싶은 마음에 고심 끝에 Rust를 선택했습니다.
Rust의 경우 어떻게 보면 소유권 개념을 통해 매니징 되고 있다고 생각은 들지만
문법이나 개념 등이 특이하여 매력적이라는 생각이 들어 공부하게 되었습니다 ( 실무 사용은 힘들지만 ... )
Rust 란?
제가 생각했을 때는 메모리 안정성과 동시성, 속도를 중점으로 제작된 언어라는 느낌이 강합니다.
- 2006년 그레이던 호어가 사이드 프로젝트로 3년간 진행
- 모질라 재단에서 2010년 7월 7일 발표
- 2021년 2월에 러스트 재단으로 분리됨
- C, C++의 속도와 메모리 안정성을 중심으로 설계되어 제작
- 상속이 없으며 Trait 라는 개념을 통해 다형성을 지원함
- Null 포인터가 언어에서 지원되지 않고 Option - None , Some 을 통해 핸들링
참고 / MicroSoft Rust Overview
url - https://learn.microsoft.com/ko-kr/training/modules/rust-introduction/2-rust-overview
Rust란 무엇인가? - Training
Rust 프로그래밍 언어에 대해 자세히 알아보세요.
learn.microsoft.com

Rust 모듈 시스템
- Crate : 러스트의 컴파일 단위. 컴파일러에서 실행할 수 있는 가장 작은 코드 단위로
이진 파일이나 라이브러리를 생성하기 위해 함께 컴파일
기본적으로 제공되는 크레이트는 std 표, regex, serde 등이 있음
( cargo 빌드시 --lib 옵션시 라이브러리 , --bin 옵션시 이진 파일 생성 ) - 모듈 (mod) : Crate 내 코드 항목별 범위를 관리하여 프로그램을 구성.
모듈의 경우 mod 내 계층적인 구조를 형성 시킬수 있음
빌드 도구 , 관리자
- rustc : Rust 프로그래밍 컴파일러. 소스코드를 통해 라이브러리 혹은 실행 파일로 바이너리 코드 생성
ex) rustc test.rs -> hello.exe ( window ) - cargo : Rust 패키지 매니저. Rust 패키지 의존성 관리, 컴파일 기능 담당
Rustc를 직접 호출하는 것보다는 Cargo를 통해 Build를 하는 경우가 많음
'Language > Rust' 카테고리의 다른 글
| 정리 2. Rust 데이터 타입 (0) | 2023.08.06 |
|---|