Languages/RUST
Lunatic 이란? 브라우저의 가상머신에서, 엄청나게 많은 작업을, 동시에 실행 수 있도록 만든 WebAssembly 라이브러리 (런타임) 탄생 배경 Erlang의 무수히 많은 프로세스 여기서 말하는 프로세스는, OS가 다루는 프로세스가 아니라 가상머신위에서 동작하는 가상의 프로세스를 뜻한다. ( 가상 프로세스가 좋은 이유 : 추후 작성 예정 ) WebAssembly의 확장성, 호환성, 유연성 웹 어셈블리는, 브라우저 가상머신위에서 동작가능하여 javascript와 합칠 수 있고, C, Rust 와 같은 low-level 언어로 작성된 코드를, 웹 어셈블리로 바꿔서 사용할 수 있으므로, 자신이 원하는 언어로 작성할 수 있다. 장점 WebAssembly로 컴파일 할 수 있는 모든 언어를 통해, 가상 프로..
선행 지식 [Rust] 소유권 - 메모리 관리 이야기 (feat. Garbage Collector) 서문 Rust에는 소유권이라는 개념이 있는데, 이는 Rust에만 존재하는 고유한 특성이다. 이 글에서는 소유권이란 것이 무엇인지 뿐만아니라, 어떤 상황에서 사용하는지, 왜 등장하게 되었는지 등 defineall.tistory.com Borrowing 이란? 의미 : 소유권을 가지고 있는 변수의 데이터를 빌리는 것 실제 : 소유권을 가지고 있는 변수의 메모리주소를 저장하는 것 배경 Rust의 변수는, 스코프를 벗어난 이후에도 메모리 공간을 OS에게 돌려주지(drop) 않도록 하기 위해 자동으로 drop 되지 않도록, 매번 수동으로 소유권을 옮겨(move)주어야 한다. 이 때문에, 굳이 drop 할 필요가 없..
서문 Rust에는 소유권이라는 개념이 있는데, 이는 Rust에만 존재하는 고유한 특성이다. 이 글에서는 소유권이란 것이 무엇인지 뿐만아니라, 어떤 상황에서 사용하는지, 왜 등장하게 되었는지 등 자세한 내용을 알아보겠다. 소유권이란? 메모리 공간을 OS에게 반납(drop)할 수 있는 권한 등장 배경 프로그램을 사용하다보면, 특정 메모리공간을 공유하는 일이 많다 => 왜? 엄청난 크기의 데이터를 복사하는 경우를 생각해보면, 데이터 자체를 통째로 복사하기 보다, ( deep copy 깊은 복사 ) 그 데이터가 저장된 주소를 대신 복사하는 방식이, ( shallow copy 얕은 복사 ) 메모리 공간을 절약하는데 도움이 된다. 또한, 메모리를 다 사용하고 나면 OS가 사용할 수 있도록 돌려주어야지 다른 프로그램..
[Rust] Rust란? Rust 란? 서버, 클라이언트 프로그램을 만들기 위한 프로그래밍 언어 ( with Mozilla ) 특징 & 필요성 1. Null Safety ( 에러 초기 감지 ) 모든 변수는 초기값을 가져야만 한다 ( 없으면 컴파일 에러! ) - C 언 defineall.tistory.com 목적 Rust 가 다른 언어와 다른 점이 무엇인지 살펴보고, 어떤 장단점을 가졌는지 이해하여, 필요한 분야를 파악하고, 알맞은 곳에 사용할 수 있도록 한다. Rust의 변수 기본적으로 변수는, 아직 정해지지 않은 수를 의미한다. Rust에서도, 변수가 존재한다. 하지만 Rust는, "상수화된 변수" 라는 새로운 형식을 "기본"으로 사용하고, 기존의 변수는 "보조" 로 사용한다. fn main() { /..
Rust 란? 서버, 클라이언트 프로그램을 만들기 위한 프로그래밍 언어 ( with Mozilla )로, C언어와 같은 수준에서 코드를 작성하며, 최근 개발자 사이에서 인기가 오르고 있는 신생언어(7년넘음) 대표적으로, javascript 런타임 환경인 deno가 Rust로 개발되었다. 특징 & 필요성 일 많~이, 동시에 처리함 안전함 빠른 속도 1. Null Safety ( 에러 초기 감지 ) 모든 변수는 초기값을 가져야만 한다 ( 없으면 컴파일 에러! ) - C 언어는 초기값 없이 선언이 가능하다 ( 빈 변수에 접근하는 일이 생긴다.. / 에러를 정확히 감지할 수 없는 복잡한 상황이 생길 수 있음 ) 값이 해제된 주소(포인터)에 접근하는 코드가 있다면, 이를 컴파일러가 미리 감지하고, 컴파일시(기계어..