# [Rust] Rust 프로그래밍 언어

### Rust 프로그래밍 언어란?

Rust 프로그래밍 언어는 모질라 재단에서 2010년 7월 7일에 발표한 언어입니다.  
성능과 안전성에 중점을 둔 프로그래밍 언어로 Garbage Collection(GC) 없이 메모리 안전성을 제공하는 대표적인 언어입니다.

성능이 우선되는 모든 곳에서 어느정도의 파이를 조금씩 가져가리라 기대되는 언어이기도 합니다.

(C++로 만들거였는데 이젠 Rust로 만들어보자 느낌)

### **러스트 프로그래밍 언어의 장점**

* 컴파일 되면 보통은 잘 동작함. 특히 CLI 도구나 데이터 처리, 알고리즘 작성시 유용합니다.
    
* 별다른 노력없이 좋은 퍼포먼스를 보여줌. C#보다 1.5~2.5배 정도 빠른 경험이 있습니다.
    
* Enum이 잘 구현되어 있습니다.
    
* Rust analyzer 덕분에 IDE 사용성이 크게 개선됩니다.
    
* Trait 시스템이 잘 되어 있음. Orphan rule만 좀 완화된다면 훨씬 활용도가 높아질 것 입니다.
    

### **러스트 프로그래밍 언어의 단점**

* **학습 곡선**: 러스트는 C++과 같은 다른 언어에 비해 학습 곡선이 가파른 편입니다. 특히, 메모리 안전성을 보장하기 위한 러스트의 소유권 시스템은 이해하기 어려울 수 있습니다.
    
* **어려운 생태계**: 러스트는 비교적 새로운 언어이기 때문에, 다른 언어에 비해 라이브러리와 도구의 생태계가 아직 완성되지 않았습니다.
    
* **컴파일 시간**: 러스트 코드는 C++ 코드보다 컴파일하는데 더 많은 시간이 걸릴 수 있습니다.
    

### **Rust 프로그래밍 언어가 적합한 경우**

* **안정성과 성능이 중요한 시스템 프로그래밍**
    
* **메모리 안전성이 중요한 프로그램 개발**
    
* **현대적인 프로그래밍 언어를 배우고 싶은 경우**
    

### **Rust 프로그래밍 언어가 적합하지 않은 경우**

* **빠르게 프로토타입을 만들거나 개발해야 하는 경우**
    
* **다양한 라이브러리와 도구가 필요한 경우**
    
* **학습 곡선이 가파른 언어를 배우고 싶지 않은 경우**
    

## Rust 프로그래밍 언어의 개인적 견해

Rust는 '익숙'함보다 '성숙'함이 필요하다.
