왜 Rust를 배워야 할까요?
C와 C++이 아직도 현역인 이유
지금까지 정말로 로그래밍 언어가 개발되었습니다. 여러 언어가 나오고, 또 여러 언어가 사라졌습니다. 그렇지만 과거에 만들어져도 현재에도 폭넓게 쓰이는 언어들이 있습니다. C와 C를 발전 시킨 C++ 계열입니다. 이 언어는 거의 모든 일을 할 수 있습니다. 그렇지만 만들어진 시점도 옛날이고, 수동적이고 안전하지 않은 메모리 관리, 느린 컴파일 속도, 복잡한 문법으로 인해 많은 언어들이 나오고 C와 C++의 자리를 가져갔습니다.
그렇지만 메모리 구조 같이 시스템의 밑바닥에서 작업해야하는 부분을 건드릴 수 있는 건 C와 C++ 밖에 없기 때문에, 아직도 시스템 프로그래밍이나 웹 브라우저 같이 복잡한 곳, 혹은 극한까지 성능이 필요한 곳, 하드웨어 성능제약이 매우 심한 곳에서는 C와 C++이 아직도 현역으로 쓰이고 있습니다.
Rust의 탄생
Rust는 원래 Mozila 재단의 그레이던 호어의 개인 프로젝트 였습니다. 당시 Mozila 재단은 웹브라우저 성능을 높히기 위해 새로운 돌파구를 찾으려 했습니다. 이 프로젝트에는 파이어폭스 퀀텀이라는 이름이 붙었고, 이 프로젝트를 통해 만들어진 렌더링 엔진에는 Servo라는 이름이 붙었습니다. 현재는 어느 정도 완성이 되어 파이어폭스에서 직접 써볼 수 있습니다.
웹 브라우저는 기본적으로 매우 복잡합니다. 특히 요즘은 웹에서 할 수 있는 일이 폭발적으로 증가하는 시점에서는 더 복잡합니다. 이런 상황에서 성능을 올리는 것은 힘듭니다. 특히 C++로 짤 때는 어려운 문법 구조로 인해 더 힘듭니다. 거기에 메모리 관리 같이 성능에 직접적으로 영향을 미치고 안전에 중요한 영역 때문에 더 작성이 힘듭니다.
이 때 주목 받은 것이 Rust입니다. 수동적이고 예측가능하면서 안전한 메모리 관리, 현대적 언어 설계를 도입하여 보다 쉬워진 설계 같이 다양한 장점을 가지고 있는 Rust를 Mozila에서 채택하면서 더 진보된 웹 브라우저 엔진을 제작할 수 있게 되었습니다. 현재도 Mozila 재단은 Rust 재단의 가장 큰 스폰서 중 하나입니다.
Rust의 장점
Rust는 C++로 해야하는 일을 보다 편리하고, 안전히 하기 위해 만들어 졌고, 그에 따라 여러 장점을 가지고 있습니다.
- 빠른 실행속도 : Rust는 컴파일이 된 후, 빠르게 실행하게 위해 여러 최적화를 도입하였습니다. 또한 컴파일 속도도 C++에 비하면 비교적 개선되었습니다.
- 안전하고 예측가능한 메모리 관리: Rust는 Java같은 언어와 다르게 C++ 처럼 직접 메모리 관리를 합니다. 그렇지만 Rust는 컴파일 단계에서, 잘못된 메모리 접근을 막습니다. 또한 직접 메모리 관리를 하기 때문에 메모리 사용을 보다 직관적으로 이해할 수 있습니다. 여러분이 C 계열에서 포인터를 배워 보셨거나, 자료구조 과목에서 메모리 때문에 고민해보신 적 있다면 좋은 선택이 될 것입니다.
- 개발도구가 정리되어 있습니다. : 포맷터, 라이브러리 문서 작성 도구, 빌드 도구, 패키지 관리 도구 전부 다 언어 안에 포함되어 있고, 각 OS에서 동일한 실행을 보장합니다.
- 꾸준히 사용처가 늘고 있습니다. : Rust 사용자는 갈수록 늘어나고 있으며, 성능과 엄격함이 필요한 분야에서 갈수록 Rust 사용이 늘어 나고 있습니다. 작게는 명령쉘에서 사용하는 프로그램에서 시작해, 웹 서버, 웹 앱,웹 브라우저까지 갈수록 사용처가 늘고 있습니다.
- 커뮤니티가 활발합니다: 가장 활발한 개발 커뮤니티 중 하나인 스택오버플로우에서 선정된 개발자들이 좋아 하는 언어에서 최근 계속 상위권을 유지하고 있고, 많은 개발자들이 러스트를 개선하고 발전하고 확장시켜 나가는 데 기여하고 있습니다.
참고문헌
- 왜 Rust언어인가?
- 꽃게책