Notice
Recent Posts
Recent Comments
Link
GitHub Contribution 그래프
Loading data ...
«   2026/02   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
Archives
Today
Total
관리 메뉴

Youn's IT Memo

정리 1. Rust 역사와 기본 설명 본문

Language/Rust

정리 1. Rust 역사와 기본 설명

bellman66 2023. 7. 30. 19:25

왜 시작했는가? 

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