본문 바로가기

728x90

개발 이야기/Rust 언어 이야기

(19)
MS의 Rust 기초 가이드 #한국어 개발자들의 친구, MS에서 한동안 파이썬에 집중(?)하더니, 요새는 러스트에 빠졌나 봅니다. 공식사이트에서 제공하는 레퍼런스나 초보자를 위한 30분 투어 코스도 있습니다만, 어느정도 개발자들이 하는 의사소통에 익숙하신 분들이라면, MS에서 제공하는 가이드가 입맛에 맞을 수도 있겠네요. 주요목차는 다음과 같습니다. Rust 코드의 첫 줄을 작성하는 데 필요한 도구를 설치합니다. Rust의 기본 개념을 알아봅니다. 오류를 처리하는 방법을 알아봅니다. Rust에서 메모리를 관리합니다. 제네릭 형식 및 특성을 사용합니다. 패키지 및 크레이트에 대한 모듈을 설정합니다. 자동화 테스트를 쓰고 실행합니다. 명령줄 프로그램을 만듭니다. Beginner's Series to: Rust 그리고 이번에 유튭 채널(Micro..
리눅스 30주년 리누스 토발즈 인터뷰 중 Rust 언급 JA: 성능과 안전성을 위해 특별히 설계된 언어인 Rust 를 이용해 최소 일부 부분을 재작성하는 건 어떻게 생각합니까? 이 방법으로 개선해볼 곳이 있습니까? Rust 같은 다른 언어가 커널의 C 를 대체하는 것이 가능할 수는 있다고 느끼십니까? LT: 우린 지켜볼 겁니다. 전 Rust 가 커널의 핵심부에 사용될 거라고는 생각지 않습니다, 하지만 개별 드라이버들 (그리고 어쩌면 전체 드라이버 서브시스템들) 을 그걸로 돌리는 건 완전히 불가능하게 들리지는 않습니다. 어쩌면 파일시스템도요. 그러니 “C 를 대체” 하는 건 아니지만, “말 되는 곳에서는 C 코드를 강화” 시키는 것에 가깝겠습니다. 물론, 특히, 드라이버는 실제 커널 코드의 절반 가량을 차지합니다, 따라서 Rust 로 개선할 공간이 많습니다, ..
rust 언어 기반의 웹프레임워크 의 현재 상태는? Rust언어 기반으로 웹서비스를 구현할 때 현재 기준(2021년 5월)으로 Rust가 지원되는 웹프레임워크들은 무엇이 있는지 알 수 있는 링크를 발견했습니다. -링크:=> blog.logrocket.com/the-current-state-of-rust-web-frameworks/ 위 링크에서 보듯이 프런트엔드와 백엔드로 나눠져 있는데, 참고로 여기서 프런트엔드는 WebAssembly형태로 지원가능한 프런트엔드를 의미합니다. 나중에, 한번, 잘 살펴봐야겠습니다. 우선, 링크만 남겨 봅니다.
rust 에서 String 에서 요소 하나하나를 index 인덱싱 & print() format 하기와 같은 Rust 문제가 있습니다. Q) 임의의 숫자를 입력 받고(만약 문자열을 입력하면 에러메시지를 내고 다시 입력 받음) 그 숫자를 20 자리의 xxx,xxx,xxx 형태로 출력하세요. 만약 출력 문자열의 자릿수가 20 자리가 안되면 앞에 '0' 을 붙여주세요. 예를 들어 1234567 을 터미널에서 입력했으면 000000000001,234,567 와 같이 출력하세요. A) 이 문제의 문제점은 print() 문의 format 을 적용하여야 하고 또 문제 하나는 숫자들 사이에 천단위 별로 콤마를 삽입해야 한다는 것입니다. (추가 업데이트) 기존에는 입력받은 숫자 즉 String에서 콤마를 넣기 위해 Separator 라는 crate를 사용했습니다. 그리고 println!() 에서 format str..
rust 에서 String 에서 요소 하나 하나를 index 인덱싱 하는 방법 Rust 언어에서 String 의 요소 하나하나를 index 인덱싱 하는 방법에 관련된 좋은 예제 샘플 링크를 공유합니다. :=> stackoverflow.com/questions/24542115/how-to-index-a-string-in-rust 예제 샘플은 다음과 같습니다. 이런 코드에서 fn is_palindrome(num: u64) -> bool { let num_string = num.to_string(); let num_length = num_string.len(); for i in 0 .. num_length / 2 { if num_string[i] != num_string[(num_length - 1) - i] { return false; } } true } 컴파일 하면 아래와 같이 에러..
Rust - string conversion 관련 예제 코드 rust 언어에서 string conversion 관련 유용한 링크가 잇어 남깁니다. :=> gist.github.com/jimmychu0807/9a89355e642afad0d2aeda52e6ad2424 관련 예제 코드가 간단해서 복퉅하면 아래와 같습니다. use std::str; fn main() { // -- FROM: vec of chars -- let src1: Vec = vec!['j','{','"','i','m','m','y','"','}']; // to String let string1: String = src1.iter().collect::(); // to str let str1: &str = &..
rust 에서 print()의 format 관련 내용 하기와 같은 Rust 문제가 있습니다. Q) 임의의 숫자를 입력 받고(만약 문자열을 입력하면 에러메시지를 내고 다시 입력 받음) 그 숫자를 20 자리의 xxx,xxx,xxx 형태로 출력하세요. 만약 출력 문자열의 자릿수가 20 자리가 안되면 앞에 '0' 을 붙여주세요. 예를 들어 1234567 을 터미널에서 입력했으면 000000000001,234,567 와 같이 출력하세요. A) 이 문제의 문제점은 print() 문의 format 을 적용하여야 하고 또 문제 하나는 숫자들 사이에 천단위 별로 콤마를 삽입해야 한다는 것입니다. 우선, string으로 number를 입력 받아 이를 다시 u32 타입으로 변환하고 이렇게 변환된 number를 천단위로 콤마를 넣기 위해 separator 라는 crate를 이용..
string을 입력받아 거꾸로 string을 출력하는 예 rust에서 string입력을 받아서 이를 반대로 출력하는 예제인데, 이게 까다롭습니다. 문제는, 터미널에서 문자열을 입력 받아서 그 문자열을 역순으로 출력하세요. :=> 예를 들어, 터미널에서 "abbd" 를 입력 받았으면 "dbba"를 출력하세요. 이를 완성한 코드는 아래와 같습니다. use std::io; use std::str; fn main() { loop { println!("Please input your string."); let mut instr = String::new(); io::stdin().read_line(&mut instr) .expect("Failed to read line"); print!("Reversed string is: "); //let mut len = str.le..

728x90