O'REILLY
이펙티브 러스트 : 효과적인 러스트 코드 활용을 위한 35가지 방법
데이비드 드라이스데일 지음
남기혁 옮김
최근 핫한 언어 중에 하나인 RUST 언어 관련한 책 입니다.
사실상 RUST 언어 자체를 학습하기 위한 책이라기 보다 제대로 활용하기 위해 알면 좋은 부분들을 35가지로 정리한 책 입니다.
RUST 는 최근에 C/C++을 대체할 수 있는 언어로 많이 거론되고 있지만 이 언어는 훨신 더 이전인 2010년 모질라에서 개발한
시스템 프로그래밍 언어 입니다.
C/C++을 대체할 수 있는 언어로 거론되는 이유는, 메모리 안정성, 스레드 안전성, 높은 성능등을 보장하면서도 개발 생산성을
높일 수 있기 때문 입니다.
메모리 보호 기능으로인해 보안 안전성 또한 높기 때문에, 구글에서는 2021년 4월 부터 RUST로 전환을 시작하였다고 합니다.
이로인해 안드로이드 생태계에서 메모리 관련 취약점의 비율이 52% 감소하였다고 합니다.
Rust 의 5가지 특징
- 높은 메모리 안전성
- 뛰어난 성능
- 병렬 처리의 안전성
- 고유 소유권 시스템
- 풍부한 타입 시스템과 패턴 매칭
이 책에서는 RUST 개발 환경 구성에 대해서는 다루고 있지 않기에 아래의 사이트 참고하면 좋을 것 같습니다.
https://doc.rust-kr.org/ch01-01-installation.html
### 대상 독자
RUST 언어에 대한 기초를 다루는 책이 아니기에 책에서도 이 책을 학습하기 전에 다른 RUST 언어에 대한 기초를 익힌 후 이 책을 학습하기를 권하고 있습니다.
저자 추천 책, "러스트 프로그래밍 공식 가이드" (제이펍, 2024), "프로그래밍 러스트" (제이펍, 2022)
### 책 구성
이 책은 총 6개의 장으로 구성되어 있습니다.
35가지의 활용 팁을 6개의 장으로 구분하여 학습할 수 있도록 구성되어 있습니다.
1장, "타입"
아이템 1: 데이터 구조를 타입 시스템으로 표현하라
아이템 2: 공통 동작은 타입 시스템으로 표현하라
아이템 3: 명시적인 match 표현식보다 Option과 Result 변환을 사용하라
아이템 4: 가급적 관용적인 Error 타입을 사용하라
아이템 5: 타입 변환을 이해하라
아이템 6: 뉴타입 패턴을 적극 활용하라
아이템 7: 복잡한 타입에는 빌더를 적용하라
아이템 8: 레퍼런스와 포인터 타입에 익숙해져라
아이템 9: 명시적 루프보다 반복자 변환으로 표현하라
2장, "트레이트"
아이템 10: 표준 트레이트를 잘 익혀둬라
아이템 11: RAII 패턴에 대해 Drop 트레이트를 구현하라
아이템 12: 제네릭과 트레이트 객체 사이의 트레이드오프를 이해하라
아이템 13: 디폴트 구현을 사용해 필수 트레이트 메서드를 최호화하라
3장, "주요 개념"
아이템 14: 수명을 잘 파악하라
아이템 15: 대여 검사기를 잘 파악하라
아이템 16: unsafe 코드 작성을 자제하라
아이템 17: 공유 상태 병렬성에 주의하라
아이템 18: 패닉하지 마라
아이템 19: 리플렉션 사용을 자제하라
아이템 20: 과도한 최적화의 유혹에 저항하라
4장, "의존성"
아이템 21: 시맨틱 버저닝의 의미를 이해하라
아이템 22: 가시성을 최소화하라
아이템 23: 와일드카드 임포트를 쓰지 마라
아이템 24: API에 타입으로 나오는 의존성을 다시 익스포트하라
아이템 25: 의존성 그래프를 관리하라
아이템 26: 피처 팽창에 주의하라
5장, "도구 활용"
아이템 27: 공개 인터페이스는 문서화하라
아이템 28: 매크로를 신중하게 사용하라
아이템 29: 클리피가 하는 말에 귀 기울여라
아이템 30: 단위 테스트에만 머물지 마라
아이템 31: 도구 생태계를 최대한 활용하라
아이템 32: CI 시스템을 설정하라
6장, "표준 러스트를 넘어서"
아이템 33: no_std에 호환되는 라이브러리 코드를 고려하라
아이템 34: FFI 경계를 넘어서는 것을 제어하라
아이템 35: FFI 매핑을 직접 하기보다는 가급적 bindgen을 활용하라
예제 코드 : https://effective-rust.com/
책에서는 예제 코드라고 해서 링크를 소개하고 있으나, 책 내용 그대로 정리되어 있습니다.
각 아이템들을 학습할 때 서술적인 내용 보다는 각각에 대해 예제 코드 및 그림들을 적절하게 추가하여 좀 더 이해하기 쉽게 설명하려 노력하고 있습니다.
각 아이템들의 마지막에는 "기억할 사항" 블럭을 두어 해당 아이템에서 설명하고자한 내용에 대해 다시 한번 생각해 볼 수 있도록 구성하고 있습니다.
### 결론
이 책은 RUST 언어에 대한 문법 등을 학습하는 책이 아닙니다.
RUST의 기초는 이미 알고 있다는하에 RUST 언어를 최대한 잘 활용하여 프로그램을 개발 할 때 설계 및 코딩 실수를 줄이고
좀 더 짜임새 있고 좋은 코드를 작성할 수 있도록 한단계 레벨업 할 수 있도록 도와주는 책 입니다.
내용 자체는 RUST를 위한 내용이지만 일부 내용들은 C/C++ 언어를 이용한 코딩 시에도 한번 즈음 생각해봄직한 내용인것 같습니다.
https://www.hanbit.co.kr/store/books/look.php?p_code=B5579190058
"한빛미디어 <나는리뷰어다> 활동을 위해 책을 제공받아 작성된 서평입니다." |
'리뷰 > IT_책소개' 카테고리의 다른 글
대규모 머신러닝 시스템 디자인 패턴 : 한빛미디어 (0) | 2024.12.29 |
---|---|
O'REILLY 밑바닥부터 시작하는 딥러닝5 : 한빛미디어 (1) | 2024.11.26 |
O'REILLY AI를 위한 필수 수학 : 한빛미디어 (1) | 2024.09.29 |
네트워크 인프라 자동화 : 한빛미디어 (1) | 2024.08.26 |
보고혁명 : 한빛미디어 (1) | 2024.07.29 |
실전 레디스 : 한빛미디어 (0) | 2024.06.29 |
그림으로 배우는 스프링6 입문 : 한빛미디어 (0) | 2024.04.27 |
게임 AI를 위한 탐색 알고리즘 입문 : 한빛미디어 (0) | 2024.03.24 |
LARGE LANGUAGE MODELS : 한빛미디어 (0) | 2024.02.26 |
신비로운 전자부품 매크로 포토그래피 : 한빛미디 (1) | 2023.12.26 |