Rust 소모임이 개설되었습니다. > Rust

Rust

Rust 소모임이 개설되었습니다. 정보

Rust 소모임이 개설되었습니다.

본문

우선 소모임 개설에 힘써주신 마젠토님께 감사드립니다.

 

유명한 개발자 유투버인 포프님이

개발자는 2가지 언어를 할 줄알아야하는데,

mamaged 언어 unmanaged 언어를 해야한다고 한영상을 보고

mamaged 언어에 대한 뭔가 모자람을 알게되었습니다.

 

managed 언어?

C언어 같이 포인터 호출하면서 직접로 메모리에 접근해서 사용하는 메모리 관리 언어

 

메모리 관리언어의 장점은

결과물의 속도 - 빠른 속도에 있습니다.

 

속도 관련 최신기술의 최전선에서 사용되는 분야로 게임 엔진을 꼽을 수 있는데

그중 C++이 많이 사용된다고 합니다.

 

아이러니 한건,  Unity의 경우는 C#을 (객체 지향)이용하는데,

그래서 Unity가 성능 튜닝시 문제가 있다고 합니다.

그런데 더 아이러니한건 성능 이슈관련한 Unity를 사용한 고사양 게임인

원신의 경우? 어떻게  Unity로 만들었을까?

원신에서 Unity 코드의 라이센스를 구매해서 직접 Unity의 코더코드를 튜닝해서

성능이슈에 대응한다고 하네요.

 

전, php 라는 unmanaged 언어는 할줄아니

managed 언어를 알면 되겠구나하고 아니, 내가 managed 언어를 할 수 있을까?

의심하고 있던차에 어 이건 할만하겠는데, 아니 이건 해야겠는데 라는 언어가 있더라구요.

그게 Rust 입니다. 시기적으로 Go lang 이 유행하고 있던 터라 php 다음 서버언어로 Go를 잠깐 공부하고 있엇는데, 이상하게 Go를 검색하면 이상 한 톱니 바뀌 안에 R자가 크게 박인것듯이 자꾸 보이더라구요

처음에는 R자만 그게 보여서 예전에 통계시간에 배웠던 R인가 싶었는데,

하도 거슬려서 유투브 영상 한글 번역으로 돌려서 봤더니, Go lang을 비웃고 있는 컨텐츠더라구요

어 나 Go lang 공부중인데, 그래서 쑥들어가 보니 이게 웬걸 지금은 Go lang을 공부할때가 아니더라구요.

Rust공부해야 되는구나. 우와 뭐 이런 언어가 나왓나 싶더라구요.

 

C언어 개발을 하지 않다보니 잘 모르고 있었는데,

C언어 개발하는 사람들은 엄청 메모리 관리 때문에 고생한다고 하더라구요.

 

그게, 얼마나 문제가 많은가 하면, 해킹의 위험도 있고

여차하면 컴이 다운되고, 우리 자주 경험하는 js로 개발하면 개발할 때는 잘되는데,

납품하면 안되는 이상 요상한 현상이 C언어에 그렇게 많다고 합니다.

그래서 C언어가 넘사벽이된 이유는 바로 이 메모리 관리의 구멍을 어떻게 잘 때우느냐 때문이라고 합니다.

 

그런데, 최근 Rust라는 언어가 나오면서 메모리 이슈를 잡은 혁신적인 언어로 평가 받고 있습니다.

C언어로 만든 수 많은 프로젝트들이 에러 이슈가 나오는 부분을 수정하기 보다는,

오히려 Rust로 새로 개발하는게 더욱 가시적인 성과를 올린다는 보고들이 나오면서

점차 Rust로 바꾸고 있는 프로젝트가 늘어나고 있다고 합니다.

 

윈도우 OS나 AWS Google 등 대형 클라우드 회사들도 점차 Rust로 바꾸고 있다고 하네요.

윈도우의 경우 10년에 걸쳐서 85% 오류를 잡을 예정의 프로젝트를 Rust로 변경하고 2년 만에 원래 목표치

보다 더 높은 95% 에러를 잡았다고 하면서 Rust를 예찬론이 나오기도 하였습니다.


Rust의 메모리 관리

Rust는 개발하는 방법론에서 메모리 누수를 원천적으로 차단하는 방식을 갖추고 있습니다.

그래서 처음에는 메모리 관리 신경쓰느라 조금 귀찮은 문법들을 접하게 됩니다.

그런데 이렇게 초장에 메모리를 잡다보니, 메모리 관련 문제가 사라지게 되어서

프로젝트의 복잡도가 높아져도 안정성이 보장되어 타 언어보다 오히려 더 쉬워지게 됩니다.

그래서 처음에 배우기는 힘들지만, 일정 수준을 넘어서게 되면 복잡한 프로젝트도 쉽게 처낼 수 있다고합니다.

 

우리는 그누보드니까 웹서비스도 많이 나와 있습니다.

Rust로 웹서비스를 할 수있는 프레임워크? 라이브러리도 많이 나와 있습니다.

Rocket , Aticx , Axum 등등 - 저는 Axum 으로 웹서비스 개발중입니다.

웹프레임워크 속도 벤치마크 하는 사이트를 둘러보면

Rust가 상위랭키 되어 있습니다.

1초에 60만번 리턴하네요.

이게또 Rust가 가비지컬렉션(자동 메모리 청소기능)이 없는 언어라서 java나 go처럼 백단에서 언제 돌지 모를 메모리청소가 없어서 중간에 잠시 쉬는 일도 없이 그리고 에러도 없이 서비스 끊김없이 잘 된다고 하네요.

 

가비지컬렉션이 없다는 말은, 중간에 멈추지 않는다는 말입니다.

예를 들어, 자동차 운전중인 자율주행 상황같은 경우 100km/h로 주행중인데 중간에 멈추면 사고가 날수 있잖아요, Rust는 멈추거나 에러가 나지 않기 때문에 Rust로 개발하면 딱인거죠.

 

그리고 메모리 누수가 없어서

예전에 누리호 로켓 발사 전에 러시아 로켓 기술가져다 쓴다는 말이 있을때

러시아 로켓이 에러가 나면 안되기 때문에 C언어 이전의 언어로 4비트 컴퓨터를 그대로 사용한다는

말이 있었는데, 이런 한번쏘면 다시 접근하기 힘든 인공위성이나, 로켓 같은 시스템을 개발하는

언어로도 Rust가 한목할 것 같습니다.

사람의 생명이나 1회성으로 신뢰성이 매우 중요한 경우 Rust가 딱입니다.

 

그리고 최근 우리나라 무기를 외국에 많이 팔고 있는데,

이 무기 체계도 Rust로 개발하면, 오발율이 최저치로 떨어져서 아마도 국방쪽으로도 

기존 시스템을 Rust로 변경하는 사업도 나올 수 있을 것 같습니다.

 

블록체인도 Go 로 한참 개발하다, 이젠 다들 Rust로 개발하고 있습니다.

 

찾아 보니 아예 OS자체를 Rust로 새로 개발하는 프로젝트도 있더라구요.

삼성에서 OS새로 개발할거면 Rust로 개발하면 될것 같습니다. 지금이 새로운 OS를 출범시키기 적기 인것 같습니다.

 

그리고 Wabassembly 개발하기 좋은 언어로 Rust를 뽑기도 합니다.

아직 사용해보지는 않았지만 Rust의 Yew 라는 프레임워크를 이용하면

React나 Svelte로 개발한 프로젝트를 Rust의 Yew로 Wabassembly로 변환해서 올리면

그냥 js 엔진으로 돌리는 것 보다 훨씬 빠른 속도로 서비스가 구동된다고 하더라구요.

언젠가 한번 사용해 볼 참입니다.

 

그리고 java 진형의 독주가 Rust로 깨질 수도 있겠다는 생각도 합니다.

전자정부프레임워크 Rust버전이 나오는 날도 예상해 볼 수 있지 않을까?

 

 

 

 

 

 

 

 

 

 

추천
0

댓글 0개

전체 12 |RSS
Rust 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1402호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT