누구나 탄탄하고 효율적인 고성능 소프트웨어를 만들 수 있게 해주는 프로그래밍 언어, Rust를 배우는 강의입니다. 로우레벨 프로그래밍을 할 수 있으면서도 하이레벨 언어기능이 풍부하여 이상적입니다.
이런 걸
배워요!
Rust
웹어셈블리
여러분이 찾아헤맨 Rust 입문 강의 등장!
놓치지 말고 바로 시작하세요 ⭐
러스트(Rust)는 '스택 오버플로(Stack Overflow)'에서 7년 연속 가장 사랑받는 언어 1위로 뽑혔어요.
현재 러스트를 사용하는 개발자는 전 세계적으로 280만 명에 달합니다. 디스코드(Discord), 클라우드플레어(Cloudflare) 등의 기업에서도 러스트를 사용하고 있어요.
세계가 사랑하는 Rust를 만나보세요!
본 강의에서는 차세대 고성능 프로그래밍 언어, Rust를 학습합니다. 로우레벨 프로그래밍을 해야 하지만, C/C++나 Go 같은 언어 기능에 한계를 느낀 분들은 로우레벨 프로그래밍을 지원하면서 고수준의 언어 기능이 탑재된 Rust를 활용하면 됩니다! 강의를 통해 백엔드 실무에 활용할 예제를 다뤄보고, 러스트로 최대 성능의 소프트웨어를 안정적으로 만들어 보세요.
러스트는 빠르고 메모리 효율적인 언어입니다. 인터프리터나 가상머신 등 별도의 런타임이 없고, 가비지 컬렉터나 GC도 없어요. 메모리 회수 작업이 없고 컴파일 타임이 미리 메모리를 관리하기 때문에 최대한의 성능을 끌어낼 수 있는 프로그래밍 언어입니다.
강력한 타입 시스템을 갖추고 있기 때문에 타입에서 안전하게 프로그래밍할 수 있어요. 소유권 모델이 잘 갖춰져 있어서 메모리와 스레드 환경에 안전하게 활용할 수 있습니다. 컴파일 타임에 많이 발생하는 문제를 예방할 수 있기 때문에 런타임에 만날 수 있는 버그를 대폭 줄일 수 있어요.
문서화가 잘 되어 있어서 개발에 굉장히 편리해요. 컴파일러가 친절해서 에러 메시지가 있을 때 어떤 문제를 해결해야 할지 빠르게 파악할 수 있습니다. 패키지 매니저와 빌드 툴은 물론 통합 개발 환경에서 쓸 수 있는 언어 환경이 잘 갖춰져 있어서 많은 작업을 편하게 할 수 있어요.
가볍고 빠르고, 배포가 편리한 CLI 툴을 만들고 싶은 분
임베디드 시스템이나 로우레벨 프로그래밍에 Rust를 사용하려는 분
웹어셈블리 결과물을 위해 Rust를 사용하려는 분
고성능 웹서비스를 만들어야 하는 개발자
✅ Rust 언어 기초와 동시에, 어려울 수 있는 소유권 모델과 임대 수명에 대해서도 친절히 설명합니다.
✅ 기본 문법 설명을 마치고, AWS Lambda 함수를 Rust로 만들어 보는 예제를 통해서 높은 실용성을 경험합니다.
1. 친숙한 VSCode에서 공식 Rust 확장프로그램을 이용해서 실습합니다.
2. Rust 고유한 메모리 관리 모델인 소유권에 대해 친절히 설명합니다.
3. 스택 메모리와 힙 메모리 사용에 따른 차이를 바탕으로 소유권 모델을 확실히 이해합니다.
저는 카카오(Daum), NHN, 라인+ 등에서 오랫동안 백엔드 개발자 및 개발팀장으로 지냈습니다. 다양한 프로그래밍 언어에 관심이 있어, 여러 언어로 현업 프로젝트를 진행한 경험이 있습니다. 고성능의 결과물을 낼 수 있는 Go 언어도 공부했지만, 너무 저수준의 언어라서 만족할 수 없었습니다.
Rust는 심지어 GC도 없이 메모리 관리를 직접 해야 한다기에, 더 저수준의 언어일까 봐 걱정했지만, 기우였습니다. Rust의 함수형 언어적 기능까지도 만족스러워서 개인 사이드 프로젝트를 진행해 보았고, 강의도 제작하게 되었습니다.
Q. C/C++가 있는데 왜 Rust를 배워야 하나요?
C/C++ 수준의 결과 성능을 낼 수 있으면서 메모리 관리 부담이 없기 때문에 훨씬 생산성 높은 개발을 할 수 있습니다.
Q. 자바, 파이썬, Go에 비해서 훨씬 어렵다던데요?
메모리 소유권 모델이 있어서 생소할 수 있지만, 컴파일러가 많은 부분을 대신해 주기 때문에 어렵지 않습니다. 이 강의에서 설명하는 소유권 모델 부분만 이해하면, 다른 언어 수준으로 쉽게 이해할 수 있습니다.
Q. 로우레벨 언어는 너무 저수준이라 응용프로그램을 만들기 힘들지 않나요?
Rust는 로우레벨을 다룰 수 있는 언어입니다만, 언어 수준은 현대 함수형 프로그래밍 언어 수준으로 편의성이 높습니다. 개발자에게 친화적이면서 시스템 레벨 프로그래밍도 할 수 있는 매력적인 언어이기에 힘들지 않습니다. 오히려, 개발 툴과 환경이 너무 잘 갖춰져 있어서 더 편리하기까지 합니다.
학습 대상은
누구일까요?
고성능 소프트웨어를 개발해야 하는 사람
시스템 레벨 프로그래밍을 할 사람
더 빠른 웹서비스를 개발해야 하는 사람
선수 지식,
필요할까요?
자바, 파이썬, 자바스크립트, C/C++ 등 프로그래밍 언어 중 1개 이상 학습 경험
함수형 프로그래밍에 관심이 많은 백엔드 개발자입니다. 카카오(Daum) 개발팀장, NHN 수석, LINE+ 리드를 지내며 개발팀 리딩을 했고, 현재는 컨스택츠라는 작은 스타트업에서 다시 백엔드 개발자로 일하고 있습니다.
https://hatemogi.com/ 에 개발자 개인 홈을 운영중입니다.
전체
28개 ∙ (4시간 36분)