Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 하이퍼레저 패브릭
- 파이썬 머신러닝
- 파이썬 데이터분석
- akka 강좌
- Golang
- 스칼라 강좌
- play 강좌
- 스칼라 동시성
- 파이썬
- Actor
- 엔터프라이즈 블록체인
- 스칼라
- play2 강좌
- CORDA
- 파이썬 강좌
- hyperledger fabric
- 플레이프레임워크
- 하이브리드앱
- Play2
- Adapter 패턴
- 이더리움
- 안드로이드 웹뷰
- Akka
- 파이썬 동시성
- Hyperledger fabric gossip protocol
- 그라파나
- Play2 로 웹 개발
- 주키퍼
- 스위프트
- 블록체인
Archives
- Today
- Total
HAMA 블로그
Rust 본문
현대 프로그래밍에서 가장 중요한 오류들인 동기화 문제( 레이스컨디션이나 데드락등 )는 C++같은 언어로 개발한 제품들에서 굉장히 많은 문제를 발생시키곤 한다. 윈도우즈 오류의 대부분이 동기화문제, 메모리관리 문제라니까..
그중 동시성에서 레이스컨디션 문제는
1. 가변변수인데 게다가 동시접근가능 할 때 발생된다.
즉
2. 가변변수가 없거나 ㅡ 순수함수형
3. 동시접근예방 ㅡ Actor패턴 , CSP (예방이지 불가는 아님)
둘 중 하나만 충실 하면 근본적으로 없앨수 있다는 얘기이다.
1번 경우는 뮤텍스등을 통해 직접 보호 장치를 해야 하는데 , C++,Java, Go 같은 착한 (방종 or 자유로운) 부모하에서 인간의 실수는 비일비재 하다. 배움이 모자르고 막나가는 아이들도 생겨남.
근데 러스트는 엄한부모라 자식 (프로그래머) 에게 관련 지식(스마트포인트류,LifeTime,RefCell등등)을 강제 요구하고, 각종 메모리를 사용하는 규칙이 이미 단단히 정해져있기 때문에 오류가능성을 컴파일 타임에 알려준다.
만약 팀을 결성하고 C++만큼 빠른 성능에 다가 무엇인가 오류없는 결과물을 만들고자 출발 할 때, 러스트를 선택하면 팀내에 최소한 막나가는 아이들은 없다는 안도감은 가질 수 있겠다.
'소프트웨어 사색 ' 카테고리의 다른 글
왜 패턴이 중요한가? (3) | 2020.08.13 |
---|---|
왜 야근해야 하는지 모르겠는데 설명 좀 해주실분? (0) | 2020.07.16 |
소프트웨어 복잡도 줄이기 (1) (0) | 2020.05.13 |
Go vs Rust vs C++ vs Java 등 벤치마크 이야기 (5) | 2020.03.11 |
소프트웨어 아키텍트란 (0) | 2019.12.11 |
Comments