책소개
실제 소프트웨어 개발부터 비동기 처리까지
쉽고 빠르게 익히는 러스트 프로그래밍의 모든 것
러스트 프로그래밍 언어의 기초부터 실전 활용법까지 단계별로 러스트를 배워 보세요. 러스트를 처음 접하는 입문자부터 타 언어 개발자까지, 누구나 쉽게 러스트의 세계로 들어설 수 있도록 친절하고 이해하기 쉽게 구성했습니다. 복잡한 설치 과정 없이 바로 실행할 수 있는 러스트 플레이그라운드를 통해 다양한 예제를 실습하며 러스트의 기본부터 고급 기술까지 터득해 보세요. 컴파일러의 메시지를 이해하고, 외부 라이브러리를 활용하는 방법, 비동기 프로그래밍, 매크로 작성 기법까지 러스트의 핵심 내용을 모두 담았습니다. 이 책과 함께라면 여러분도 러스트를 사랑하는 개발자로 거듭날 수 있을 것입니다. 러스트의 매력을 지금 경험해 보세요!
저자소개
데이브 매클라우드
한국에 거주하는 캐나다인으로 번역, 카피라이팅, 출판, 교육, 전력, 미디어, 프로젝트 관리, IT 분야에서 25년 이상 경력을 쌓았습니다. 1997년에 일본어를 배우기 시작했고, 동양 언어에 관심이 커져서 1999년에 일본으로, 2002년에 한국으로 이주했습니다. 풀타임 러스트 개발자이며 많은 사람이 러스트를 쉽게 활용할 수 있도록 가치 있는 정보를 제공하는 데 관심이 많습니다. 현재는 러스트로 구축된 데이터베이스를 개발하는 SurrealDB에서 재직 중입니다.
이지호
초등학교에서 GW-BASIC을 처음 배우고, 중등 시절부터 프로그래밍에 본격적인 흥미를 느껴 독학으로 프로그램 언어를 배우기 시작했습니다. 현재는 한국방송통신대학교 대학원의 정보과학과에서 데이터베이스를 연구하고 있습니다. 파이썬을 접한 이후로는 프로그램을 만들 일이 생기면 파이썬으로만 개발하는 파이썬 애호가입니다. 파이썬과 데이터베이스로 우주 정복을 꿈꾸는, 아직 철없는 개발자이기도 합니다. 요즘은 러스트에 빠져 어떻게 하면 러스트와 파이썬의 장점을 한 번에 이끌어 낼 수 있을까 생각하고 있습니다.
목차
[PART 1 웹 브라우저에서 러스트 사용하기]
CHAPTER 1 러스트 기초
_1.1 러스트 플레이그라운드
_1.2 (공사 아이콘)과 ⚠
_1.3 주석
_1.4 타입
_1.5 타입 추론
_1.6 ‘hello, world!’ 출력하기
_1.7 변수 및 코드 블록 선언하기
_1.8 Display 및 Debug
_1.9 가장 작은 숫자와 큰 숫자
_1.10 가변성
_1.11 섀도잉
CHAPTER 2 메모리, 변수, 소유권
_2.1 스택, 힙, 포인터
_2.2 출력 알아보기
_2.3 문자열
_2.4 const와 static
_2.5 참조 알아보기
_2.6 변경 가능한 참조
_2.7 섀도잉 다시 알아보기
_2.8 함수에 대한 참조 제공
_2.9 복사 타입
_2.10 값이 없는 변수
CHAPTER 3 복잡한 타입
_3.1 컬렉션 타입
_3.2 제어 흐름
_3.3 구조체
_3.4 열거형
_3.5 루프
_3.6 구조체 및 열거형 구현하기
_3.7 해체
_3.8 참조 및 도트 연산자
CHAPTER 4 제네릭
_4.1 제네릭
_4.2 Option과 Result
CHAPTER 5 컬렉션 및 오류 핸들링 더 알아보기
_5.1 다른 컬렉션
_5.2 ? 연산자
_5.3 패닉과 unwrap이 유용한 경우
CHAPTER 6 트레이트
_6.1 트레이트 기초
_6.2 From 트레이트
_6.3 함수에서 문자열과 &str 가져오기
CHAPTER 7 이터레이터와 클로저 기초
_7.1 체이닝 메서드
_7.2 이터레이터
_7.3 클로저
CHAPTER 8 이터레이터와 클로저 심화
_8.1 클로저와 이터레이터에 유용한 메서드
_8.2 dbg! 매크로 및 .inspect
CHAPTER 9 수명과 내부 가변성
_9.1 & str의 타입
_9.2 수명
_9.3 내부 가변성
_9.4 Cow
CHAPTER 10 다중 스레드와 고급 주제
_10.1 타입 별칭 및 새 타입
_10.2 함수 내에서 가져오고, 이름 변경하기
_10.3 todo! 매크로
_10.4 Rc
_10.5 다중 스레드
CHAPTER 11 클로저, 제네릭, 스레드 더 알아보기
_11.1 함수 안의 클로저
_11.2 impl Trait
_11.3 Arc
_11.4 범위가 지정된 스레드
_11.5 채널
CHAPTER 12 Box와 러스트 문서
_12.1 러스트 문서 읽기
_12.2 속성
_12.3 Box
CHAPTER 13 기본값, 빌더 패턴, Deref
_13.1 기본값 및 빌더 패턴
_13.2 Deref와 DerefMut
CHAPTER 14 코드 테스트와 빌드
_14.1 크레이트와 모듈
_14.2 테스트
_14.3 테스트 주도 개발
CHAPTER 15 상수, 안전하지 않은 러스트, 외부 크레이트
_15.1 제네릭 상수
_15.2 상수형 함수
_15.3 가변 정적 변수
_15.4 안전하지 않은 러스트
_15.5 외부 크레이트
_15.6 lazy_static과 OnceCell
[PART 2 컴퓨터에서 러스트 사용하기]
CHAPTER 16 러스트 사용하기
_16.1 카고
_16.2 사용자 입력 받기
_16.3 파일 사용하기
_16.4 cargo doc
CHAPTER 17 더 많은 크레이트와 비동기 러스트
_17.1 reqwest
_17.2 기능 플래그
_17.3 비동기 러스트
CHAPTER 18 표준 라이브러리 둘러보기
_18.1 배열
_18.2 char
_18.3 정수 타입
_18.4 부동 소수점 타입
_18.5 bool
_18.6 Vec
_18.7 String
_18.8 OsString 및 CString
_18.9 mem
_18.10 prelude
_18.11 time
_18.12 기타 매크로
CHAPTER 19 매크로 작성하기
CHAPTER 20 도서 관리 프로그램 만들기
_20.1 준비하기
_20.2 개발하기
_20.3 배포하기
_20.4 마치며
[PART 3 부록]
APPENDIX A 러스트 설치하기
APPENDIX B Node.js 설치하기
APPENDIX C PostgreSQL 설치하기
APPENDIX D 비주얼 스튜디오 코드 설치하기
APPENDIX E 포드맨 설치하기
APPENDIX F 포드맨으로 PostgreSQL 서버 설치 및 구동하기
출판사리뷰
안전성과 성능을 동시에!
러스트를 쉽게 배우는 가장 확실한 방법
러스트는 C/C++의 성능과 제어력을 유지하면서도 메모리 안전성을 제공하는 현대적인 프로그래밍 언어입니다. 시스템 프로그래밍뿐만 아니라 웹 개발, 임베디드, 게임 개발 등 다양한 분야에서 활용되며 안정성과 효율성을 동시에 갖춘 언어로 주목받고 있습니다. 하지만 러스트의 독특한 소유권과 빌림 개념은 처음 배우는 이들에게 높은 진입 장벽이 될 수 있습니다. 그러나 걱정할 필요 없습니다. 『이지 러스트』와 함께라면 러스트를 자연스럽게 익히며 자신 있게 활용할 수 있습니다.
이 책은 러스트의 핵심 개념을 차근차근 단계별로 설명하고, 러스트 플레이그라운드에서 실습할 수 있는 다양한 예제를 제공합니다. 소유권, 빌림, 제네릭 등 필수 개념을 실습과 함께 소개해 러스트를 처음 배우더라도 쉽게 이해하고 활용할 수 있도록 안내합니다. 더불어 도서 관리 프로그램을 직접 만들어 보며 이론을 넘어 실무 적용 능력까지 키울 수 있습니다. 이 책과 함께 러스트를 시작해 보세요. 어렵게만 느껴졌던 러스트가 친숙한 언어로 다가올 것입니다.
대상 독자
주요 내용
독자리뷰
한빛미디어 서평단 <나는 리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.
대부분의 문법과 Rust의 기능과 특징을 설명하고 있는 1부와,
비동기, 매크로 등의 주제와 간단한 실습 프로젝트가 있는 2부로 나눠져있다.
정석적인 학습 - 적용 패턴이다
프로젝트도 그렇게 무겁고 거대하지 않아서 쉽게 도전해볼 수 있다.
일단 이 책은
1. Rust를 잘 알고, 현재도 Rust로 개발하고 있는 사람 (쌉고수)
2. Rust를 공부해봤고, Rust로 토이 프로젝트 정도 만들어 본 사람 (초보~중수)
3. Rust를 들어는 본 사람 (뉴비~초보)
이 중 누가 읽어도 이점이 있다는 게 내 생각이다.
Rust를 좋아하는 사람이라면, 이 책을 구매해서 읽어보는 데에 전~혀 손해볼 게 없다.
나는 솔직히 '이지' 러스트라고 하길래 "훗, 내가 설마 모르는 게 있겠어?(거-만)" 하고 읽었다.
내가 엉? 그동안 강의랑 특강이랑 스터디랑 책만 몇 개, 몇 권을 듣고 읽었는데!
그런데도 놓쳤던 미묘한 디테일이나, 그동안 잊고 있었던 부분까지 잘 담겨 있었다.
일단 확실한 건 복습용으론 진짜 최고인듯.
그리고 가장 가장 좋은 부분은 역시 글이 잘 읽힌다는 점이다.
러스트인들은 대부분 국룰 자료인 러스트 북으로 입문을 한다(나도 그랬고).
원어로 공부하는 것보다야 훨씬 좋지만 그래도 읽으면서 어색하거나 아쉬운 부분들이 있었다.
안그래도 어렵다는 Rust를 배우기 위해 읽는 독자들일텐데 번역이 아쉬우면 읽는 게 불편하고,
불편하면 집중도 안 되고, 자연스럽게 공부 속도도 더뎌질 수 밖에 없다.
그런 점에서 <이지 러스트>는 닉값을 제대로 하고 있다.
서문을 보면 알겠지만, 애초에 매클라우드 형이 작정하고 이해하기 쉽게 풀어썼기 때문이다.
결론: 내용도 알차지만 가독성이 너무 좋다!
출처: https://zzaekkii.tistory.com/35 [int main(){:티스토리]
한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다.
C/C++를 대신해서 메모리 안정성을 위한 언어로 권장되고 있지만 여전히 진입장벽이 높은 것이 Rust입니다. 기존의 다른 언어들에 없거나 느슨하게 적용되는 규칙들이 엄격하게 적용되어서 초반 학습 곡선조차 가파르다고 생각합니다. 러스트에 대해서 꾸준히 관심은 가지고 있지만 시작이 그렇게 쉽지는 않았는데 이번에 오랜만에 다시 리마인드 할 수 있는 책이었습니다.
이 책에서 가장 좋았던 점은 로컬에 환경을 구성하지 않고 실습을 할 수 있도록 Playground 활용이었습니다. 프로그래밍을 처음 시작할 때 가장 힘들었던 것이 언제 업데이트되었는지 알 수 없는 책을 보고 컴파일러나 인터프리터를 설치하고, 에디터에 연결하는 트러블 슈팅이었는데 이 과정없이 실습이 가능하도록 구성되어 있어 바로 코드 작성으로 실습을 시작할 수 있습니다.
책은 정말 친절하게 설명을 하고 있지만 프로그래밍을 처음 시작하는 분들께는 적합하지 않다고 생각합니다. 기존에 어느 정도 언어의 스펙을 이해하고 용어가 익숙한 사람들은 큰 무리 없이 읽을 수 있지만 처음 시작하는 사람이 읽기에는 개념의 공백이 좀 발생하는 구성입니다. 정말 정석적인 의미에서 언어에 대한 스펙과 트러블 슈팅 방법을 쌓아가는 구조여서 러스트를 이해하고 학습하기엔 좋았지만, 프로그래밍을 시작하기에는 적합하지 않다고 느껴졌습니다.
python, JS의 매니지드 언어를 다루다 매니지드 언어의 필요를 느꼈다면 정말 좋은 책입니다. 백악관에서도 보안 등의 문제때문에 사용을 권장 할 정도로 강력한 언어의 입문서로는 정말 좋습니다. 쉽게 설명하지만 언어자체가 어려운건 방법이 없지만 데모 프로그램을 만들면서 실체를 조금은 잡을 수 있는 책 입니다.
“한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다.”
20년 넘게 개발자로 살면서, 다양한 프로그래밍 언어를 접했습니다. C와 C++을 거쳐서 자바스크립트, 타입 스크립트를 주로 사용했지만, 자바, 파이썬, 매크로 어셈블러, 루아, 얼랭, 클로저, 루비, 커피 스크립트, 스칼라, 하스켈, Go에 이르기까지 우리나라에 출판된 프로그래밍 언어에 대한 책들은 구할 수 있는 대로 모두 읽어왔습니다. 이렇게 열심히 읽어 온건, 개발자라면 프로그래밍 언어에 대한 공부는 멈추지 말아야 한다는 일종의 신념이 있기 때문이었습니다.
러스트는 근 몇 년간 제가 관심을 갖고 있는 프로그래밍 언어입니다. 시스템 프로그래밍이 사용하는 컴파일 언어인데 함수형 프로그래밍까지도 가능한 놀라운 언어이고, 다양한 운영체제 진영에서 적극적으로 도입하고 있어서 호기심을 자극하거든요. 게다가 사용자들이 많아졌는지, 요즘엔 책도 많이 나오고 있고요.
하지만, 러스트는 다른 언어에 비해 새로운 개념과 용어가 많아 진입장벽이 높습니다. 그럼 접근하기 꺼려지는데요. <이지 러스트>는 이 부분에 크게 도움이 될 책인 것 같습니다.
프로그래밍 언어 책을 많이 읽다 보니 책 제목에 쉽다는 뉘앙스로 "7일 완성", "21일 완성" 같은 말이 있는 책도 있었고, 심지어 "가장 쉬운"이라는 표현이 제목에 들어간 책도 읽어 보았거든요. 하지만 책을 읽어보면, 생각보다 쉽지 않았던 경우가 많았습니다. 하지만, <이지 러스트>는 그렇지 않더군요. 정말 쉬웠고, 물 흐르듯 설명하는 게 상당히 인상적이었습니다.
게다가 저자는 책의 앞쪽 3분의 2 이상을 Playground에서 설명하는 것을 택했습니다. 이 부분은 다른 책에서도 참고했으면 하는 방식이었습니다. 사실 다른 프로그래밍 언어 책뿐만 아니라 러스트 책들도 책을 시작하는 처음 부분에서 다루는 건, 해당 프로그래밍 언어를 실행해 볼 수 있는 환경을 자기 컴퓨터에 구성하는 것이기 때문입니다. 그런데 이런 부분이 개인적인 컴퓨터 환경에 묶이게 되면 공부할 수 있는 장소가 한정적이게 되고 책을 읽는 시간이 점점 늘어지다가 책 읽기를 포기하게 되기도 합니다. (저도 그런 경험이 몇번 있어요) 그런데 그런 작은 부담도 필요 없이 바로 책을 읽으면서 playground 웹 사이트에 가서 코딩을 해볼 수 있게 한 것이죠.
또한 책의 내용적 흐름도 인상적이었습니다. 프로그래밍 언어에 대한 책은 결국 프로그래밍 언어를 설명하는 것이기 때문에 프로그래밍 언어에 대한 분해 설명 이런걸 위주로 '표준안'(specification)같은 느낌의 책이 되어가기 마련인데요. 저자는 독자의 의식의 흐름을 감안해서 설명을 이어가고 있습니다. 프로그래밍 언어를 분석하기 보다 독자의 이해의 흐름을 따라서 서술한 것이죠. 사실 저도 프로그래밍 언어 책을 써보기 위해서 2년 정도 시도해보고 있는데요. 이렇게 독자의 이해의 흐름에 따라 설명해가는게 쉬운일이 아니거든요.
<이지 러스트>를 읽으면서, 러스트라는 프로그래밍 언어의 학습방법에 대해 이해하게 되었습니다. 러스트 컴파일러는 정말 까탈스러운 성격이지만 자기가 왜 불만을 갖고 있는지 아주 친절하게 알려주는 애인같은 존재이더군요. 따라서, 좀 쉬운 코드부터 작성해가며 컴파일러가 뭐라고 하는지 귀기울여보는게 참 중요한데요. <이지 러스트>의 설명방식이 그러했습니다. 코드와 컴파일 에러를 모두 보여주면서 설명하거든요. 그러니 책을 모두 따라가 보고나면 자연스럽게 러스트와 친해질 수 밖에 없을 것 같네요.
“한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다.“
러스트는 역시 어렵다. 러닝 커브가 상당하다. 흡사 스칼라를 배울 때가 생각날 정도다. 그런데 그것보다 더 어렵다. 단순하지 않았다. 정교하다보니 익혀야 할 내용이 많다. 그래서 이지 러스트라고 해서 쉽게 쉽게 읽힐 줄 알았다. 오산이었다. 당연히 다른 책에 비하면 저자의 노력과 역자의 노력이 엿보이는, 그래서 읽으면 그래도 읽혀지는 그런 책이다. 하지만 내용만큼은 잘 기억될만큼 녹록하지 않았다.
러스트를 책으로 접한 건 이펙티브 러스트였는데, 읽다가 완전 멘탈이 나갔었다. 기초가 탄탄하지 않으면 저자가 뭔 얘길 하고 싶어하는지 제대로 이해할 수 없었기 때문이다. 이 책을 읽으려면 초심자부터 시작해야겠구나, 하던 차에 이 책을 알게 됐다. “이지”, 쉽게 러스트를 공부할 수 있겠구나 싶어 덥썩 잡았다.
이 책이 문제가 아니다. 러스트가 워낙에나 어려워서 그런 거다. 근간이 C/C++다보니 피할 수 없는 숙명과도 같은 수준이다. 같은 내용을 여러 가지 방법으로 구현할 수 있는, 마치 자유도 빵빵했던 울티마를 하는 느낌같달까? 그래서 너무나 높은 자유도, 그래서 주어지는 여러 가지 기법들, 문법들, 그걸 쉽게 설명하라고? 저자도 무척 애먹었을 것 같다.
아마 일반적인 책 구성이었다면 PART3를 맨 먼저 간단히 나열하고 (준비해보자~) 16장 러스트 사용하기를 넣은 다음 1~9장을 붙이고 나머지 장들을 후반부 또는 부록으로 마무리했을 것 같다. 이런 책들은 사실 초반 사용하기까지 읽고나면 지친다. 책을 읽어야 하는 게 아니라 환경을 설정하고 샘플을 돌릴 수 있는 환경 설정하는 데까지 실제로 해보지 않으면 그냥 무의미한 텍스트의 나열이 될 게 뻔하기 때문이다. 그래서 흥미가 동하지 않는 경우가 많다.
저자는 그런 점을 알고 있었던 게 아닐까? 웹 브라우저를 통해 온전히 코드에 집중해서 실행해 볼 수 있음을 어필하여 준비 단계랄 게 없다고 어깨 한 번 으쓱 하고 넘어갔다. 오호~
아마 3장까지는 그럭저럭 읽어나갔던 것 같다. 그런데 그 뒤로는 영 진도가 안 나간다. 그 장까지는 읽으면서 러스트가 최신 언어에서 좋다고 하는 건 다 갖다 붙여놨구나, 하는 생각이 들었다. 그래서 비교적 쉽게 이해할 수 있었던 거 같은데, 이 소유 개념과 생명주기 개념 등이 엮이기 시작하면서 진도가 안 나간다. 반쯤 이해를 포기하고 끝까지 글자를 읽어나 보자는 마음에 계속 읽어나갔다. 왜 이렇게 이해가 안 가는 게 많지? 다른 언어에서는 한 가지 타입으로, 때로는 숨겨서, 퉁치는데 여기서는 아주 세세하게 나눠서 접근해야 했다. 이런 방식은 C/C++가 주는 그 자유도와 연관된 게 아닐까 싶다. 자바 세계로 넘어왔고, 스칼라와 자바스크립트, 루비 등에 익숙한 본인 입장에서는 그래서 더욱 까다롭게 느껴졌고, 그러다보니 외우고 이해해야 하는 게 너무 많아서 저자가 계속 얘기하는 내용들이 버겁게 느껴졌던 게 아닐까 싶다.
그래서 결론이 뭐다? 저자는 그런 내용들을 잘 알기 때문에 어떻게든 쉽게 눈높이 교육을 하기 위해 노력한 것이다. 그 노력과 그 결과물에는 찬사를 보낸다. 공부해보겠다고 개발자 가이드 서적을 구매해서 보자마자 머릿속이 하얘지는 경험을 한 사람으로, 정말 이것보다 더 쉽게 설명이 가능했을까 싶긴 하다.
“이지”하지만 단시간에 읽을 수는 없어 보인다. 그만큼 방대하기도 하고, 외우고 익숙해져야 할 개념도 많다. 하지만 기초를 원한다면 이 책이 매우 적합하다는 생각이다. 믿기 어렵다면, 개발자 가이드를 보라. 양에 질릴 테다. 그래서 추리고 추려 쓴 이 책이 좋다.
이지 러스트
- 실습하며 배우는 빠르고 안전한 코드 작성의 비결
데이브 매클라우드 지음
이지호 옮김
[ 대상 독자 ]
러스트를 접해 보고자 하는 모든 프로그래머 ?
다만.... 최소 다른 한 가지의 언어는 다룰 줄 알면 더 좋을 것 같습니다.
다른 언어들과 차이나는 부분들이 많긴 하지만 프로그래밍 언어에 대한 지식이 있다면
좀 더 쉽게 접근할 수 있을 것 같습니다.
[ 책 구성 ]
이 책은 크게 총 20개의 장에 2개의 부분 그리고 1개의 부록으로 나뉘어져 있습니다.
Part 1 은 "웹 브라우저에서 러스트 사용하기"
Part 2 는 "컴퓨터에서 러스트 사용하기"
Part 1 의 "웹 브라어저에서 러스트 사용하기" 는 러스트 빌드 환경을 설치하지 않고 웹에서 기본 실습을 하면서
러스트의 기초 및 약간의 고급 영역까지 학습할 수 있습니다.
Part 2 의 "컴퓨터에서 러스트 사용하기" 는 컴퓨터에 설치 해야지만 학습할 수 있는 사용자 입력 받기, 컴퓨터내의 파일 디렉토리 제어 등
로컬의 자원을 이용한 러스트 프로그래밍을 학습하고, 로컬에 설치해서 사용가능한 자료 구조 및 라이브러리, 매크로를 학습하고
"도서관리 프로그램" 을 예제 코드와 함께 만들어 보면서 러스트를 이용한 프로그램 개발의 기반을 다질 수 있습니다.
Part 3 "부록" 에서 Part 2를 위해 러스트 설치하는 방법을 알려주고 있으며, 그 외 Node.js, PostgreSQL, 비주얼 스튜디오코드, 포드맨 각각에 대해
설치하는 방법들을 알려주고 있습니다.
러스트 언어에 대해 실습을 컴퓨터에 설치하지 않고 기본적인 문법들을 웹 (https://play.rust-lang.org/) 을 통해서 할수 있다는 건 너무 편하고
매력적인 것 같습니다.
[ 책 내용 구성 ]
이 책은 주로 예제 코드와 함께 그 결과를 보여 주면서 하나씩 필요한 설명을 해주기에 직접 타이핑 해보지 않더라도
책의 코드와 설명을 천천히 읽어가며 학습하여도 충분히 이해할 수 있도록 구성되어 있습니다.
그래도, 직접 타이핑 해보면서 학습하는 것이 더 좋겠죠~
[ 결론 ]
책 내용의 구성 자체는 단순 합니다.
각 주제에 대해서 각각의 설명에 맞는 코드와 함께 주욱~~ 풀어 쓴 형태의 학습서 입니다.
말 그대로 학습서가 맞는 것 같습니다.
개발자 매뉴얼 (?)
그러다 보니 조금 지루함이 있을 수도 있을 것 같습니다.
적절한 컬러와 함께 그리고, 설명들에 대해서 적절한 그림, 다이어그램 등 다양한 도구를 이용하여
설명 해주었으면 더 좋지 않았을까라는 생각이 듭니다.
러스트 실습 교과서가 맞는 것 같습니다.
이지 한 듯 하면서도 깊이는 있기에 완전히 이지하지는 않은것 같습니다.
한빛미디어 서평단 <나는 리뷰어다> 활동을 위해 책을 협찬 받아 작성된 서평입니다
러스트는 가장 사랑받는 언어로 유명하지만, 시스템 프로그래밍 언어이고, 진입장벽이 높다는 이유로 배우기는 망설여지는 언어였습니다. 리뷰어 활동으로 "이지 러스트"를 접하고, 러스트 제로베이스 입장에서 한 달간 공부해보았습니다.
?책 구성
592페이지 분량으로, 러스트 기초부터 실전 프로젝트까지 체계적으로 구성되어 있습니다.
?특징
1. 편리한 실습 환경
Part1은 Rust Playground 사이트에서 바로 실습 가능합니다. 전체 예제 코드는 깃허브 레포지토리에서 제공됩니다. 개발 환경 설정은 부록으로 분리되어, 학습 흐름에 방해되지 않습니다.
2. 단계적인 학습
기초 개념부터, 심화 개념까지 러스트 이론을 한 권으로 학습할 수 있습니다. 이론 학습 후, 실전 프로젝트 구현까지 단계적으로 학습 가능합니다.
3. 실전 프로젝트
도서 관리 프로젝트를 구현합니다. 러스트를 활용해 도서 관리 프로젝트를 구현하고, 또 vue.js와 tauri를 사용하여 프론트엔드까지 구현합니다. "실습"이 아닌 "프로젝트"라고 할 수 있는 수준의 완성도 높은 프로젝트 경험을 할 수 있습니다.
?장점
러스트 입문자도 이해하기 쉽게 설명합니다.
실습과 이론의 균형 잡힌 구성입니다.
♥️추천대상
✅러스트 프로그래밍에 관심이 있으신 분
✅시스템 프로그래밍을 배우고 싶으신 분
✅기술 스택 확장을 고려하시는 분
?프로그래밍 입문자(기본적인 개발 경험 필요)
EASY라는 이름에 걸맞게, 러스트 입문자도 부담 없이 시작할 수 있는 책입니다. 시스템 프로그래밍으로 영역을 확장하고 싶은 분들에게 좋은 선택지가 될 것 같습니다.
한빛 미디어 '나는 리뷰어다' 서평단으로 받아 읽었습니다.
이 책은 이름 그대로 "이지" 러스트입니다.
개발을 어느정도 했던 사람들이라면, 정말 쉽게 러스트를 접할 수 있다고 생각합니다.
개발을 많이 모르더라도 쉽게 다가갈 수 있는 책임은 분명합니다.
** 한빛미디어 서평단 <나는 리뷰어다> 활동을 위해서 책을 협찬받아 작성된 서평입니다.
한동안 러스트에 관심을 갖고 보던 때가 있었다.
iOS와 Android, 그리고 게임엔진 등에서도 같이 동작시킬 수 있는 코드를 만들기 위해 고민을 하던 때였다.
C++로 작성하면 모두 커버가 되는 것은 맞지만, 한가지 문제가 있었다.
바로 난이도였다.
타 언어와는 다르게 C++은 난이도가 다소 높다. 물론 계속 C++로만 개발해온 사람이라면 모르겠지만, Java와 Kotlin, Obj-C와 Swift 등을 이용해서 개발해온 개발자의 입장에서라면 C++을 능숙하게 다루기 위해서는 고려해야할 것이 많다.
이런 상황에서 Native와 같은 성능을 제공하며, 다른 언어나 프레임워크 간 상호 호환성도 담보되는 다른 것을 찾기는 쉽지 않았다. 그러던 중 Rust가 눈에 띄었다. 안정성과 속도, 그리고 다른 언어간의 호환성까지 함께 책임질 수 있는 언어로 보였다.
결론부터 말하면, 그 당시 실질적인 조사는 어느정도 이루어졌으나 변화의 시기와 맞물리지 않아 아쉽게도 적용하지는 못했다.
그리고 실제 적용했다고 하더라도 나름 이 언어의 특성을 제대로 파악하기에는 여전히 어려운 용어들과 개념들이 존재했기에 그 장벽을 넘지 못해서 쉽지 않았을 것이라고 생각한다.(물론 C++만큼만은 아니지만, 새로운 개념에 대한 어려움은 어디든 존재하기에 그정도의 느낌이었다.)
![]() | ![]() |
일단 책은 상당히 쉽게 보이려 애쓴 흔적이 느껴졌다. 표지부터 이 책은 둥글둥글하니 두려움을 내려놓으세요. 라고 말하는 것만 같았다. 그래서 이 책은 경계심을 풀어주는데 일단 성공했다고 본다. 어느 대상이든(사람 혹은 사물, 현상 등) 경계심을 갖게 되면 친해지는데 시간이 걸린다. 그런 측면에서 이 책은 표지 선택부터 성공했다. 사실 제목도 마찬가지이다. 실습하며 배우는 빠르고 안전한 코드작성의 비결이라니. 러스트를 모르던 사람이라 하더라도 혹하지 않을 수 없다.
- 정가: 38,000원
- 분량: 592쪽
- 저자 및 옮긴이: 데이브 매클라우드 / 이지호
![]() | ![]() |
이 책을 구성할 때 각 단위별로 얼마나 짧은지 오른쪽 내용을 보면 실감할 수 있다.
그리고 자연스러운 흐름을 구성했다는 차원에서 2장의 도입부도 머리의 생각에 와 닿았다.
![]() | ![]() |
하나는 다소 어려운 개념이다. 클로저. 하지만 이터레이터는 자바에서도 쉽게 사용하는 부분이기에 이곳에서 어떻게 설명하고 있는지 관심을 갖고 지켜보았다.
그리고 HTTP 통신한 부분이 인상적이었는데, 매우 간편하게 구현할 수 있었다는 사실에 관심이 가게 되었다. 물론 각종 옵션 설정과 비동기처리까지 한다고 하면 이 코드보다는 더 많은 코드가 필요하겠지만, 기본적인 코드 입장에서는 아주 간단하게 client와 send 함수 호출만으로도 충분히 통신할 수 있는 코드가 된다는 사실은 매력적이다.
![]() | ![]() |
그리고 챕터의 마지막 부분과 부록 부분도 크게 감동이었다.
사실 도서관리 프로그램은 역자가 별도로 추가한 부분이다. 그런데 이 페이지를 추가하면서 간단하게 완성된 프로젝트는 이렇게 하면 된다는 느낌으로 적어두지 않았고, 실제 프로젝트 간단하게 진행하기에 부족함이 없을 정도로 치밀하고 순차적으로 친절하게 설명을 해 두었다. 그래서 큰 도움이 되었다. 단순히 언어만 배우는 것이 아닌 프로젝트를 경험하면서, 폴더 구조는 어떻게 하는 것이 모범사례인지 궁금했던 나에게 이것을 해소시켜 주었다.
또한 러스트 설치하기도 화면 캡처를 곁들여서 어렵지 않게 설치하도록 도와준다. 이 외에도 Node.js, PostgreSQL, 비주얼 스튜디오 코드, 포드맨 설치 및 연관된 것들을 이어서 구동하는데까지 이르도록 하였다. 이렇게나 친절하게 알려주니 오히려 모르는 척하기가 더 어렵다.
일단 러스트라는 언어를 생소하게 받아들이는 개발자라도 환영이다. 다만 기본적인 호기심은 필요하겠다. 그정도면 충분하다.
그리고, 웹 개발자와 애플리케이션 개발자도 환영이다. 사실 러스트의 활용가치는 다양하기 때문에 제한을 두고 싶지는 않다. 단지 이것은 도구일 뿐이기 때문에 이러한 도구를 잘 익혀두면 언젠가는 적시적소에 사용할 수 있다. 그래서 기본적으로 5년 이상 하나의 언어나 프레임워크에 집중해 온 개발자라면 환기 차원에서라도 이 책을 통해 러스트를 배웠으면 좋겠다.
다른 언어에 대한 경험은 있지만(Python, Java, C#, C++ 등) Rust를 처음 접하는 개발자에게, Rust만의 독특한 개념(소유권, 수명 등)에 대한 두려움이 있다면 좋은 출발점이 될 수 있다고 생각한다. 다만 완전히 개발 자체를 입문하는 사람에게는 추천하고 싶지는 않은데, 이 언어만의 특징을 다른 잘 알려진 언어들과 비교하면서 보기도 어려울 뿐 아니라, 당장에 활용하기에도 잘 알려진 프로젝트와 플랫폼이 많지 않아서 어려움을 겪을 수 있기 때문이다. 그리고 Rust를 몇 번이나 배우려고 노력했으나 실패한 사람에게도 유용하게 느껴질 것이다. 책의 구성을 포함하여 어렵지 않게 읽히기 때문에, 한장씩 넘기다보면 어느순간 익숙해지게 될 것이기 때문이다.
이 책은 1) 핵심 개념의 쉬운 설명으로 어렵지 않은 문체와 명료한 코드 예제로 어떻게 동작하는지 차근히 설명하고 있다. 덕분에 나 역시 막막했던 소유권 규칙을 직원과 관련한 예제 이야기 덕에 직관적으로 이해할 수 있었다. 2) 간단하고 명확한 예제 코드는 지루하지 않고 초점을 벗어나지 않도록 도와준다. 각 예제가 길지 않으며, 또한 메인 함수로 설명하고 있다. 즉, 각 예제는 바로 실행해서 확인하기 좋다는 뜻이다. 3) 점진적인 학습 곡선으로 구성되었다. 가파르지 않은 계단을 오르는 느낌이 들었다. 그래서 물 흐르듯 한장씩 넘기다보니 크게 막히는 느낌이 들지 않았다. 4) 매끄러운 번역도 마음에 든다. 이 책을 처음에는 한국에서 저자가 직접 집필한 줄 알았다. 그러고나서 부록을 보니 역자가 별도로 제공한 내용도 있다고 적혀있는 것을 보고서 이 책이 번역서라는 것을 알게 되었다. 그만큼 자연스러웠다.
Rust를 배우고 싶은 사람이라면 이 책부터 시작하는 것을 권하고 싶다.
쉽게 러스트를 배울 수 있지만, 쉽지 않은 개념까지 모두 챙길 수 있는 책
최근에 동네에 주변 사람에게서
"곧 Rust에 시대가 올 것입니다"
와 같은 뉘앙스의 말을 듣고 잠깐 혹했던 적이 있다.
그때가 아마 리뷰할 서적을 고를 시기와도 겹쳤고 그래서 이 책을 선택하게 된 것이다.
새로운 언어를 배울 때는 정말 많이 헷갈리고 있는 그대로 받아들이려하질 않곤한다.
Python에선 그냥 이렇게 하면 알아서 다 해주는데..
라는 생각이 종종 들곤 했지만
오히려 하나의 익숙한 언어를 바탕으로 Rust를 공부하다보니
어떤 부분인 어떻게 다르고 Rust는 이런식으로 표현하는구나
이러한 부분은 Rust가 훨씬 더 좋은 것 같은데?
처럼 생각하게 되었다.
이제와서 적긴하는데 책의 내용들이 보다보면 정말 허들이 없이 쉽게 설명되어있고 꽤 잘 읽힌다.
그리고 역자분의 센스인지 저자분의 센스인지는 몰라도
내용을 읽다보면 "응?" 하는 부분들이 있다.
너무 딱딱한 내용만 나열하기 보단 가끔 조미료와 같이 재미있게 표현하는 부분도 보이고
Rust 자체적인 매력도 있지만 이 책의 자체적인 매력역시 느껴지는 책이었다.
짬날때마다 이 책도 계속 읽어봐야 겠다.
https://blog.naver.com/ab415/223811999219
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
해서, 최대한 책을 펼쳐놓는 형태로 리뷰를 작성해 보려고 합니다.
그 중에 자신에게 맞는 부분이 있다면 책을 선택해 보시면 될 것 같습니다. ^^
1. 이 책이 다루는 내용
- 러스트 프로그래밍을 이해하고 프로그래밍하는 방법
- 러스트 기본적인 문법 및 코딩 방법
- 러스트를 웹브라우저에서 사용하는 방법, 컴퓨터에서 사용하는 방법
- 러스트로 도서관리 프로그램 만들어 보기
2. 대상
- 프로그래밍 기초 지식이 있는 러스트 입문자
- 다른 언어에서 러스트로 전환하려는 개발자
- 시스템 프로그래밍에 관심있는 개발자
3. 책 구성
[ PART 1 웹 브라우저에서 러스트 사용하기 ]
CHAPTER 1 러스트 기초
CHAPTER 2 메모리, 변수, 소유권
CHAPTER 3 복잡한 타입
CHAPTER 4 제네릭
CHAPTER 5 컬렉션 및 오류 핸들링 더 알아보기
CHAPTER 6 트레이트
CHAPTER 7 이터레이터와 클로저 기초
CHAPTER 8 이터레이터와 클로저 심화
CHAPTER 9 수명과 내부 가변성
CHAPTER 10 다중 스레드와 고급주제
CHAPTER 11 클로저,제네릭,스레드 더 알아보기
CHAPTER 12 Box와 러스트 문서
CHAPTER 13 기본값, 빌더 패턴, Deref
CHAPTER 14 코드 테스트와 빌드
CHAPTER 15 상수, 안전하지 않은 러스트, 외부 크레이트
[PART 2 컴퓨터에서 러스트 사용하기]
CHAPTER 16 러스트 사용하기
CHAPTER 17 더 많은 크리에이트와 비동기 러스트
CHAPTER 18 표준 라이브러리 둘러보기
CHAPTER 19 매크로 작성하기
CHAPTER 20 도서 관리 프로그램 만들기
4. 서평
기본적으로 프로그래밍 언어를 배울때는 현재 시점에 많이 쓰이고 있는 언어를 시도해보는 것도 좋은 방법이라고 생각합니다.
그 이유는 그 언어가 가지고 있는 특성이 현 시점의 비즈니스 모델을 반영하고 있기도 하고, 현 시점의 프로그래밍의 방향을 반영하고 있기도 하기 때문입니다.
더군다나 여기에서도 TDD라는 테스트 주도 개발 프로그래밍 방법도 맛볼 수 있습니다.
프로그래밍을 자신이 생각한대로 구현하고 오류를 내면서 하나씩 만들어갈 수도 있지만 아무내용도 만들지 않은 함수(깡통함수)를 만들어 놓고, 그 함수가 완성해야할 로직을 테스트하는 걸 먼저 만들면서 그 오류를 없애면서 프로그래밍을 만드는 방식의 방법을 경험해볼 수 있습니다.
5. 한줄소감
- 러스트라는 프로그래밍 언어를 혼자 시작해보기 좋은 책!!
[ 한빛미디어 서평단 '나는 리뷰어다' 활동을 위해서 전자책을 협찬 받아 작성된 서평입니다. ]
첫 인상은 꽤나 심플하고 경쾌하다. 엄청 화려한 느낌은 아니지만 눈에 톡톡 띄는 색상의 조합으로 이전 부터 생각했던 '러스트' 하면 떠오르던 주황색이라 더 공감가는 느낌이었다.
하지만 이건 개인적인 생각이고, 러스트 로고를 보면 더더욱 공감이 안 될 수도 있다. 왜냐면 공식 로고는 공장에서 굴러다닐 것만 같은 톱니바퀴 모양이기 때문이다.
출처: 나무위키
'이지' 라는 '쉬움'을 강조한 서적치고 막상 까보면 쉬운 내용이 있을까 싶지만 한번쯤 펼치고 싶게, 귀엽게 만든 표지에 박수를 보내고 싶다.
이지 러스트 P.374
표지는 깜찍하고 경쾌한 느낌이었지만 내용은 위 스크린샷과 같이 흑백이다. 그리고 내용들이 촘촘하게 쓰여있어 쉬는 느낌 없이 쭉 달려간다.
전자책이라 일반 종이책과 다른점이 있을 수 있겠지만 그림도 없고 '설명' -> '코드' -> '풀이' -> '설명' -> ... 의 반복이다.
지루한 느낌을 싫어하는 사람이라면 굉장히 싫어할 수도 있고, 안맞을 수도 있을 것 같다.
하지만 촘촘한 것이 꼭 나쁜가? 라고 한다면 그건 아니라고 할 것 같다. 러스트의의 기초적인 부분부터 하나씩 코드로 보여주고 설명해준다는 점에서 짧고 간결하게 넘어가는 점은 많은것을 알려주고 싶어하는 작가의 생각이 옅보이는 부분이다.
책은 크게 '웹 브라우저' 에서 실행할 수 있는 코드와 PC '로컬' 에서 실행할 수 있는 코드 두 파트로 나뉘어있다.
웹 브라우저는 실행이 안되는 내용을 제외한 간결하고 어찌보면 간단한 코드들이 주를 이루기 때문에 러스트의 문법등이 대부분이다. 하지만 실제로 러스트를 설치 해서 실행하는 파트2는 앞에서 배운 내용들을 토대로 좀 더 심화된 내용을 다룬다(때문에 대부분의 코드들이 파트1에 비해 길다).
파트1(좌)과 파트2(우)의 코드 길이
'이지' 라는 이름을 써가며 쉽다는 것을 강조했지만 과연 입문자나 러스트를 모르던 사람들이 이 책을 보고 쉽게 러스트를 배울 수 있을까? 하는 의문이 좀 든다.
간단하게 초반 부분에서 보자면 as, isize, usize 등의 타입 설명에서 나오는 문법이 가볍게 설명되고 있다는 점이다. 어느정도 개발을 해 본 사람이 아니고서야 '그래서 이게 뭔데?' 라는 생각이 들 수 밖에 없다. '문자 100번은 D이다.' 라고 설명하면 '초심자' 가 '아하 그렇구나!' 하고 알아 들을 수 있을까...? 하는 의문이 든다.
그래서 추천할만한가? 라고 한다면, 추천한다. 내용도 그렇고 웹브라우저에서 무료로 간단하게 실행해 볼 수 있다는 점도 상당히 매력적이라고 생각한다.
다만, 완전 초심자를 타깃으로 하기보단 러스트를 배워야 하는 교육용 서적으로 사용하면 좋지 않을까 싶다. 개발을 어느정도 아는 러스트 초심자라면 호불호가 갈려도 필요하다면 볼 수 있지만, 아무것도 모르는 또는 개발 초심자가 혼자서 이 책을 통해 러스트를 배우려고 한다면 좀 힘들지 않을까 싶다.
단순 웹브라우저에서 사용하는 러스트에 대한 내용을 자세하게 담고 있을 뿐만 아니라 컴퓨터에서 러스트를 사용하는 방법까지 기초를 폭넓게 다루고 있다. 완전 러스트 기초를 배우는 사람이라면 플레이그라운드를 사용해서 러스트를 익히고, 러스트가 좀 익숙해진 후에 로컬 환경에 설치 후 추가 내용을 다루기 쉽도록 구성되어 있다. 파일 저장 방법, 빌드 등 기초부터 세세하게 다루고 있기 때문에 러스트에 대한 기초를 확실히 잡기 편하다.
"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 협찬 받아 작성된 서평입니다."
프로그램을 처음 배울때가 생각이 난다. 그때는 그냥 "C/C++ 언어" 부터 였던거 같은데, 그렇게 C언어에서 포인터를 만나고, C++ 로 참조를 만나서 넘어오고 또 넘어 오고.. 취업을 하니 VC6.0, VB5.0... 시간이 흘러 Visual Studio 2005 ~ 2013 .net 까지 그렇게 살았다. Web, App.. PHP, ASP, JAVA, SPRING, 플러터, 파이썬.. 뭐가 이렇게 많은건지..
에잇 이 길은 내길이 아니여... 그래도 이 궁금증은... 에잇 RUST 넌 또 뭐냐.. 책을 편다.
- 러스트에 대한 개인 적인 생각. -
■ 러스트 결코 이지하지 않습니다만 알아두면 엄청난 언어라는 생각이 듭니다.
■어려웠던 점.
(1)소유권 개념이 생소. : 소유권 알듯 말듯.. 아는것 같은데 헷갈리고.. 아직 익숙치 않다.
(2) 컴파일러가 엄격함. : 장점이라고 하는데.. 에러 메세지도 길고 복잡하고...
(3) Lifetime 문법 : 참조간 관계를 명시적으로 표현해야하는데 복잡하게 느껴짐..
(4) C/C++/Python 과 스타일이 달라서 익숙치가 않다.
- 서평 : 이지 러스트 -
총평 : 아직은 기초 내용과 개념에 익숙해 지기 위해 플레이 그라운드에서 실습하는 단계이지만.. 러스트라는 언어를 알아가는 과정이 즐겁다.
1. 책의 구성은 심플하다.
Part 1. 러스트의 기초, 메모리, 변수, 소유권, 타입, 제어 구문, 제네릭, 컬렉션, 드레이트, 이터레이터, 클로저, 스레드..
Part 2. 러스트 사용하기, 표준 라이브러리, 매크로 작성 그리고 샘플 프로젝트( 도서 관리 프로그램)
Part 3. 부록 (러스트 설치, Node.js 설치, PostgreSQL 설치, 비주얼 스튜디오 코드 설치, 포드맨 설치..)
2. 프로그래밍 언어에 대한 이해가 있다면.. 러스트 입문서로써는 기초 부터 고급 개념 까지 폭 넓게 다룬다는 느낌이다.
기본적인 C/C++ 언어를 알고 있어서 그런지 처음 접하지만 낯설지 않게 느껴졌고, 비교적 쉽게 학습할 수 있었다는 느낌이지만, 처음 프로그램 언어를 접하는 분들이라면 다소 어려울수 있을거라는 생각도 든다.
3. 코드는 직접 입력해야 하는데.. 코드
작성이 쉽지는 않았다. ( 샘플 코드는 제공 된다. ^^)
플레이 그라운드를 통해 러스트를 설치 하지 않아도 기본적인 코드입력이 가능했다.
하지만 여러 제약 사항이 있어서.. 2장 부터는 로컬 환경에서 러스트를 설치 해야만 했다.
4. 샘플 프로젝트.(도서 관리 프로그램)- 책에 설명이 잘 되어 있지만. 역시 만만치 않다.
Vue.js / Node.js / Tailwind CSS / PostgreSQL , 프런트 엔드, 타우리 프로젝트.. (아직은 시기 상조라.. ^^)
▶가장 좋았던 점은 ..
웹브라우저 기반의 러스트 실습 환경을 통해 학습 진행이 가능한 점은 너무 좋다. 언제든 책을 펴고 인터넷 접속만 하면.. 러스트를 학습할 준비가 된다.
사실 다른 툴들은 초기에 개발 환경 설치 하다보면 책을 열기도 전에 지쳐 버릴때가 많다. 그리고 특정 PC, 노트북에 환경 설치 하고 나면 책을 열었다가도.. 다시 책을 덮어 버리기 일쑤였기에..
※참고 사이트 정보
아래에 사이트들에서 다양한 내용을 더 깊이 알 수 있다.
1. https://dhghomon.github.io/easy_rust/Chapter_0.html
2. https://doc.rust-lang.org/book/ch01-01-installation.html
3. 프로그래밍 언어 러스트를 배웁시다! 001 Easy Rust in Korean: Intro
https://www.youtube.com/watch?v=W9DO6m8JSSs&list=PLfllocyHVgsSJf1zO6k6o3SX2mbZjAqYE
주문한 책이 어제 집으로 책이 왔어요. 퇴근하고 조금 읽어봤는데. 나중에 후기 남길게요. 일단 인증샷 먼저.