DataScience
article thumbnail
Rust 소유권
Rust 2023. 4. 21. 09:55

소유권 소유권(Ownership)은 러스트의 가장 유니크한 특성이며, 러스트가 가비지 콜렉터 없이 메모리 안정성 보장을 하게 해줍니다. 그러므로, 소유권이 러스트 내에서 어떻게 동작하는지 이해하는 것은 중요합니다. 모든 프로그램은 실행하는 동안 컴퓨터의 메모리를 사용하는 방법을 관리해야 합니다. 몇몇 언어들은 프로그램이 실행될 때 더이상 사용하지 않는 메모리를 끊임없이 찾는 가비지 콜렉션을 갖고 있습니다; 다른 언어들에서는 프로그래머가 직접 명시적으로 메모리를 할당하고 해제해야 합니다. 러스트는 제 3의 접근법을 이용합니다: 메모리는 컴파일 타임에 컴파일러가 체크할 규칙들로 구성된 소유권 시스템을 통해 관리됩니다. 소유권 기능들의 어떤 것도 런타임 비용이 발생하지 않습니다. 스택과 힙 소유권에 대해서 알..

Rust 반복문
Rust 2023. 4. 20. 11:23

IF if/else if 문은 어떤 조건을 만족하는 경우, 그에 해당하는 코드를 실행하도록 논리적 분기를 만드는 방법입니다. 만일 조건이 만족되지 않으면 해당 분기의 코드는 실행되지 않고 넘어갑니다. 보통 if 문은 첫 번째 조건을 검사하는 부분인 if 와, 그 다음 조건을 만족하는지를 검사하는 else if , 그리고 모두 해당되지 않는 경우에 실행되는 else 로 구성됩니다. 파이썬에서 if문을 구현하면 다음과 같습니다. 항상 if 문은 if 라는 키워드로 시작합니다. 여기서는 변수 x 가 y 보다 작은지를 검사하고 있는데, x 는 1.0이고 y가 10이기 때문에 조건이 만족됩니다. 조건이 만족되는 경우에는 아래에 있는 다른 조건들은 검사하지 않고 넘어가기 때문에 실행 결과는 "x is less th..

Rust 함수
Rust 2023. 4. 19. 10:57

함수 선언하기 함수의 입력으로 정수 두 개를 받은 다음 두 수의 합을 리턴하는 add 라는 함수를 만들어 보겠습니다. 먼저 파이썬 코드는 다음과 같습니다. 여기서 타입 힌트를 사용해 파라미터와 리턴값의 타입을 명시할 수 있습니다. 파라미터 변수 이름 뒤에 :int를 붙여 이 파라미터의 타입이 int임을 명시합니다. 함수에서 리턴하는 값은 함수명 뒤에 -> int와 같이 표기합니다. def add(num1: int, num2: int) -> int: return num1 + num2 동일한 기능의 러스트 코드는 다음과 같습니다. 함수의 선언에 fn 키워드를 사용하고, 함수에서 실행할 코드를 중괄호로 묶어줍니다. 그리고 파이썬과 비슷하게 파라미터에는 :i32로 타입을 표기하고, 리턴값에는 -> i32처럼 화..

article thumbnail
Rust 변수
Rust 2023. 4. 18. 09:56

변수 선언하고 값 출력하기 파이썬에서는 모든 객체를 print 함수로 출력할 수 있습니다. 문자열 "Hello, world!" 를 출력하는 예제는 다음과 같습니다. print("Hello, world!") 러스트에서는 매크로(macro)를 사용해 값을 출력합니다. 매크로란 사전 정의된 편리한 기능을 의미하고, 항상 이름 뒤에 !가 붙습니다. 러스트 코드는 매 줄의 마지막에 세미콜론(;) 이 붙습니다. 위의 파이썬 예제와 동일하게 문자열 "Hello, world!" 를 출력하는 코드는 다음과 같습니다. fn main() { println!("Hello, world!"); } 변수 선언 파이썬은 변수 선언 시 타입을 명시하지 않아도 되기 때문에 실수값과 정수값 모두 변수에 바로 할당이 가능합니다. 파이썬에서..

article thumbnail
개발자들이 가장 사랑하는 언어 Rust 소개
Rust 2023. 4. 17. 09:31

사랑 받는 언어 Rust 파이썬은 최근 가장 인기가 높은 언어 중 하나입니다. 간결한 문법과 범용성 덕분에 서버 개발부터 딥러닝 모델 개발까지 다양한 분야에서 사용되고 있습니다. 하지만 파이썬은 개발 시의 높은 생산성을 위해 코드 실행 속도를 일정 부분 포기한 언어입니다. 특히 파이썬의 태생적 한계인 GIL(Global interpreter lock)때문에 빠른 연산이 필요한 작업이나 멀티스레딩 프로그램에서 좋은 성능을 내기 어려운 단점이 있습니다. 러스트는 높은 추상성으로 높은 생산성을 가지고 있는 동시에 C/C++의 99%에 가까운 성능을 가지고 있어서 빠른 연산속도가 필요한 분야에서 각광받고 있습니다. 2022년 스택오버플로우 개발자 설문조사의 "Loved vs Dreaded(사랑하는 언어 대 두려..

Tauri 설치부터 배포까지 (리눅스 빌드)
Rust 2023. 4. 16. 16:21

사전 설치 sudo pacman -Syu sudo pacman -S --needed \ webkit2gtk \ base-devel \ curl \ wget \ openssl \ appmenu-gtk-module \ gtk3 \ libappindicator-gtk3 \ librsvg \ libvipsRust 설치 curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf | sh Rust is installed now. Great! 이 문장이 나오면 설치 성공입니다. 러스트 관련 명령어 rustup update #업데이트 rustup self uninstall #제거 rustc --version #버전확인 rustc x.y.z (abcabcabc ..

Tauri 배포
Rust 2023. 4. 15. 09:32

cargo tauri build 바이너리 자체는 src-tauri/target/release/[앱 이름]에 위치하고, 설치 프로그램은 src-tauri/target/release/bundle/에 위치합니다. 윈도우 코드 서명 애플리케이션에 코드 서명을 하면 사용자로 하여금 앱으로 위장한 맬웨어가 아닌 정식 실행 파일을 다운로드했음을 알 수 있게 해줍니다. 필수는 아니지만, 이는 앱에 대한 사용자의 신뢰를 향상시켜줍니다. 사전 요구 사항 Windows - 다른 플랫폼을 사용할 수 있지만, 이 자습서에서는 Powershell 기본 기능을 사용합니다. 동작하는 Tauri 애플리케이션 코드 서명 인증서 - Microsoft's docs에 나열된 서비스 중 하나를 얻을 수 있습니다. 해당 목록에 포함된 것보다 비..