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 |
Tags
- 엔터프라이즈 블록체인
- hyperledger fabric
- 파이썬 강좌
- Akka
- Golang
- 파이썬 머신러닝
- 플레이프레임워크
- 스칼라 강좌
- play2 강좌
- 파이썬 동시성
- 이더리움
- Play2 로 웹 개발
- 블록체인
- 안드로이드 웹뷰
- play 강좌
- Actor
- Adapter 패턴
- 스칼라
- 파이썬
- CORDA
- 하이브리드앱
- akka 강좌
- 스위프트
- 주키퍼
- 스칼라 동시성
- Play2
- Hyperledger fabric gossip protocol
- anorm 이란
- 파이썬 데이터분석
- 하이퍼레저 패브릭
- Today
- 264
- Total
- 2,430,552
HAMA 블로그
Rust 본문
현대 프로그래밍에서 가장 중요한 오류들인 동기화 문제( 레이스컨디션이나 데드락등 )는 C++같은 언어로 개발한 제품들에서 굉장히 많은 문제를 발생시키곤 한다. 윈도우즈 오류의 대부분이 동기화문제, 메모리관리 문제라니까..
그중 동시성에서 레이스컨디션 문제는
1. 가변변수인데 게다가 동시접근가능 할 때 발생된다.
즉
2. 가변변수가 없거나 ㅡ 순수함수형
3. 동시접근예방 ㅡ Actor패턴 , CSP (예방이지 불가는 아님)
둘 중 하나만 충실 하면 근본적으로 없앨수 있다는 얘기이다.
1번 경우는 뮤텍스등을 통해 직접 보호 장치를 해야 하는데 , C++,Java, Go 같은 착한 (방종 or 자유로운) 부모하에서 인간의 실수는 비일비재 하다. 배움이 모자르고 막나가는 아이들도 생겨남.
근데 러스트는 엄한부모라 자식 (프로그래머) 에게 관련 지식을 강제 요구하고 오류가능성을 컴파일 타임에 알려준다.
만약 팀을 결성하고 C++만큼 빠른 성능에다가 (물론 C++의 경우 너무 자유로워서 조예가 깊지 못하면 Go는 커녕 자바에 비해서도 한참 느릴 가능성도 크다) 무엇인가 오류없는 결과물을 만들고자 출발 할 때, 러스트를 선택하면 팀내에 최소한 막나가는 아이들은 없다는 안도감은 가질 수 있겠다.
'소프트웨어 사색' 카테고리의 다른 글
왜 패턴이 중요한가? (3) | 2020.08.13 |
---|---|
왜 야근해야 하는지 모르겠는데 설명 좀 해주실분? (0) | 2020.07.16 |
Rust (0) | 2020.06.16 |
소프트웨어 복잡도 줄이기 (1) (0) | 2020.05.13 |
Go vs Rust vs C++ vs Java 등 벤치마크 이야기 (0) | 2020.03.11 |
소프트웨어 아키텍트란 (0) | 2019.12.11 |
0 Comments