Skip to content

YoungHaKim7/Rust_Tutorial_Full_course

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Rust RoadMap

Rust 한글 Eng설명서

Comprehensive Rust 🦀(구글팀에서 만듬)

https://google.github.io/comprehensive-rust/ko/other-resources.html


https://github.com/YoungHaKim7/YouTubeContents_GlobalYoung

Effective Rust

https://www.lurklurk.org/effective-rust/

Rust for Rustaceans 책에 나오는 학습 리소스 정리

https://inudevlog.com/Rust%20for%20Rustaceans%20%EC%B1%85%EC%97%90%20%EB%82%98%EC%98%A4%EB%8A%94%20%ED%95%99%EC%8A%B5%20%EB%A6%AC%EC%86%8C%EC%8A%A4%20%EC%A0%95%EB%A6%AC/


러스트 간단히 소개 Rust for Beginners – Get Started with the Most Loved Programming Language | FreeCodeCamp

https://www.freecodecamp.org/news/rust-getting-started-with-the-most-loved-programming-language/

이제 손으로 짜는 코딩은 ByeBye) What you do use, you couldn’t hand code any better(당신이 사용하는 것, 당신은 더 나은 코드를 만들 수 없습니다)

(출처 which Dr. Bjarne Stroustrup, father of C++, explains (see pg. 4)

  • 사람이 할 일은 전체적으로 컨셉만 잡고 큰 틀만 잡지 세부적인 코딩은 AI에게 맡기면 된다. 그리고 10명에서 짤 코드를 혼자서도 코딩할 수 있는 대단한 AI 시대가 오고 있다.(땡규 GPT,BingAI) 결국 Polyglot만이 살길 (그냥 혼자만의 생각)

  • 전체적인 코드를 이해하는 자만이 앞으로의 미래를 지배한다. 결국 Polyglot (그냥 혼자만의 생각)

  • https://github.com/jhartzell42/rust-c-book/blob/main/src/intro.md

    • What you don’t use, you don’t pay for (and Dr. Stroustrup means "paying" in the sense of performance costs, e.g. in higher latency, slower throughput, or higher memory usage)

    • What you do use, you couldn’t hand code any better

    There is also an executive summary of the concept at CppReference.com.


Rust atomics & Locks 집중 분석



Screenshot 2023-02-13 at 11 35 45 PM

Isabella Muerte(@slurpsmadrips) August 1, 2019

  • Rust Programmers, if the Rust commuity wants to hide horrors, fight to prevent a major catastrophe, and unite humanity so we don't have to feel pain or be alone, that's not language evangelism. That's language evangelionism.

Befor we get stated... Some tips | Ryan Levick

1212121212

  • Rust Before Main - Ryan Levick - Rust Linz, July 2022

  • Computers are not magic

  • All of this is understandable

  • Everything you see here was made by humans

  • It's all a mix of deliberate choice & choice & random circumstance

  • At any given point, it's not always easy to tell which ?

  • Unfortunately, explanations are not always the best

  • 컴퓨터는 마법이 아니다

  • 이 모든 것은 이해할 수 있다

  • 여기 보이는 모든 것은 인간이 만든 것이다

  • 그것은 모두 의도적인 선택과 선택 그리고 무작위적인 상황의 혼합이다

  • 어느 시점에서든 어느 것이 항상 구별하기 쉽지는 않다?

  • 불행하게도, 설명이 항상 최선은 아니다


Tutorial Rust ___Easy Rust (My teacher스승님 최고 ❤️)

Updating

2021-12-10 : Rust 기초 강의 시작

Rust (My teacher스승님 Github)


-Easy Rust eBook



google(comprehensive-rust) 구글팀에서 만든 러스트 4일 완성 tutorial

https://google.github.io/comprehensive-rust/

comprehensive-rust (other resources)

https://google.github.io/comprehensive-rust/other-resources.html

기타 등등 Rust tutorial

Rust Doc std(standard Library DOC)

https://doc.rust-lang.org/std/


DOCS.RS(rust 기타 crate문서들)

https://docs.rs/


Rust Language Cheats Sheet

https://cheats.rs/

https://github.com/ralfbiedert/cheats.rs/


awesome rust

https://github.com/awesome-rust-com/awesome-rust


Lincence라이센스 표시

https://gist.github.com/lukas-h/2a5d00690736b4c3a7ba

https://shields.io/category/license

downloads 기타 등등 다

https://shields.io/category/downloads

Rust eBook(Freely available programming books, 무료 배울 수 있음)

https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-langs.md#rust

Rust 공식 Learn 채널

https://www.rust-lang.org/learn

Rust 공식 eBook eng.

https://doc.rust-lang.org/book/

Experiment: Improving the Rust Book

Clippy

A collection of lints to catch common mistakes and improve your Rust code.

example branch parameter

https://doc.rust-lang.org/nightly/clippy/index.html

https://rust-lang.github.io/rust-clippy/master/index.html


awesome rust

https://github.com/awesome-rust-com/awesome-rust


Rustlings

Presentation by Rust

Rust is a system programming language, compiled and multi-paradigm. It is a cross between imperative language (C), object (C++), functional (Ocaml) and competitor (Erlang). It draws on the theories of the languages of recent years and the most popular programming languages in order to achieve three objectives: speed, security (in particular memory) and competitor (secure data sharing between tasks).

Rust's development was initiated by Graydon Hoare in 2006, particularly in order to resolve security flaws in Firefox without negatively impacting performance. To follow this tutorial, it is highly recommended that I have already developed in at least one other language (C, C++, Java, JavaScript, Python, etc.) because I will only briefly go through the basics. Its strengths are:

Managing ownership of variables Memory management Static typing Type inference Pattern matching filtering Genericity We'll review all of this in more detail. Some useful links:

-rust by example (A compilation of rust examples)

  • Reddit (to ask a question)


Rust 무료로 배울 링크

https://github.com/EbookFoundation/free-programming-books/blob/main/books/free-programming-books-langs.md#rust

모든 언어를 무료로 공부할 수 있다.

출처 : stackoverflow.com 알게 된 링크

역시 갓 스택 오버플로우

https://stackoverflow.com/questions/38683512/why-git-shallow-clone-can-have-more-commits-than-depth/38683775#38683775

  • Github 주소

https://github.com/EbookFoundation/free-programming-books

  • EbookFoundation

https://ebookfoundation.github.io/free-programming-books/

모든 언어 기초 배우고 기초적인 프로그램 만들기 awesome for beginners 너무 좋다.❤️👍

https://github.com/MunGell/awesome-for-beginners


Rust 공식eBook에 나오는 String개념

https://doc.rust-lang.org/book/ch08-02-strings.html

러스트의 String 종류 ㅋㅋ

String, &str
CStr, CString
Cow<'_, str>
Path, PathBuf
Vec<u8>
&[u8]
OsStr
  • 보통 코딩 언어들은 2개지만
String
&str
.to_string()
.to_owned()
.into()
String::from()
format!()

Tim McNamara | Rust in action 저자

YouTubeContents_GlobalYoung

https://github.com/YoungHaKim7/YouTubeContents_GlobalYoung

소유권 규칙

먼저, 소유권에 적용되는 규칙부터 살펴보자. 앞으로 살펴볼 예제들은 이 규칙들을 설명하기 위한 것이므로 잘 기억하도록 하자.

  1. 러스트가 다루는 각각의 값은 소유자(owner)라고 부르는 변수를 가지고 있다.
  2. 특정 시점에 값의 소유자는 단 하나뿐이다.
  3. 소유자가 범위를 벗어나면 그 값은 제거된다.

Ownership Rules

First, let's take a look at the ownership rules. Keep these rules in mind as we work through the examples that illustrate them"

  1. Each value in Rust has a variable that's called its owner.
  2. There can only be one owner at a time.
  3. When the owner goes out of scope, the value will be dropped.

Borrowing rules

  1. At any given time, you can have either one mutable reference or any number of immutable references.

  2. References must always be valid.

Borrow Checker(Rustlang)

Rust Borrow Checker (해외 유튜버 자료)
Date Title & Link
21-5-15(sat.) The Rust Borrow Checker - A Deep Dive
A Deep Dive - Nell Shamrell-Harrington, Microsoft
23-1-21(sun.) Sneaking By The Rust Borrow Checker - Interior Mutability
Code to the Moon

https://doc.rust-lang.org/book/ch04-01-what-is-ownership.html

What is Ownership? - The Rust Programming Language

Ownership is a set of rules that governs how a Rust program manages memory. All programs have to manage the way they use a computer’s memory while running. Some languages have garbage collection that constantly looks for no-longer used memory as the prog

https://doc.rust-lang.org

메모리를 빌려간 참조가 있는 동안은 해제할 수 없습니다.



Ownership(Rustlang)

Rust Option
Date Title & Link
22-3-19(sun.) rust한글강의_러스트_오너쉽개념Borrowing이해하기_메모리할당_What is Ownership_rust programming#rust #ownership #borrowing
22-6-07(tue.) 자바(Java)_vs_러스트_비교하면서 러스트오너쉽개념이해_기본syntax연습하기part3_#java #rust #ownership

rust -memory-container

https://github.com/usagi/rust-memory-container-cs

rust-container


  • small size ver.

rust-memory-container-cs-small-dark-back-high-contrast


Ownership Concept Diagram

rust-ownvership

출처:

https://www.reddit.com/r/rust/comments/mgh9n9/ownership_concept_diagram/?utm_source=share&utm_medium=ios_app&utm_name=iossmf


Screenshot 2023-01-21 at 10 56 20 AM
220607자바(Java)vs러스트비교하면서 러스트오너쉽개념이해기본syntax연습하기part3_#java #rust #ownership


출처

Rust for Java Developers 3/3 - Understanding Ownership https://youtu.be/Vg1LGHuAPP8

Rust소유권 규칙Ownership Rules & Borrowing rules https://economiceco.tistory.com/12591

Rust) shared reference ❤️ unique reference https://youtu.be/Bfqx_V2gp1Y



Easy Rust

  • 프로그래밍 언어 러스트를 배웁시다! 019 Easy Rust in Korean: references and shadowing

https://youtu.be/oOXM9Aafem8

Easy Rust 모아보기

https://www.youtube.com/watch?v=oOXM9Aafem8&list=PLfllocyHVgsSJf1zO6k6o3SX2mbZjAqYE&index=20


Understanding Ownership in Rust | Let's Get Rusty

https://youtu.be/VFIOSWy93H0


같이 보면 좋은 자료

내 블로그에 정리

Rust소유권 규칙Ownership Rules &Borrowing rules

★★★Rust Toturial 로드맵(Road Map)첫시작!-★★★(총정리)Rustacean이 되어 보자!!Let's go!

Option (Rustlang)

Rust Option
Date Title & Link
22-5-9(mon.) 한글Rust러스트_013_Option_총정리_part1 #rustlang #rust #option
22-5-11(wed.) 한글Rust러스트_014_Option_part2 _Rustonomicon_unsafe_RawVector#rustlang #rust #option
22-5-11(wed.) 한글Rust러스트_015_Option_part3_Implementing_Vec_Rustonomicon_#rustlang #rust #option #unsafe
22-5-13(fri.) 한글Rust러스트_016_Option_part4_메모리관리Management_Memory_rustonomicon_ pointer_leak memory #rust #rustlang

Easy Rust

  • 프로그래밍 언어 러스트를 배웁시다! 046 Easy Rust in Korean: Option

https://youtu.be/Or-ju7nvN58

  • Rust_Option❤️정리_data_type_converters_transformers_accessor_exporter

https://youtu.be/vqavdUGKeb4


Rust 공식 문서

이 문서를 뼈대로 설명해도 됨. 예문까지 깔끔

https://doc.rust-lang.org/std/option/


rustoption

Rust's Option❤️in One Figure(Reddit자료)

https://www.reddit.com/r/rust/comments/kdfb9k/rusts_option_in_one_figure/?utm_source=share&utm_medium=ios_app&utm_name=iossmf

Rust's Option in One Figure Posted in r/rust by u/arsdragonfly









design_patterns

Design-Patterns (Rustlang)rust1

https://refactoring.guru/design-patterns/rust



이건 러스트 디자인 패턴 다른 자료 ebook

https://rust-unofficial.github.io/patterns/intro.html


Design principles

https://rust-unofficial.github.io/patterns/additional_resources/design-principles.html

A brief overview over common design principles

SOLID

  • Single Responsibility Principle (SRP): A class should only have a single responsibility, that is, only changes to one part of the software's specification should be able to affect the specification of the class.

  • Open/Closed Principle (OCP): "Software entities ... should be open for extension, but closed for modification."

  • Liskov Substitution Principle (LSP): "Objects in a program should be replaceable with instances of their subtypes without altering the correctness of that program."

  • Interface Segregation Principle (ISP): "Many client-specific interfaces are better than one general-purpose interface."

  • Dependency Inversion Principle (DIP): One should "depend upon abstractions, [not] concretions." DRY (Don’t Repeat Yourself)

"Every piece of knowledge must have a single, unambiguous, authoritative representation within a system"

KISS principle

most systems work best if they are kept simple rather than made complicated; therefore, simplicity should be a key goal in design, and unnecessary complexity should be avoided

Law of Demeter (LoD)

a given object should assume as little as possible about the structure or properties of anything else (including its subcomponents), in accordance with the principle of "information hiding"

Design by contract (DbC)

software designers should define formal, precise and verifiable interface specifications for software components, which extend the ordinary definition of abstract data types with preconditions, postconditions and invariants

Encapsulation

bundling of data with the methods that operate on that data, or the restricting of direct access to some of an object's components. Encapsulation is used to hide the values or state of a structured data object inside a class, preventing unauthorized parties' direct access to them.

Command-Query-Separation(CQS)

“Functions should not produce abstract side effects...only commands (procedures) will be permitted to produce side effects.” - Bertrand Meyer: Object-Oriented Software Construction

Principle of least astonishment (POLA)

a component of a system should behave in a way that most users will expect it to behave. The behavior should not astonish or surprise users

Linguistic-Modular-Units

“Modules must correspond to syntactic units in the language used.” - Bertrand Meyer: Object-Oriented Software Construction

Self-Documentation

“The designer of a module should strive to make all information about the module part of the module itself.” - Bertrand Meyer: Object-Oriented Software Construction

Uniform-Access

“All services offered by a module should be available through a uniform notation, which does not betray whether they are implemented through storage or through computation.” - Bertrand Meyer: Object-Oriented Software Construction

Single-Choice

“Whenever a software system must support a set of alternatives, one and only one module in the system should know their exhaustive list.” - Bertrand Meyer: Object-Oriented Software Construction

Persistence-Closure

“Whenever a storage mechanism stores an object, it must store with it the dependents of that object. Whenever a retrieval mechanism retrieves a previously stored object, it must also retrieve any dependent of that object that has not yet been retrieved.” - Bertrand Meyer: Object-Oriented Software Construction





Rustrust1 vs Haskellhaskell

https://serokell.io/blog/rust-vs-haskell


Haskell & Rust mind map

https://forum.cardano.org/t/haskell-and-rust-mind-map/20212


Rust Mind Map

https://github.com/ItFlyingStart/Rust

Rust Mind Map 2

https://www.aloneguid.uk/posts/2021/01/rust/

Save space by cleaning non-essential files from software projects.

  • 러스트 프로젝트가 많아지면 target폴더 지워야하는데 kondo라고 치면 다 지워준다. 최고!!💕
kondo

윈도우 파웨셀에서 원하는 폴더 강제로 지우기(pwsh.exe) WindowsOS에서

  • rm -Force 지우고 싶은 폴더

rm -Force .\read_line03

윈도우 파웨셀에서 .gitignore 만들기 /target세팅 (pwsh.exe) WindowsOS에서

  • WindowsOS윈도우에는 touch가 없으니 echo를 활용하면 된다. 신기한건 Linux나 macOS에서도 되서 신기했다. 무조건 touch로 해야하는줄 알았는데 ㅋㅋ

echo /target >> .gitignore


or


echo "/target" >> .gitignore

윈도우 파워셀에서 러스트 target폴더 지우기(pwsh.exe) WindowsOS에서

  • 상위 폴더에서 하면 하위 폴더에 있는 target 폴더 다 지워진다. ㅎㅎ 편하네 ㅋㅋ 개꿀!!
Get-ChildItem -Filter ./target -Recurse -Force | Remove-Item -Recurse -Force

윈도우 파워셀에서 러스트 target폴더 찾기(pwsh.exe) WindowsOS에서

dir .\ -r -i "target"

Tutorial Rust(다른 외국 유튜버 깃허브Rust정보)

https://github.com/GuillaumeGomez/tuto-rust-fr

https://github.com/0atman/noboilerplate

LetsGetRusty Cheat Sheet 얻기

https://www.youtube.com/c/LetsGetRusty/featured

https://letsgetrusty.kartra.com/page/GWh4

Rust Resources

https://letsgetrusty.kartra.com/page/XDk8






시작 예제 some, None ex)(외국 유튜버 설명)

https://youtu.be/OrL0DEChwpQ

Rust's Option❤️in One Figure(내 블로그에 정리)

https://economiceco.tistory.com/m/6140

★★★Rust Tutorials 로드맵(Road Map)첫시작!-★★★(총정리)Rustacean이 되어 보자!!Let's go!(내 블로그에 정리)

https://economiceco.tistory.com/8614

Rust __Unstable - Book

https://doc.rust-lang.org/beta/unstable-book/the-unstable-book.html

$유료$ Rust 코스 모음$