웹어셈블리 개발자, 파이썬보다 '러스트' 선호...왜?

notion imagenotion image
인도 IT 전문 잡지 애널리틱스 인사이트가 소프트웨어 컨설팅 기업 스코트 로직(Scott Logic)의 최신 보고서인 ‘웹어셈블리 이용 현황 2022(The State of WebAssembly 2022)’에 주목했다.
응답자 299명과의 인터뷰를 바탕으로 작성한 해당 보고서는 개발자 45%가 웹어셈블리(WebAssembly) 개발에 파이썬보다 러스트를 사용한다고 답하였다.
러스트는 2016년부터 꾸준히 1위를 차지한 웹어셈블리 프로그래밍 언어이다. 최근 들어 웹어셈블리 개발자 사이에서 블레이저(Blazor)나 파이썬 사용 빈도도 증가했으나 여전히 러스트의 인기가 압도적으로 높다. 웹어셈블리 개발에 파이썬보다 러스트를 주로 사용하는 이유는 무엇일까?
러스트는 본래 C++을 대체할 언어로 개발되어 웹 애플리케이션 개발에 이용되었다. 러스트는 큰 단점 없이 파이썬, C++, 자바의 한계를 보완한다. 아마존, 구글, 마이크로소프트, 클라우드페어 같은 소프트웨어 대기업들은 뛰어난 보안 기능 때문에 다른 언어 대신 러스트를 택하였다.
러스트는 동적 타이핑 언어를 기반으로 개발되었으나 정적 타입을 지원하며, 막강한 컴파일 타임으로 파이썬보다 낫다고 평가받는다. 드롭박스(Dropbox)는 파일 동기화 코드를 초기에 파이썬으로 작성하였다. 하지만 디버깅 문제 때문에 다시 러스트로 개발 작업을 진행해야 했다.
또, 온라인 교육 플랫폼 코세라(Coursera)는 초기 개발 시 C언어를 이용하였으나 보안 문제를 해결하기 위하여 러스트로 전환하였다.
지금까지 보았을 때, 파이썬보다 러스트의 장점이 더 많은 것처럼 보인다. 그렇다면, 러스트의 구체적인 장점은 무엇일까?
먼저, 러스트의 성능을 살펴볼 수 있다. 러스트는 기계어로 직접 컴파일되기 때문에 코드와 컴퓨터 사이에 가상 머신이나 인터프리터가 존재하지 않는다. 인터프리터는 소스 코드를 기계어로 번역하는 복잡한 과정이다. 따라서 파이썬과 같은 인터프리터 언어는 속도가 느릴 수밖에 없다.
반면, 러스트는 스레드 및 메모리 관리도 용이하다. 러스트는 가비지 컬렉션이 부재하기 때문에 컴파일러가 필요에 따라 독립변수를 지워 잘못된 메모리 참조 누수를 방지할 수 있다.
러스트는 메모리 관리 기능도 뛰어나다. 러스트는 가비지 컬렉션 기능이 없음에도 불구하고 저수준 메모리 컨트롤이 잘 되기 때문에 메모리 관리 성능이 월등하다. 즉, 프로그램 실행 시 스택을 형성하여 프로그램을 트래킹하여 메모리를 비우며 관리한다.
러스트의 장점으로 디버깅도 언급할 수 있다. 대표적인 사례로 페이스북의 백엔드 소스코드 개발 사례를 언급할 수 있다. 페이스북은 초기에 백엔드 개발 시 파이썬을 사용했으나 방대한 디버깅 비용 때문에 러스트로 변경할 수밖에 없었다고 밝혔다. 러스트는 컴파일 시 다양한 버그를 탐지할 수 있기 때문에 프로그램 실행 시 디버깅하는 과정에 비하여 시간과 비용을 절약할 수 있다.
마지막 장점으로 병렬 컴퓨팅을 살펴볼 수 있다. 안정된 병렬 컴퓨팅 환경이 가능하여 코드 성능을 향상할 수 있기 때문이다. 러스트는 파이썬과는 달리 여러 방법으로 병렬 컴퓨팅을 적용할 수 있다. 파이썬은 스레드 성능을 유지하기 위하여 동시에 하나의 스레드만 이용 가능하며 멀티 코어를 활용할 수 없다.
Copyright ⓒ 코딩월드뉴스 무단 전재 및 재배포 금지
본 콘텐츠는 뉴스픽 파트너스에서 공유된 콘텐츠입니다.