Rust vs C++

박희중·2022년 4월 7일
0
post-thumbnail

RustC++ 둘다 시스템 프로그래밍, 임베디드 프로그래밍 언어다.

둘다 low level 언어로 하드웨어, 컴퓨터에 가까운 엑세스를 다룬다는 공통점이 있다.

하지만 Rust가 뜨고 있는 현재, 분명한 차이점은 존재한다.


1. Memory safe

메모리 관리가 매우 중요하다고 볼 수 있는데 C++은 메모리 관리를 수동으로 해야한다.

하지만 Rust 컴파일러는 매우 엄격해서 컴파일러가 아주 작은 확률로라도 메모리에 실수할 수 있다는 것을 확인한다면 컴파일러가 작동하지 않는다.

그렇기 때문에 Rust 코드가 컴파일된다는 것 자체가 제대로 작동한다는 의미이다.

덕분에 예상치 못한 메모리 에러에서부터 해방된다.

따라서 컴파일 되기가 어렵지만, 컴파일이 된다면 안전하고 정상 작동을 기대할 수 있다.

자동 주식 트레이딩 서비스나, 에어트래픽 관리 시스템과 같이 절대 에러가 나거나 실패해선 안되는 소프트웨어를 개발할 때 Rust는 정말 유용하다고 말할 수 있다.


2. Modern하다

Rust는 최신 프로그래밍 기법들을 많이 포함하고 있다.

함수형 프로그래밍 요소(map, filter, find,,)뿐만 아니라 cargo라고 불리는 패키지 매니저도 가지고 있다.

또한 병행성(Concurrency)병렬성(Parallelism)을 가지기 때문에 멀티 코어 프로세서 세상인 현재 아주 유용하다.

다른 언어로 작성된 시스템과도 잘 작동하므로 한 애플리케이션에서 어떤 느린 부분을 Rust를 써서 보완가능하다.



물론 C++에 비해 Rust는 여러 단점들도 존재한다.


  • 범용성
    하는 사람도 적도 필요로 하는 곳도 많지 않다.

  • 학습 난이도
    Rust만의 개념들은 배우는데 오래걸리고, Rust 특성 상 컴파일하기도 쉽지 않으므로 많은 공부를 요한다.

  • 라이브러리 부족
    아직 C++에 비해 신생언어로써 많은 라이브러리들은 아직 성숙하지 못하고, 커뮤니티 수와 크기도 적다.


그렇지만 개발자라면 과거에만 머물러만 있지 않고 새로운 스킬과 언어에 적응할 수 있어야 한다고 생각한다.

나중에 한 번 Rust를 이용하여 시스템을 만들어보고 싶다는 생각이다.

profile
백엔드 엔지니어 박희중입니다.

0개의 댓글