리뷰/IT_책소개 / / 2024. 10. 27. 22:06

O'REILLY 이펙티브 러스트 : 한빛미디어

반응형

 

 

 

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

 

러스트 설치 - The Rust Programming Language

우선 러스트를 설치해야겠죠. 설치는 rustup이라는 러스트 버전 및 러스트 관련 도구를 관리하는 커맨드 라인 도구를 이용할 겁니다. 인터넷이 연결되어 있어야 하니 미리 인터넷 연결을 확인해

doc.rust-kr.org

 

 

### 대상 독자

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/

 

Effective Rust - Effective Rust

 

effective-rust.com

책에서는 예제 코드라고 해서 링크를 소개하고 있으나, 책 내용 그대로 정리되어 있습니다.

 

 

각 아이템들을 학습할 때 서술적인 내용 보다는 각각에 대해 예제 코드 및 그림들을 적절하게 추가하여 좀 더 이해하기 쉽게 설명하려 노력하고 있습니다.

 

각 아이템들의 마지막에는 "기억할 사항" 블럭을 두어 해당 아이템에서 설명하고자한 내용에 대해 다시 한번 생각해 볼 수 있도록 구성하고 있습니다.

 

 

 

### 결론

이 책은 RUST 언어에 대한 문법 등을 학습하는 책이 아닙니다.

RUST의 기초는 이미 알고 있다는하에 RUST 언어를 최대한 잘 활용하여 프로그램을 개발 할 때 설계 및 코딩 실수를 줄이고

좀 더 짜임새 있고 좋은 코드를 작성할 수 있도록 한단계 레벨업 할 수 있도록 도와주는 책 입니다.

내용 자체는 RUST를 위한 내용이지만 일부 내용들은 C/C++ 언어를 이용한 코딩 시에도 한번 즈음 생각해봄직한 내용인것 같습니다.

 

https://www.hanbit.co.kr/store/books/look.php?p_code=B5579190058

 

이펙티브 러스트

가장 안전하고 효율적인 프로그래밍 언어 러스트의 비밀을 파헤치다

www.hanbit.co.kr

 

"한빛미디어 <나는리뷰어다> 활동을 위해 책을 제공받아 작성된 서평입니다."
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유