관리 메뉴

HAMA 블로그

Rust 본문

소프트웨어 사색

Rust

[하마] 이승현 (wowlsh93@gmail.com) 2020. 6. 16. 09:42

현대 프로그래밍에서 가장 중요한 오류들인 동기화 문제( 레이스컨디션이나 데드락등 )는 C++같은 언어로 개발한 제품들에서 굉장히 많은 문제를 발생시키곤 한다. 윈도우즈 오류의 대부분이 동기화문제, 메모리관리 문제라니까..

그중 동시성에서 레이스컨디션 문제는 
1. 가변변수인데 게다가 동시접근가능 할 때 발생된다.


2. 가변변수가 없거나 ㅡ 순수함수형
3. 동시접근예방 ㅡ Actor패턴 , CSP (예방이지 불가는 아님)

둘 중 하나만 충실 하면 근본적으로 없앨수 있다는 얘기이다. 

1번 경우는 뮤텍스등을 통해 직접 보호 장치를 해야 하는데 , C++,Java, Go 같은 착한 (방종 or 자유로운) 부모하에서 인간의 실수는 비일비재 하다. 배움이 모자르고 막나가는 아이들도 생겨남.

근데 러스트는 엄한부모라 자식 (프로그래머) 에게 관련 지식을 강제 요구하고 오류가능성을 컴파일 타임에 알려준다.

만약 팀을 결성하고 C++만큼 빠른 성능에다가 (물론 C++의 경우 너무 자유로워서 조예가 깊지 못하면 Go는 커녕 자바에 비해서도 한참 느릴 가능성도 크다) 무엇인가 오류없는 결과물을 만들고자 출발 할 때, 러스트를 선택하면 팀내에 최소한 막나가는 아이들은 없다는 안도감은 가질 수 있겠다. 

 

0 Comments
댓글쓰기 폼