본문 바로가기
0. IT 기술 트렌드/>> News & 트렌드

러스트, C/C++ 대체할 수 있을까?

by 블록메타 2023. 1. 18.
테크버스 techverse

 

MS 애저의 마크 러시노비치 CTO는 업계에서 C 및 C++ 언어를 "더 이상 사용되지 않는" 언어로 취급해야 한다고 강조했다. 

최근 미국 지디넷에 따르면, 마크 러시노비치 CTO는 보안과 안정성 문제를 해결하기 위해 새 프로젝트에서 C 또는 C++ 대신 러스트를 사용할 것을 주장했다. 

 

C와 C++는 전 세계에서 가장 많이 쓰이는 프로그래밍 언어 중 하나다. 빠른 속도와 폭 넓은 활용도가 장점으로 인프라 및 시스템, 게임 등 다양한 분야에서 쓰이고 있다. 

 

러시노비치는 왜 그런게 말을 한 걸까요?

 

C언어가 워낙 많이 쓰이고 업계에서 인기가 많은 언어인데 보안이나 안정성 면에서 지속적인 문제가 있긴 있었어요. 메모리 버그라고 하는 구조적인 문제가 있어서 C언어 대신 러스트를 사용해야 한다고 CTO가 주장하더고요.

 

 

그럼 '러스트(Rust)'는 어떤 언어인가요? 

 

 러스트는 모질라재단에서 만든 프로그래밍 언어인데요 개발 초기부터 메모리 버그 등을 해결하기 위해 만들어졌어요. 그럼 보안 결함도 줄이고 생산성 향상 목적으로 만들어지다 보니까 최신 개발환경에 적합하고 개발 안정성이나 프로그램 효율을 높이기 위해서 만들어졌죠. 그러다 보니깐 나오자마자 인기가 높았어요. 최근 5~6년 연속으로 개발자 프로그래밍 언어 순위에서 1위를 했고 주목을 많이 받고 있었죠 

 

러스트가 뭔지 궁금해서 찾아보니까 메타에서도 이 언어를 사용하고 있고 굵직한 프로그램이나 기업에서 이런 언어를 포커싱하고 사용하면 인기가 더 많아지는 것 같더라고요. 

 

출시한 지 7년 정도밖에 되지 않았어요. 그렇게 오래된 건 아닌데 이미 aws, 구글, MS 등 주요 IT 기업들에게 클라우드가 중요하잖아요. 시스템 인프라안에서 백앤드 중심으로 러스트를 도입하고 있죠. 그러면 기존에 사용하던 C언어를 러스트로 바꾸면 문제가 생기지 않을까요?

 

러스트나 고(Go)와 같은 새로 나온 언어들은 그런 구조를 해결하고 나온 언어라서 문제들이 많이 없다고 볼 수가 있죠. 

 

MS 애저 CTO는 클라우드가 도입되면서 더 강하게 얘기할 수 밖에 없었던 거죠. 최근에 코로나-19이후 클라우드가 본격적으로 도입되면서 사이버 공격들이 엄청나게 늘어났거든요.  보안이 중요해졌죠. 

 

그러다 보니깐 가장 큰 문제가 클라우드는 모든 게 다 연결돼 있잖아요. 보안 누수가 생기면 전부 뚫릴 수 있다는게 가장 큰 문제이고 CTO도 그 문제에 대한 스트레스가 매우 많은 거 같아요. 그러니까 클라우드가 뚫렸을 때 다른곳으로 피해가 확산될 수 있으니까 클라우드의 피해를 최소화하고 싶다는 의지가 있어서 이렇게 강하게 얘기했던 것 같아요.

 

그럼 러스트가 C언어를 대체할 수 있을 거라고 보세요?

 

 

 

완벽하게 대체되지는 못할 거고요. 해외에서는 이미 얘기가 많았어요.  완벽하게 대체 될 거다 이런 건 아닌데 사실 C언어가 워낙 오래된 프로그래밍 언어이잖아요. 이미 50년 이상 된 프로그래밍 언어거든요.

 

그러다 보니까 업계에서도 얘기하는 게 워낙 좋은 언어고 잘 짜여있고 구조적 훌륭한 언어긴 하지만 최신 기술 같은 것들을 받아들이는데 어렵지 않느냐는 얘기가 나오고 있는 게 사실이에요. 그러다 보니까 지금도 다양한 언어들과 연계해서 쓰고 있거든요. 한편에서는 굳이 이걸 사용해야 할 필요가 있느냐는 얘기도 있기도 하고요 그러다 보니까 일부에서는 사용할 사람들은 사용하고 아닌 사람들은 굳이 사용할 필요 없다고 갈리기는 하는데 이걸 두고 굳이 싸울 필요 없을 것 같은데 애저 CTO가 워낙 말을 강하게 해서 그런 것일 뿐이지 어떤 핵심 기능이 있을 때 그거에 맞는 언어를 쓰는지가 더 중요하거든요.

 

최근 가장 중요한 분야가 클라우드잖아요. 클라우드를 컨트롤하는 가장 핵심적인 프로그램 중 하나가 쿠버네티스이거든요. 

그게 구글에서 만든 고(Go) 라는 언어로 만들었어요.

 

그러다 보니까 쿠버네티스를 컨트롤하기 위해서 Go를 해야 하잖아요. 자연스럽게 Go라는 언어가 뜰 수 밖에 없겠죠. C언어는 쓰이는 곳이 많아요. 단순히 프로그램을 만드는 게 아니고 임베디드 시스템(embedded system)에 작은 기계라든지 제품에 다 들어가 있거든요. 그래서 C언어가 전부 없어지는 게 말이 안되는 거 같고 심지어 누리호의 상당 부분은 C언어로 이루어져 있어요. 팰컨9 로켓 같은 것도 대부분 C언어로 이루어져 있거든요.  그러다보니까 라이브러리 전부를 대체할 수는 없으니까 모든 걸 대체한다는 건 말이 안 되는 거 같고

 

가장 걱정하는 것 중 하나는 자동차들이 자율주행으로 나올 거잖아요. (해킹) 공격을 받을 것에 대한 대책이 나올 것이냐 아까 말한 메모리 취약점을 공격해서 나의 차가 해킹되면 큰일이 날 수 있잖아요.

 

그런 것들에 대한 보안을 어떻게 할 것이냐를 고민하는 시기가 오고 있거든요. 그러다 보니까 자율주행 시스템도 좀 더 안전한 언어로 써야 하는 거 아니냐 대안이 필요한 거 아니냐 

 

최근에 그런 것들을 C, C++언어로 쓰다가 러스트로 조금씩 바꾸고 있다고 해요. 안전하게 차를 만들기 위해서 도입을 하고 있다고 하더라고요.

 

산업 발전으로 보안이나 안정성 이슈에 대한 니즈가 생기면서 새로운 언어들이 대체가 되고 있는게 시대의 흐름인 것 같네요.

 

 

 

Reference

https://www.youtube.com/watch?v=YLbmlt9pKyE

댓글