러스트가 개발자의 사랑을 받는 이유

메모리 버그 줄여 C 대체재로 각광

컴퓨팅입력 :2020/01/22 11:43    수정: 2020/01/22 11:43

신생 개발언어의 인기 속에 개발자에게 가장 사랑받는 언어로 '러스트'가 뽑혔다.

21일(현지시간) 미국 지디넷에 따르면, 오픈소스 개발언어인 '러스트'가 스택오버플로우에서 진행된 투표에서 83.5%의 지지를 얻어 1위를 차지했다. 파이썬과 타입스크립트가 73.1%의 지지를 받으며 공동 2위를 기록했다.

러스트는 파이어폭스 웹브라우저로 유명한 모질라에서 2010년 발표한 개발언어다. 1.0버전은 2015년 5월 공개됐다.

스택오버플로우는 매년 개발자를 대상으로 설문조사를 실시한다. 러스트는 지난 4년 동안 가장 사랑받는 언어로 뽑혀왔다. 투표에 참여한 응답자 97%가 러스트를 사용하지 않음에도 1위를 차지했다는 점이 특이하다.

제이크 굴딩은 스택오버플로우 블로그에서 "짧은 답은 수많은 여타 언어에서 나타나는 고충을 러스트가 해결한다는 것"이라며 "러스트는 제한된 수의 단점으로 확실한 진전을 제공한다"고 러스트의 인기 이유를 설명했다.

제이크 굴딩은 세계 최초 러스트 컨설턴트회사인 인터거32의 공동창업자 중 한명이다.

러스트는 C, C++ 등의 기계어에서 발생하는 보안 결함인 메모리 버그를 해소하려는 목적으로 만들어졌다. 모질라 직원 그레이든 호아레의 개인 프로젝트로 2006년 시작됐는데, 멀티코어 하드웨어 환경의 동시성, 병렬성을 지원하고 메모리 안정성을 보장하는 정적 타입 시스템을 제공한다.

안정성을 보장하면서 높은 성능의 애플리케이션을 만들 수 있어 빠르게 인기를 얻었다.

모질라는 2016년 파이어폭스 브라우저를 러스트로 개발해 성능을 업그레이드했다.

러스트 지원군은 꽤 탄탄하다. 일단, 모질라는 러스트 개발을 별도 법인으로 분리했다.

마이크로소프트는 윈도 운영체제의 요소에서 메모리 관련 버그를 제거하기 위해 러스트를 채택했다. 마이크로소프트는 2018년 단일 버그 제거용 패치에 평균 15만달러의 비용을 들였다. 그해 발생하나 버그 중 468건이 메모리 문제였다. 지난 10년간 윈도 OS 보안 패치의 70% 이상이 메모리 관련 버그를 해결하기 위해서였다.

아마존웹서비스(AWS)도 작년 러스트 프로젝트 스폰서로 나섰다. AWS는 람다, EC2, S3 등의 서비스에 러스트를 사용중이다. 주로 성능에 민감한 서비스가 러스트로 만들어졌다. 2018년 AWS에서 공개한 오픈소스 가상화 기술 '파이어크래커(Firecracker)'도 러스트로 만들어졌다.

모질라리서치는 러스트를 "속도, 메모리 안정성, 병렬성에 초점을 맞춘 시스템 프로그래밍 언어"로 묘사한다.

러스트는 C나 C++ 같은 시스템 언어의 대안으로서 게임 엔진, OS, 파일시스템, 브라우저, VR 시뮬레이션 엔진 등을 개발하는데 사용되고 있다. 러스트 프로젝트의 스폰서인 모질라는 "개발자는 러스트를 사용해 버그와 공격에 덜 시달리는 소프트웨어를 만들 수 있다"고 주장한다.

제이크 굴딩은 타입스크립트, 파이썬 등의 최근 급부상에 대해 "개발자가 오늘날 더 큰 코드기반에서 동적 타입의 현상태 때문에 고통받고 있다는 신호를 보여준다"고 설명했다.

그는 "정적 타입 언어는 데이터와 해당 동작에 대한 컴파일러 검사 제한을 허용해, 인지 오버 헤드와 오작동을 완화해준다"며 "러스트의 정적 타입은 개발자의 방식에서 벗어나면서 장기 유지관리를 독려하는데 최선"이라고 강조했다.

러스트의 또 다른 인기 이유는 하드웨어와 메모리에 직접 접속한다는 점이다. 굴딩은 임베디드 시스템, 베어메탈 개발, OS 커널 등에서 러스트가 도움을 준다고 밝혔다.

시스템 코드는 오랜 기간 유지되며 SW의 부가기능 요소의 기반을 이룬다. OS의 코드 기반 문제를 해결하려 러스트를 탐색하던 마이크로소프트는 영구적인 수명을 고려했다.

관련기사

굴딩은 "현대의 일부 개발은 장기 존속을 별로 요구하지 않지만, 수많은 사업이 코드 기반이 미래에 사용가능하고 예측가능하게 될 것이란 점을 알기 바란다"며 "러스트는 이를 인지하고, 이전 버전과 호환성 및 안정성을 의식한 디자인 결정을 내렸다"고 설명했다. 그는 "러스트는 향후 40년을 위해 설계된 언어"라고 덧붙였다.

러스트가 완전무결한 건 아니다. 어느 개발언어와 마찬가지로 문제점과 한계를 갖는다. 강력한 타입 시스템과 메모리 안전성에 중점을 두기 때문에 코드 컴파일 중 잦은 오류를 보인다는 점이 대표적 문제로 지적된다.