의견.png

러스트

위키원
some0410 (토론 | 기여)님의 2019년 6월 28일 (금) 09:45 판
이동: 둘러보기, 검색

러스트(Rust)는 2012년 미국 모질라재단그레이던 호어(Graydon Hoare)가 개발한 프로그래밍 언어이다. 기존의 C/C++과 동등한 수준의 빠른 속도를 보장하면서도 메모리 오류를 완전히 없애는 것을 목표로 하는 현대적인 프로그래밍 언어이다. 즉 속도와 안정성같은 성능 부분에있어서 많이 유익한 언어 이다.[1][2]

개요

러스트 프로그래밍언어는 사용자로 하여금 좀더 빠르고,더 안정적인 소프트웨어를 작성하도록 해준다. 프로그래밍 언어는 항상 저급언어고급언어의 조화 부분에서 삐걱대지만 러스트는 속도와 안정성,편의성까지 고려하는 프로그래밍언어이며, 항상 이용이 쉽고 안전한 언어는 속도면에서 부족하고, 그와 반대로 컴파일 속도등 퍼포먼스를 강조하는 언어들은 이용이 어렵고 안전성이 떨어지는 현상을 극복한 언어이다. 러스트는 구글의(Go)언어와 비슷한 목표를 꿈꾸며 성능면에서 앞도적인 우월을 목표로하고 있다. 필자는 요즘 화재가되고 있는 러스트 언어와 파이선(Python)을 함께 사용해서 블록체인의 proof of work 부분 을 사용햘때의 이점등을 중점으로 해당언어를 서술한다.

등장배경

러스트 언어의 역사

러스트는 원래 그레이던 호어가 혼자 개발하던 언어였다. 그러던 와중에 이 언어의 발전가능성을 알게된 모질라재단의 모질라가 2009년부터 스폰싱을 시작하였고, 2012년 1월에 드디어 본격적인 합동 개발을 시작한다. 따라서 그레이던 호어가 개인적으로 개발한 기간까지 합치면 거의 8년정도의 시간을 할애하여, 본격적인 개발이 시작된 후부터 약3년이 넘는 기간 동안 개발된 언어인것이다. 참고로 모질라는 웹 기술을 주도하는 사람이며 이런 러스트의 특성을 살려 웹브라우저를 다시 개량항 비전을 가지고 실제로 이를 위한 시험 프로젝트로 'Servo'라는 브라우저 엔진이 개발되고있다.[3]

특징

러스트 언어는 시스템 수준의 빠른 소프트웨어를 제작하기 위한 언어인데,C/C++ 언어와 동일한 수준의 퍼포먼스 를 달성하면서도 메모리의 오류를 줄여주는 특징이있다. 이는 함수형 프로그래밍 언어 로부터 발전된 타입 시스템 에서 발전하였고, 클래스 대신 트레이트(Trait)를 기반으로 다형성을 달성, 매크로의 활용이가능하고 크레이트(Crate)라는 단위로 라이브라리가 배포되고 Cargo라는 패키지 관리 프로그램으로 필요한 라이브러리를 자동으로 다운받을 수 있다. 세세하게 특징들을 분석해본다.[3]

보다 안정적인 메모리의 관리

이는 러스트 언어만의 독자적이면서도 가장 유일한 상용성을 기대할 수 있는 언어적 특징이기도하다. 기존의 언어는 메모리 안전성이 없거나, 아니면 쓰레기 수집기(garbage collection)을 사용하여야한다. 하지만 러스트는이러한 작업이 필요가 없다. 그이유는 러스트에는 '소유권'(ownership)이라는 개념을 적용하는데 어떤 객체를 가리키는 포인터는 여러 개가 있을 수 있지만, 그 중 오직 하나만 소유권을 갖개게되고 그 소유권이있는 포인터만으로 해당 객체의 내용을 바꿀수 있다. 여기서 핵심은 그 소유권을 가진 포인터가 사라질때, 자동을 메모리가 해제(free) 되는데, 확인 과정이 컴파일 시간에 이루어짐으로 그만큼 느려지는데, 쓰레기 수집이 동반하는 런타임 오버헤드가 러스트에는 없다. 이 규칙에 어긋나는 코드가 발견되면(즉, 메모리 안전성을 침해할 만한 코드가 발견되면), 컴파일 오류가 나고 이는 모든 변수가 초기값을 가지고 할당되며, 해제된 포인터에 접근하는 코드는 컴파일러가 사전에 미리 감지후 파일 오류를 일으키는 것이다.

장단점

각주

  1. 러스트 (프로그래밍 언어)〉, 《위키백과》
  2. Rust〉, 《나무위키》
  3. 3.0 3.1 , 〈러스트 프로그래밍 언어란 무엇이며, 왜 중요한가? 〉, 《PGR21》, 2015-02-14

같이 보기


  의견.png 이 러스트 문서는 프로그래밍에 관한 토막글입니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 이 문서의 내용을 채워주세요.