2019.11.06

“배우기 어렵지만 빠르다” 러스트 언어가 뜨는 이유

Matt Asay | InfoWorld
아직 한 번도 러스트(Rust)로 무엇인가를 작성해 본 적이 없을지 모르지만, 조만간 모질라가 만든 이 시스템 수준 프로그래밍 언어를 사용할 가능성이 크다. 스택 오버플로우(Stack Overflow)의 2019년 개발자 설문조사에서 러스트는 “가장 사랑받는” 언어로 선정됐다. 반면에 레드몽크의 연례 개발언어 순위에서는 20위 밖(21위를 기록)에 머물렀다.

“사용하기 어렵고 러스트가 내세우는 메모리 안정성과 정확성에 실망”했다는 러스트 사용자의 일반적인 평가를 생각하면, 높은 순위가 아닐 수 없다. 
 
ⓒ GettyImagesBank

그렇다면 러스트는 왜 배우기 어려우면서도 사랑을 받을까? 개발자들과 대화를 나눠보면, 이유는 러스트가 “가드레일이 있는 시스템 프로그래밍 언어”이기 때문으로 보인다. 

대부분 개발자가 보통은 시스템 프로그래밍 영역에는 발을 들이지 않는다. 예를 들어, 애플리케이션 개발자는 기반 하드웨어에 접근할 필요가 없는 것이 일반적이다. 다른 소프트웨어를 구동하는 플랫폼을 구축하는 일도 거의 없다. 하지만 C나 C++ 같은 저수준 프로그램 언어를 사용하는 개발자에게 러스트는 묵시록과 같다. C++에서나 하던 수동 메모리 관리를 하면서 마치 고수준 개발 언어 같은 느낌을 준다.

개발자 데이빗 바스키는 러스트의 매력을 다음 몇 가지로 제시했다.

-    성능. 러스트는 C/C++가 번창했던 영역에서 이들 언어를 대체할 수 있다. “예를 들어, 지연에 민감한 네트워크 서비스용으로 가비지 컬렉션이 없는 러스트의 런타임은 거의 없는 듯한 지연 시간을 낳는다.”
-    안정성. “러스트의 입력 시스템과 바로우 체커(borrow Checker)는 파이썬이나 자바, C++에서 정상으로 받아들여지는 모든 등급의 버그를 방지해 준다.
-    개발자 생산성. “카고(Cargo)와 빌드 툴, 패키지 관리자는 지금까지 사용한 것 중 최고의 빌드 시스템 및 패키지 관리자 중 하나이다.” 러스트는 또한 탁월한 내장 문서화 툴도 제공한다.

바스키의 경험은 오소(Oso)의 CTO 샘 스콧의 경험과 비슷하다. 자바나 루비 온 레일즈 같은 상위 프로그래밍 언어를 사용하던 스콧에게 C는 즐거운 경험이 아니었다. 스콧은 “C는 끔찍했는데, 메모리 문제나 세그먼트 오류 같은 문제에 계속 빠졌다. 그리고 온종일 코드와 싸움을 하고 있다는 느낌이었다”라고 말했다. 반대로 러스트는 “가드레일이 있는 시스템 프로그래밍 언어”이다. 스콧의 설명은 다음과 같다.

“해야 할 것은 모두 저수준 시스템 프로그래밍이었지만, 디버그와 바로우 체커나 컴파일러같이 코드를 안전하게 만드는 데도 많은 도움을 받았고, 나중에는 린터 같은 툴의 도움도 받았다. 객체 지향 프로그램의 친숙한 측면을 너무 많이 제공해서 원하는 시스템 구축 방법에 대한 내 정신적인 모델과 잘 맞는 것 같았다.”

오소의 공동 설립자로서 스콧은 저수준 프로그래밍을 안 할 수 없었을 것이다. 오소의 솔루션은 백엔드 인프라 보안을 개발자에게 드러나지 않도록 단순화하는 것으로, 저수준 언어가 제공하는 성능이 필요하다. 스콧은 “구글 고와 같은 가비지 컬렉션 언어는 성능이 우리가 원하는 수준으로 일정하지 않기 때문에 사용할 수 없다”고 말했다.

이 모든 이야기는 좋지만, 아직은 비교적 새로운 언어라 개발자 인력을 확보하기 어렵다는 문제가 있다. 결국 새로운 개발자에 러스트에 입문해야 하는데, 이 때 중요한 것은 이런 전환을 도와주는 사람이다. 여기에 러스트의 또 다른 장점이 있다. 바스키는 “러스트 커뮤니티는 열정적이고 친절하고 똑똑한 사람들로 가득 차 있다. 커뮤니티에는 절대적인 강령이 있는데, 무례나 괴롭힘은 용인하지 않는다. 일례로 러스크 커뮤니티는 그 어떤 기술 커뮤니티보다 LGBTQA 사람들의 참여도가 높다”고 말했다.

스콧에 따르면, 러스트 커뮤니티는 개발자가 몇 개월 만에 러스트를 고를 수 있는 가장 큰 이유이다. 스콧은 “마음가짐의 변화가 필요하다”며, 기본적인 것을 이해하고 나면, 응당한 보상을 얻을 수 있다고 설명했다.

그렇다면, 그렇게 많은 개발자가 러스트를 사랑하는 것이 그리 놀라운 일은 아니다. 장점은 크고 단점은 러스트의 커뮤니티가 격한 환경으로 최소화해 준다. editor@itworod.co.kr


2019.11.06

“배우기 어렵지만 빠르다” 러스트 언어가 뜨는 이유

Matt Asay | InfoWorld
아직 한 번도 러스트(Rust)로 무엇인가를 작성해 본 적이 없을지 모르지만, 조만간 모질라가 만든 이 시스템 수준 프로그래밍 언어를 사용할 가능성이 크다. 스택 오버플로우(Stack Overflow)의 2019년 개발자 설문조사에서 러스트는 “가장 사랑받는” 언어로 선정됐다. 반면에 레드몽크의 연례 개발언어 순위에서는 20위 밖(21위를 기록)에 머물렀다.

“사용하기 어렵고 러스트가 내세우는 메모리 안정성과 정확성에 실망”했다는 러스트 사용자의 일반적인 평가를 생각하면, 높은 순위가 아닐 수 없다. 
 
ⓒ GettyImagesBank

그렇다면 러스트는 왜 배우기 어려우면서도 사랑을 받을까? 개발자들과 대화를 나눠보면, 이유는 러스트가 “가드레일이 있는 시스템 프로그래밍 언어”이기 때문으로 보인다. 

대부분 개발자가 보통은 시스템 프로그래밍 영역에는 발을 들이지 않는다. 예를 들어, 애플리케이션 개발자는 기반 하드웨어에 접근할 필요가 없는 것이 일반적이다. 다른 소프트웨어를 구동하는 플랫폼을 구축하는 일도 거의 없다. 하지만 C나 C++ 같은 저수준 프로그램 언어를 사용하는 개발자에게 러스트는 묵시록과 같다. C++에서나 하던 수동 메모리 관리를 하면서 마치 고수준 개발 언어 같은 느낌을 준다.

개발자 데이빗 바스키는 러스트의 매력을 다음 몇 가지로 제시했다.

-    성능. 러스트는 C/C++가 번창했던 영역에서 이들 언어를 대체할 수 있다. “예를 들어, 지연에 민감한 네트워크 서비스용으로 가비지 컬렉션이 없는 러스트의 런타임은 거의 없는 듯한 지연 시간을 낳는다.”
-    안정성. “러스트의 입력 시스템과 바로우 체커(borrow Checker)는 파이썬이나 자바, C++에서 정상으로 받아들여지는 모든 등급의 버그를 방지해 준다.
-    개발자 생산성. “카고(Cargo)와 빌드 툴, 패키지 관리자는 지금까지 사용한 것 중 최고의 빌드 시스템 및 패키지 관리자 중 하나이다.” 러스트는 또한 탁월한 내장 문서화 툴도 제공한다.

바스키의 경험은 오소(Oso)의 CTO 샘 스콧의 경험과 비슷하다. 자바나 루비 온 레일즈 같은 상위 프로그래밍 언어를 사용하던 스콧에게 C는 즐거운 경험이 아니었다. 스콧은 “C는 끔찍했는데, 메모리 문제나 세그먼트 오류 같은 문제에 계속 빠졌다. 그리고 온종일 코드와 싸움을 하고 있다는 느낌이었다”라고 말했다. 반대로 러스트는 “가드레일이 있는 시스템 프로그래밍 언어”이다. 스콧의 설명은 다음과 같다.

“해야 할 것은 모두 저수준 시스템 프로그래밍이었지만, 디버그와 바로우 체커나 컴파일러같이 코드를 안전하게 만드는 데도 많은 도움을 받았고, 나중에는 린터 같은 툴의 도움도 받았다. 객체 지향 프로그램의 친숙한 측면을 너무 많이 제공해서 원하는 시스템 구축 방법에 대한 내 정신적인 모델과 잘 맞는 것 같았다.”

오소의 공동 설립자로서 스콧은 저수준 프로그래밍을 안 할 수 없었을 것이다. 오소의 솔루션은 백엔드 인프라 보안을 개발자에게 드러나지 않도록 단순화하는 것으로, 저수준 언어가 제공하는 성능이 필요하다. 스콧은 “구글 고와 같은 가비지 컬렉션 언어는 성능이 우리가 원하는 수준으로 일정하지 않기 때문에 사용할 수 없다”고 말했다.

이 모든 이야기는 좋지만, 아직은 비교적 새로운 언어라 개발자 인력을 확보하기 어렵다는 문제가 있다. 결국 새로운 개발자에 러스트에 입문해야 하는데, 이 때 중요한 것은 이런 전환을 도와주는 사람이다. 여기에 러스트의 또 다른 장점이 있다. 바스키는 “러스트 커뮤니티는 열정적이고 친절하고 똑똑한 사람들로 가득 차 있다. 커뮤니티에는 절대적인 강령이 있는데, 무례나 괴롭힘은 용인하지 않는다. 일례로 러스크 커뮤니티는 그 어떤 기술 커뮤니티보다 LGBTQA 사람들의 참여도가 높다”고 말했다.

스콧에 따르면, 러스트 커뮤니티는 개발자가 몇 개월 만에 러스트를 고를 수 있는 가장 큰 이유이다. 스콧은 “마음가짐의 변화가 필요하다”며, 기본적인 것을 이해하고 나면, 응당한 보상을 얻을 수 있다고 설명했다.

그렇다면, 그렇게 많은 개발자가 러스트를 사랑하는 것이 그리 놀라운 일은 아니다. 장점은 크고 단점은 러스트의 커뮤니티가 격한 환경으로 최소화해 준다. editor@itworod.co.kr


X