본문 바로가기
Books/나는 리뷰어다 2024(한빛미디어)

[나는 리뷰어다] 이펙티브 러스트(데이비드 드라이스데일, 2024)

by #FF0000 2024. 10. 27.
이펙티브 러스트(데이비드 드라이스데일, 2024)

 

 

책 소개

저자 : 데이비드 드라이스데일( Drysdale, David )

제목 : 이펙티브 러스트 - 효과적인 러스트 코드 활용을 위한 35가지 방법

번역 : 남기혁

출판사 : 한빛미디어

출간 연도 : 2024. 10.

원문 제목 : Effective Rust - 35 Specific Ways to Improve Your Rust Code(2024.07)

페이지 : 344쪽

 

 

 

이펙티브 러스트 - 예스24

가장 안전하고 효율적인 프로그래밍 언어러스트의 비밀을 파헤치다러스트는 강력한 메모리 안정성, 타입 안정성 그리고 뛰어난 성능 덕분에 개발자들 사이에서 인기 있는 언어로 자리 잡았다.

www.yes24.com

https://www.yes24.com/Product/Goods/134244847


러스트(Rust) 

모질라 리서치에서 개발한 다중 패러다임범용 프로그래밍 언어이다.

"안전하고, 병렬적이며, 실용적인" 언어로 디자인되었으며,

순수 함수형 프로그래밍,

액터 기반 병렬 프로그래밍, 

명령형 프로그래밍

객체 지향 프로그래밍 스타일을 지원한다. (오픈 소스로 개발)


책은 6장으로 구성되어 있다.

 

1장에서는 러스트의 '타입'시스템을 사용하는 방법에 대해 설명하고, 데이터 구조를 만드는 방법을 설명한다. 

"러스트의 타입 시스템은 엄격하기 때문에 항상 대상을 명확히 표현해야 한다"

 

표준 도구(러스트 표준 라이브러리에서 제공하는 데이터 구조, Option / Result / Error /Iterator 등)를 통해 코드를 간결하고 효율적이며 러스트답게 관용적으로(idiomatic Rust) 작성하고, 타입 안전성을 해치지 않는 방법을 설명한다. (러스터의 'enum' 타입과 'error' 타입, 반복자 변환을 중심으로 러스트의 타입 시스템 사용법을 안내한다.)

 

 

2장에서는 러스트의 표준 '트레이트'를 통해 타입 시스템의 핵심 동작을 인코딩 하는 방법을 설명한다.

트레이트(trait)를 이용해 서로 다은 타입 사이의 공통 동작을 인코딩 하는 방식은 제네릭(generic)과 연계되어 런타임 오버헤드 없이 재사용 가능하다.

 

자주 사용하는 표준 트레이트 10개(Clone, Copy...등)의 설명을 시작으로 트레이트 객체의 사용법을 통해 트레이트 메서드를 보다 직관적으로 이해 할 수 있도록 안내한다.

 

 

3장은 러스트의 주요 개념을 설명하는데, '대여검사'와 '수명검사' 를 시작으로 unsafe 코드, 리플렉션 사용 금지 등을 알려준다.

러스트는 '겁 없는 동시성 프로그래밍을 제공한다"

 

특히 아이템 17, 러스트에서 멀티스레드 코드 작성시 좋은점&나쁜점을 설명하는 파트(공유 상태 병렬성)는 교착 상태에 빠질 가능성을 줄이는 방법으로 이어져서 멀티 스레드 코드 작성의 시점을 환기 할 수 있다.

 

4장은 러스트의 '의존성'을 주제로 기존 코드를 재 사용하는 것의 위험과 함정을 설명한다. 러스트의 cargo 도구를 활용하는 방법(시맨틱 버저닝, semantic versioning 등)으로 의존성 결정 프로세스를 알려준다.

 

5장에서는 러스트의 도구 생태계와 활용 방법을(문서화와 매크로, 테스트 그리고 CI)

 

마지막 6장에서는 비표준 러스트 환경에서의 작업에 필요한 기본 사항을 설명한다.

(러스트 툴체인은 다양한 환경을 지원

→ 임베디드 시스템 개발이 쉽고, 다른 언어로 컴파일된 코드와 연동 가능하다. )

 


 

 러스트 프로그래밍을 배우며 들은 첫 마디는 '컴파일된 러스트 프로그램은 안전하게 작동한다.'이다. 성능과 안정성을 고려해야하는 코드 구현에 있어 '러스트'는 최적의 프로그래밍 언어이다.

(다만 러스트는 '모든 걸 제대로 알고서 시작해야 하는 언어'이다. 러스트의 컴파일은...)

 

 책을 읽으며 좋았던 점은, 러스트 기초 문법에 있어 이해 하지 못한 부분에 대한 코드 구현과 안전한 러스트 코드 작성에 필요한 다양한 개념과 규칙, 원칙을 설명하는 부분이다. 높은 진입 장벽과 러닝 커브가 높은 부분이 러스트 입문자에게는 허들로 다가오지만, 저자의 '가이드라인'을 통해 기본 입문서 이후의 러스트 코딩을 단단하게 할 수 있다는 점이 책의 강점이다. 

 

 C/C++의 '대체제'로 부상하고 있는 러스트, 러스트 코드의 심화과정과 고급 러스트를 사용하고 싶은 러스트 프로그래머들에게 러스트 코드 활용&사용방법 35가지로 효과적인 러스트 프로그래밍안내하는 '이펙티브 러스트'의

일독을 추천한다.

 

 

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."