프로그래밍 언어 '고'와 '러스트' 명암 엇갈려...왜?

둘 다 개발자에 인기는 많지만 실제 활용도는 차이나

컴퓨팅입력 :2020/05/07 07:10    수정: 2020/05/07 17:04

소프트웨어 수요가 늘어나고 기술이 발전하면서 각 분야의 특성에 맞춘 프로그래밍 언어가 대거 등장하고 있다.

최근에는 파이썬이 인공지능(AI) 관련 풍부한 라이브러리를 바탕으로 인기를 얻으며 AI 분야에서 폭넓게 쓰이고 있다.

이 밖에도 코틀린, 타입스크립트, 줄리아 등 다양한 언어가 등장하고 있다. 하지만 이 사이에서 주목을 받으며 세를 넓히는 언어와 그렇지 않은 언어로 명암이 엇갈리는 추세다.

대표적으로 고(GO)와 러스트 역시 최근 가장 주목받는 언어들이지만 행보는 판이하게 다르다.

고는 출시 후 여러 대형 프로젝트에 쓰이며 빠르게 점유율을 높이고 있다. 특히 IT업계에서 가장 주목 받는 분야 중 하나인 클라우드 시장을 중심으로 급격하게 성장하고 있다. 해커랭크에서 진행한 설문조사에 따르면 개발자가 가장 배우고 싶은 언어 1위로 꼽히기도 했다.

러스트 역시 스택오버플로우에서 진행된 프로그래밍 언어 인기 투표에서 4년 연속 1위를 차지할 정도로 높은 인기를 가진 언어다.

하지만 투표에 참여한 응답자 중 97%는 실제 업무에서 러스트를 사용하지 않는 것으로 나타났다. 또한 러스트를 배우려는 개발자가 많지 않고 러스트로 진행되는 대형 프로젝트가 없어 앞으로의 전망도 밝지 않을 것이라는 반응이 나오고 있다.

지디넷코리아는 현역 개발자를 대상으로 고와 러스트에 대한 인식과 전망에 대해 이야기를 들어봤다.

구글 고(GO) 프로그래밍 언어

■ 대형 프로젝트 등 사용 저변 차이

IT 업계 개발자들은 프로그래밍 언어를 선택할 때 활용성을 먼저 고려한다고 입을 모았다. 즉 해당 언어를 기반으로 한 대형 프로젝트가 많거나 사용 저변이 넓을수록 가치가 높다고 판단한다는 것이다.

고는 글로벌 IT 선두 기업 중 하나인 구글에서 개발한 만큼 해당 언어로 진행되는 프로젝트가 늘어날 것이란 기대와 함께 개발자의 관심이 높아지고 있다.

실제로 구글은 컨테이너 오케스트레이션 플랫폼 쿠버네티스를 고로 개발하는 등 주요 프로젝트에 적극적으로 사용 중이다. 이 밖에도 드롭박스, 넷플릭스, 트위치 등 대형 IT기업도 고를 점차 도입하고 있다.

특히 도커, 쿠버네티스 등 최근 전세계적으로 상승세를 기록 중인 클라우드 기반 기술이 고로 만들어지면서 인기가 높아지고 있다.

이미 국내에서도 당근마켓이 고를 적극적으로 활용하고 있으며 이더리움 기반 블록체인 기업에서도 필수적으로 사용한다. 또한 대기업에서도 커맨드 도구나 사내 API를 개발하는 등 서브 언어로 활용하고 있는 것으로 확인됐다.

한 IT업계 개발자는 “고는 구글이 만든 만큼 앞으로도 많이 쓰일 것이란 기대감이 있고 대형 프로젝트가 연달아 진행되는 만큼 배워볼 가치가 있는 언어라고 자연스럽게 느끼는 것 같다”고 말했다.

반면 모질라재단에서 만든 러스트는 아직 이렇다 할 활용 사례가 없어 개발자가 해당 언어에 대한 가치를 체감하기 어렵다.

아마존웹서비스(AWS)의 보안 강화를 위해 인프라 일부분을 러스트로 개발한 사례가 있지만 IT업계 전반적인 프로젝트나 도입 사례는 많지 않다.

다른 개발자는 “러스트가 안정성, 보안, 속도 등에서 좋다는 말이 많은데 이를 실제로 검증할 수 있는 대형 프로젝트가 없다 보니 배울 가치가 있는 언어라는 생각이 들지 않는다”라며 러스트를 사용하지 않는 이유를 말했다.

러스트

■ 초반 진입 장벽과 효율성 문제

개발자가 고를 선호하는 이유는 성장가능성과 더불어 다른 언어에 비해 배우기 쉽고 효율적이라는 점이 꼽힌다.

러스트는 잠재력이 고보다 더 뛰어날 수 있지만 진입장벽이 높아 제대로 사용하기엔 시간과 비용이 많이 소모되는 것이 단점으로 지적됐다.

고는 작성방식이 C와 비슷해 관련 언어를 사용하던 개발자가 습득하기 유리하다는 장점이 있다. 또한 작성이 복잡하고 디버깅도 어려웠던 병렬처리를 쉽게 할 수 있도록 지원하는 고루틴 등 개발을 위한 편의 기능을 다양하게 제공한다.

이 밖에도 메모리를 자동으로 관리하는 가비지 컬렉터 등을 지원해 안전하면서도 빠른 개발을 돕는다.

소프트웨어 엔지니어는 변규현씨는 “고를 사용하게 된 이유는 우선 문법이 간결하고 배포에 많은 이점이 있기 때문”이라며 “OS 의존도가 낮아서 배포할 때 OS에 따른 추가 파일이나 모듈을 넣을 필요가 적어 상대적으로 파일의 크기를 줄일 수 있고 비용과 개발 속도 면에서 유리하다”고 설명했다.

반면 러스트는 C, C++ 등의 기계어에서 발생하는 보안 결함인 메모리 버그를 해소하려는 목적으로 만들어져 안전하고 빠른 속도가 강점이다. 다만 문법이 엄격하고 기능이 다양해 초반에 배우기 어렵다는 단점이 있다.

더불어 실제 업무에 적용되는 사례가 적고 커뮤니티도 작아 관련 교육자료를 찾기 어렵고 전문가에게 도움을 청하기도 어려운 이중고가 발생한다.

일부 개발자는 고를 비롯해 코틀린, 파이썬 등 최근 인기를 얻고 있는 언어들은 대부분 쉽게 배울 수 있다는 점을 들며 시대의 흐름에 맞지 않는 것 같다고 지적하기도 했다.

변규현 엔지니어는 “러스트는 내부 잠재력이 더욱 뛰어나 제대로 사용한다면 고보다 더욱 다양한 분야에서 깊이 있게 사용할 수 있는 것으로 알고있다”며 “하지만 그만큼 초반 진입 장벽이 높아 제대로 활용하려면 고와 비교해 5배에서 10배는 더 학습을 해야할 것”이라고 말했다.

지그재그의 소성운 데이터과학자는 “러스트는 함수형 프로그래밍 요소가 강해서 이러한 방식에 익숙하지 않으면 어려움을 느낄 수 있다”며 “러스트가 어렵고 불편한 것은 사실이지만 그만큼 더 자유롭게 개발하고 프로그램의 효율을 높일 수 있다”고 설명했다.

실제로 음성채팅 서비스인 디스코드의 경우 내부 지원 기술을 고로 구현했으나 충분한 성능이 나오지 않아 러스트로 교체한 바 있다. 잦은 기능 엑세스로 인해 고의 자동 메모리 관리 기능인 가비지 컬렉터에 부하가 걸렸기 때문이다.

■ 인지도에 따라 기업 적용 비율도 달라져

개발자들은 러스트가 고에 비해 인지도가 부족함에도 홍보 등 언어를 알리기 위한 작업이 부족하다는 부분도 단점으로 꼽았다.

고는 구글이라는 유명 기업에서 만들었을 뿐 아니라 쿠버네티스 등 주요 프로젝드에 쓰이면서 자연스럽게 알려지고 있다.

반면 러스트는 개발 기업의 인지도가 낮고 대형 프로젝트도 진행되고 있지 않은 상황에서 별도의 홍보 작업도 이뤄지지 않아 개발자가 아니면 관련 정보를 알기 어렵다는 것이다.

결국 낮은 인지도로 인해 기업에서 해당 언어를 도입하기 위한 고려 자체가 이뤄지지 않고 있다.

실제로 모질라의 러스트 서베이 팀이 4천여 명의 개발자를 대상으로 러스트를 사용하지 않는 이유를 조사한 결과 회사에서 개발 업무에 러스트를 도입하지 않아 사용할 수 없다는 응답이 가장 큰 비중을 차지했다.

관련기사

지디넷에서 직접 여러 실무 개발자에게 문의했을 때도 절반 이상은 러스트를 모르거나 이름만 들어본 수준이었다. 실제 러스트를 사용해보거나 업무에 적용한 개발자는 찾기 어려웠다.

변규현 엔지니어는 “고는 현재 가장 성장하고 있는 인프라스트럭처나 클라우딩 컴퓨터 분야에선 대체할 수 있는 언어가 없다고 본다”며 “고는 CLI, 네트워크 프로그래밍 부분에서 부족한 점이 없는 만큼 해당 분야에서 적어도 최소한의 성능을 보장하고 있어 앞으로도 더욱 성장할 것으로 보인다”고 예상했다.