이전

리뷰 (11)

한줄평
평점 분포
  • 리뷰 총점10 91%
  • 리뷰 총점8 9%
  • 리뷰 총점6 0%
  • 리뷰 총점4 0%
  • 리뷰 총점2 0%
연령대별 평균 점수
  • 10대 0.0
  • 20대 10.0
  • 30대 10.0
  • 40대 9.0
  • 50대 10.0

포토/동영상 (4)

리뷰 총점 종이책
좋은 러스트 프로그래머가 되고자 한다면 읽지 않을 이유가 없는 책
"좋은 러스트 프로그래머가 되고자 한다면 읽지 않을 이유가 없는 책" 내용보기
이 책은 러스트 중급자에게 가장 적합한 책이다. 중급자라 함은, 기능을 구현할 때 어떻게 구현하는 것이 더 좋을지 고민하는 단계이다. 저자는 소개에서 경험과 사례를 기반으로, 왜 일반적으로 주어진 지침이 유용한지, 예외적인 상황에는 어떻게 대처하면 좋을지 자세히 설명한다. 이 모든 과정이 추상화된 프로그래밍의 영역이 아닌, 러스트의 원리를 기반으로 진행되기 때문에, 좀
"좋은 러스트 프로그래머가 되고자 한다면 읽지 않을 이유가 없는 책" 내용보기

이 책은 러스트 중급자에게 가장 적합한 책이다. 중급자라 함은, 기능을 구현할 때 어떻게 구현하는 것이 더 좋을지 고민하는 단계이다. 저자는 소개에서 경험과 사례를 기반으로, 왜 일반적으로 주어진 지침이 유용한지, 예외적인 상황에는 어떻게 대처하면 좋을지 자세히 설명한다. 이 모든 과정이 추상화된 프로그래밍의 영역이 아닌, 러스트의 원리를 기반으로 진행되기 때문에, 좀 더 Rust 답게 프로그래밍하고자 하는 이들에게 큰 도움을 줄 수 있을 것 같다.


하지만 나는 입문자들 또한 이 책을 구매하는 것을 추천하고 싶다. 모든 프로그래밍 언어가 그렇듯, 개발 경험이 쌓임에 따라 기능을 구현하는 것은 누구나 가능하지만, 좋은 코드를 작성하는 것은 그렇지 못하기 때문이다. 이 책에서는 초심자가 참고하기 좋은 지침을 잘 정리해두었기 때문에, 이러한 내용을 주기적으로 복습하는 것만으로 개발 능력을 빠르게 향상시킬 수 있을 것이다. 그러니 당장 읽지는 못하더라도, 두고두고 참고하기 좋은 책이라고 생각한다.


구성: 6개의 챕터, 그리고 35개의 아이템

각 챕터는 타입, 트레이트, 기타 주요 개념, 의존성, crates 툴, 러스트 심화를 주제로 나름 '기초'부터 심화까지 전 영역을 다루고 있다. 물론 러스트 프로그래머를 대상으로 작성된 책이라, 초심자가 바로 읽는 것은 확실히 부담으로 다가왔다. 적어도 Hello, World를 출력하는 코드를 작성하는 데 관여하는 배경 지식은 숙지해야 이 책을 읽을 수 있다.

++ 한글로 작성된 입문 가이드와 다양한 레퍼런스를 담아둔 링크를 공유한다.
부족한 부분이 있을 수는 있겠지만, 적어도 아무것도 모르던 내게는 큰 도움이 되었다...


다양한 아이템은 이 책이 왜 초심자에게도 유용한지 드러나는 대목이다. 각 아이템은 분명히 지킬 이유가 있는, 일련의 Best Practice를 제시한다. 이 가이드를 잘 숙지한다면 개발하는 중 이와 상충되는 상황을 마주했을 때, 저자가 이러한 규칙을 제시한 이유를 떠올려보고, 그 상황에서 최선의 선택을 행하면 된다. YAGNI (You ain't gonna need it)이나 KISS (Keep it short and simple) 원칙처럼 프로그래밍 전반에 적용되는 느낌은 아니지만, 적어도 Rust 프로그래밍을 진행하는 과정 중에는 특별한 상황이 아니라면 굳이 지키지 않을 이유가 없어보인다.


마치며...

러스트 사용 경험이 거의 전무한 상황이라 솔직히 책을 집어들었을 때, 어디부터 어떻게 읽어야 할 지 다소 막막했다. 펼치는 곳마다 이해하기 어려운 내용들이 펼쳐져 있었는데, C++의 확장판이라 생각하고, 그 차이점에 집중해서 기초를 공부한 이후에 읽으니 이전보다는 나았던 것 같다. 다른 개발자분들도 본 서적을 중급서라고 표현하시는 이유를 이해할 것 같다. 그렇다고 책의 가치 자체를 판단하지 못할 정도는 아니다. 이 책은 언제든 참조할 수 있도록 잘 정리된 아이템을 중심으로, 예제와 edge case를 담은 좋은 책이다. Rust를 배우고자 하시는 분들은 이 기회에 초보자에서 중급자로 한 단계 성장할 수 있을 것이라 생각한다.


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


YES마니아 : 로얄 0***y 2024.11.12. 신고 공감 0 댓글 0
리뷰 총점 종이책
중급에서 고급으로 올라서는 러스트 실무 가이드라인
"중급에서 고급으로 올라서는 러스트 실무 가이드라인" 내용보기
이펙티브 시리즈(C++)는 기본기를 갖춘 개발자가 "스콧 마이어스"라는 거인의 어깨에 올라서서 개발자가 사용하는 언어에 깊이를 더하고 개발 경험을 한 단계 끌어올릴 수 있도록 돕는 흥미진진한 책입니다. 에피션트, 빨간책 등과 견주어도 이펙티브 시리즈는 두 번 이상 곱씹게 되는 책으로 평가받아 왔습니다. 저자가 밝힌 대로, C++ 이펙티브 시리즈는 (러스트에 비해) 다루기 까다로
"중급에서 고급으로 올라서는 러스트 실무 가이드라인" 내용보기
이펙티브 시리즈(C++)는 기본기를 갖춘 개발자가 "스콧 마이어스"라는 거인의 어깨에 올라서서 개발자가 사용하는 언어에 깊이를 더하고 개발 경험을 한 단계 끌어올릴 수 있도록 돕는 흥미진진한 책입니다. 에피션트, 빨간책 등과 견주어도 이펙티브 시리즈는 두 번 이상 곱씹게 되는 책으로 평가받아 왔습니다. 저자가 밝힌 대로, C++ 이펙티브 시리즈는 (러스트에 비해) 다루기 까다로운 언어적 특성 때문에 중고급 독자를 위한 이디엄과 조언을 모은 책입니다. 반면, 이펙티브 러스트는 러스트 언어의 안정성 덕분에 이디엄보다 가이드라인에 더 중점을 둡니다. 이 가이드라인은 예외 상황과 그에 따른 근거를 제공해, 독자가 좋은 러스트 코드를 작성할 수 있는 실력을 키우도록 도와줍니다. 또한, C++ 개발 경험을 토대로 러스트의 고유 개념을 더 잘 이해할 수 있도록 안내하는 점도 인상적입니다.

이펙티브 러스트는 언어를 고급스럽게 사용하기 위한 방법을 체계적으로 정리해 놓았습니다. 다만, 내용을 깊이 이해하기 위해서는 기본적인 러스트 문법을 익힌, 초급단계를 벗어난 독자들에게 적합합니다. 다른 시스템 언어, 특히 C++ 언어에 경험이 있는 개발자라면 더욱 쉽고 재밌게 이해할 수 있습니다. 메모리 안정성, 타입 안정성, 스레드 안정성 등 러스트가 제공하는 고유한 기능들을 실무 코드에 적용할 때 "어떻게" 적용할 수 있는지에 대한 유용한 지침들을 제공하여, 결국 "유창한" 러스트 코드를 작성하는데 필요한 실질적인 조언과 예제를 알게 됩니다. 러스트를 깊이 탐구하고자 하는 개발자들에게 큰 도움이 될 것 입니다.

책은 6개의 장과 35가지 아이템으로 구성되어 있으며, 각 장은 러스트의 주요 개념과 패턴, 생태계 도구 활용법, 의존성 관리, 비표준 환경에서의 러스트 활용 방안 등을 다룹니다. 이를 통해 러스트의 장점인 메모리 안정성과 성능, 타입 안전성, 동시성 프로그래밍을 극대화할 수 있는 다양한 방법을 제시합니다. 저자는 러스트의 타입 시스템을 중점적으로 설명하며, 이를 통한 개발 의도 표현, 에러 처리 방식, 안전한 병렬 프로그래밍 등을 구체적인 코드와 함께 다룹니다.

1장 "타입"에서는 러스트의 엄격한 타입 시스템과 그 활용법을 소개합니다. 특히 데이터 구조와 에러 처리에 대한 러스트의 타입 모델을 통해 더 안전하고 효율적인 코드를 작성하는 방법을 다룹니다.

2장 "트레이트"에서는 러스트의 트레이트를 사용하여 코드의 재사용성을 극대화하는 방법을 설명합니다. 트레이트 객체와 제네릭 사용에 있어 성능을 최적화하는 법을 제시합니다.

3장 "주요 개념"에서는 러스트의 소유권 모델, 대여 검사(Borrow Check) 및 수명(Lifetime)을 설명하며, 안전한 멀티스레드 프로그래밍과 불필요한 패닉을 방지하는 방법을 다룹니다.

4장 "의존성 관리"에서는 러스트의 Cargo를 통해 의존성을 효과적으로 관리하는 방법을 설명하고, 라이브러리와 패키지 간 의존성 충돌을 해결하는 팁을 제공합니다.

5장 "도구 활용"에서는 Clippy와 같은 코드 검사 도구, CI 도구 활용 등, 러스트 생태계의 강력한 도구들을 활용해 코드 품질을 높이는 방법을 다룹니다.

6장 "표준 러스트를 넘어서"에서는 크로스 컴파일, 외부 함수 인터페이스(FFI) 등 비표준 환경에서 러스트를 활용하는 방법을 설명하며, 러스트의 다양한 환경 지원 가능성을 보여줍니다.

이펙티브 러스트는 입문서를 넘어 실전 활용으로 나아가고자 하는 개발자를 위한 책입니다. 기존 입문서들이 기본적인 문법에 집중한다면, "이펙티브 러스트"는 러스트 코드를 어떻게 쓰는것이 올바르고 효율적으로 작성할 수 있는지에 중점을 둡니다. Rust for Rustaceans(https://rust-for-rustaceans.com/) 같은 심화서와 견줄수 있을만큼 러스트의 고유 개념과 생태계 도구 활용법을 구체적으로 다루고 있으며 실무적인 코드 작성에 대한 구체적인 조언을 더 많이 제공합니다.

이펙티브 러스트의 단점을 궂이 꼽아보라고 하면, 기본 문법을 다루지 않기 때문에 러스트의 초심자에게는 난이도가 높다는 것과 이펙티브 스리즈 특성상 일요일 아침 서프라이즈처럼 옴니버스식 구성으로 개념 간 연결이 분명하지 않을 때도 있어 각 장의 내용을 충분히 이해하기 위해서는 기초적인 러스트 지식이 분명해야 한다는 정도입니다. 러스트의 고유한 타입 시스템, 트레이트, 대여 검사 등의 기능을 깊이 있게 다루며, 각 개념을 명확히 이해하고 실무에 적용할 수 있는 다양한 예제를 제공합니다. 도구 활용에 대한 설명도 충실하며, Rust로 CI/테스트 도구를 설정할 수 있는 유용한 팁을 제공해 실무에서 바로 활용할 수 있습니다.

러스트는 안전성과 효율성을 동시에 제공하는 모두가 주목하는 언어로, 특히 시스템 프로그래밍과 성능이 중요한 분야에서 빠르게 자리잡고 있습니다. 이 책은 이러한 러스트의 특성을 완전히 활용하여 코드 작성 실수를 줄이고 높은 안정성과 성능을 유지할 수 있는 방안을 제시합니다. 러스트를 깊이 이해하고자 하는 개발자라면, 단순 문법 습득을 넘어서는 이 책을 통해 러스트다운 코드를 작성하는 법을 익히고 실무 역량을 강화할 수 있습니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
d****s 2024.11.02. 신고 공감 0 댓글 0
리뷰 총점 종이책
이펙티브 러스트(Effective Rust) 후기
"이펙티브 러스트(Effective Rust) 후기" 내용보기
'이펙티브 러스트(Effective Rust)'는 러스트 언어를 어느 정도 익힌 개발자를 위한 실용적인 가이드로, 효과적인 프로그래밍을 위한 35가지 방법을 제시합니다. 이 책은 러스트의 타입 시스템, 트레이트, 주요 개념, 의존성 관리, 도구 활용, 그리고 표준 러스트를 넘어서는 기술들을 다루며, 각 아이템은 실전에서 직접 활용 가능한 팁들로 가득 차 있습니다.첫 번째 챕터에서는 타입
"이펙티브 러스트(Effective Rust) 후기" 내용보기


'이펙티브 러스트(Effective Rust)'는 러스트 언어를 어느 정도 익힌 개발자를 위한 실용적인 가이드로, 효과적인 프로그래밍을 위한 35가지 방법을 제시합니다. 이 책은 러스트의 타입 시스템, 트레이트, 주요 개념, 의존성 관리, 도구 활용, 그리고 표준 러스트를 넘어서는 기술들을 다루며, 각 아이템은 실전에서 직접 활용 가능한 팁들로 가득 차 있습니다.

첫 번째 챕터에서는 타입 시스템의 중요성을 강조하며, 데이터 구조와 공통 동작을 타입으로 표현하는 방법을 설명합니다. 특히 Option과 Result 타입을 활용해 오류 처리를 보다 안전하고 깔끔하게 할 수 있다는 점이 인상적입니다. 두 번째 챕터에서는 트레이트의 활용과 RAII 패턴을 통한 자원 관리의 중요성을 다루어, 러스트의 강력한 기능을 최대한 활용할 수 있도록 돕습니다.

세 번째 챕터에서는 수명과 대여 검사기의 개념을 명확히 하여 코드의 안정성을 높이는 방법을 제시합니다. 안전하지 않은 코드 작성을 자제하고, 공유 상태 병렬성에 주의해야 한다는 점은 멀티스레드 환경에서의 안정성을 확보하는 데 필수적입니다.

의존성 관리와 도구 활용에 관한 챕터는 시맨틱 버저닝, 가시성 관리, 문서화의 중요성을 강조하며, CI 시스템과 클리피를 통해 코드 품질을 높이는 방법을 제시합니다. 마지막으로 nostd 호환 라이브러리와 FFI에 대한 내용을 통해 특정 환경에서도 러스트를 효과적으로 활용할 수 있는 기술을 제공합니다.

이 책은 러스트를 배우고자 하는 개발자들에게 실질적인 도움이 될 뿐만 아니라, 코드의 가독성과 유지보수성을 높이는 데 기여합니다. 이펙티브 러스트는 러스트 언어의 깊이를 이해하고, 안전하고 효율적인 코드를 작성하는 데 필요한 귀중한 자료입니다.


d***4 2024.11.02. 신고 공감 0 댓글 0
리뷰 총점 종이책
Effective Rust 후기
"Effective Rust 후기" 내용보기
#필자의 Rust에 대한 TMI필자는 Rust를 2019년에 처음 접하게 되었다. 그때는 The Rust Programming Language라는 e-book을 통해 단순히 맛보기 수준으로 Rust를 알아갔고, 본격적으로 공부하진 않았다. 이후 Rust가 조금씩 유명세를 타던 2021년에 다시 관심을 가지게 되었고, The Rust Programming Language 2판 번역본에 오타를 수정하거나 제안을 넣는 등 여러 번 기여해본 경험이 있
"Effective Rust 후기" 내용보기
#필자의 Rust에 대한 TMI필자는 Rust를 2019년에 처음 접하게 되었다. 그때는 The Rust Programming Language라는 e-book을 통해 단순히 맛보기 수준으로 Rust를 알아갔고, 본격적으로 공부하진 않았다. 이후 Rust가 조금씩 유명세를 타던 2021년에 다시 관심을 가지게 되었고, The Rust Programming Language 2판 번역본에 오타를 수정하거나 제안을 넣는 등 여러 번 기여해본 경험이 있다. 사실 그 시기에는 이미 Python과 AI 분야로 관심이 기울어진 상황이라 Rust를 깊이 파고들 생각은 없었다.
 
C++와의 인연은 2013년으로 거슬러 올라가는데, 당시 Cocos2D-x를 활용해 게임을 만들어 보면서 C++을 익히기 시작했다. 그리고 Unreal Engine이 3에서 4로 넘어가며 무료화 이슈가 크게 떠올랐을 때, 자연스럽게 C++을 깊이 공부하게 되었다. 여기서 C++ 경험을 이야기하는 이유는 이 책이 C++과 Rust를 비교하며 설명하는 부분이 많고, 필자가 이 두 언어에 대한 어느 정도의 배경지식을 갖고 있다는 점을 미리 밝히기 위함이다.
 

Effective Rust 책에 대한 후기

이펙티브 러스트는 Rust 언어에 대한 실질적인 활용법을 알기 쉽게 풀어내고 있다. 이 책은 러스트의 독특한 개념들을 C++과 비교하면서 설명하기 때문에, C++을 주로 사용해온 개발자라면 더욱 빠르게 이해할 수 있게 구성되어 있다.
 
이 책에서 작성된 예제 및 에러 코드는 rustc 1.70 버전이며 필자가 책을 보면서 돌려본 환경은 rustc 1.71.1 (eb26296b5 2023-08-03)이다. 이 버전에서는 문제가 없는것을 확인하였다. 최신 릴리스 버전에서 안되는부분이 있다면 참고바란다.
 
Rust는 C++과는 다른 메모리 관리 방식을 채택하고 있는데, 이 책에서는 Rust가 메모리 안전성을 보장하는 구조를 중심으로 설명하고 있다. 특히 Rust의 ‘소유권’ 모델과 ‘borrow checker’라는 개념이 강조된다. C++에서는 주로 메모리 관리를 수동으로 하거나 스마트 포인터를 사용하는데, Rust의 소유권 모델은 이러한 수고를 덜어주면서도 메모리 누수를 방지할 수 있도록 돕는다.  이 책은 이 소유권 모델을 실제 코드 예제와 함께 설명하며, 안전한 메모리 관리의 중요성을 다시금 일깨워준다.
 
책에서 다루는 또 다른 중요한 내용은 ‘패턴 매칭’과 ‘Result 타입’을 활용한 에러 처리이다. C++에서는 예외를 사용하거나 에러 코드를 반환하는 방식으로 오류 처리를 하는 경우가 많다. 하지만 Rust에서는 Result와 Option 타입을 통해 에러를 명확하게 관리할 수 있다. 이러한 에러 처리 방식은 코드의 가독성을 높이고 유지보수하기 좋다는 장점이 있으며, 책에서도 예제를 통해 그 이점을 보여준다. 에러를 코드로 다루는 Rust의 철학은 오류를 쉽게 놓치지 않고 다룰 수 있게 해주며, 실무에서도 큰 도움이 되는 개념이다.
 
동시성 프로그래밍 부분도 인상 깊다. C++에서 동시성 프로그래밍은 잘못 구현하면 메모리 충돌이나 데드락 같은 문제가 발생하기 쉽다. 반면, Rust는 안전성을 확보하면서도 비동기 프로그래밍을 간결하게 다룰 수 있는 방법을 제공한다. 책에서는 async/await 문법을 사용한 비동기 프로그래밍을 실용적인 관점에서 설명하며, 예제 코드와 함께 러스트가 자원 경합 문제를 얼마나 철저히 방지하는지를 보여준다. 이는 고성능 프로그램을 작성하는 데 꼭 필요한 요소로, 동시성 관리에 강한 Rust의 장점을 잘 느낄 수 있게 한다.
 
Rust의 제네릭과 트레이트 시스템도 흥미로운 부분이다. Rust는 C++의 템플릿과 유사한 기능을 제공하지만, 더 많은 안전성을 보장한다. 책에서는 이러한 제네릭과 트레이트의 사용법을 친절하게 설명하며, 이를 통해 코드의 재사용성을 높이는 방법을 소개한다. 트레이트 시스템 덕분에 컴파일 타임에 오류를 미리 확인할 수 있어 프로그램 안정성도 향상된다. 이를 잘 활용하면 유지보수하기 쉬운 코드를 작성할 수 있게 된다.
 
결론적으로 이펙티브 러스트는 러스트를 실무에서 잘 활용할 수 있게 도와주는 책이다. C++ 개발자라면 처음 접할 때 다소 낯설 수 있는 Rust의 소유권 모델, 에러 처리 방식, 동시성 관리 등을 이 책을 통해 쉽게 이해할 수 있다. Rust가 어떻게 메모리 안전성과 성능을 균형 있게 제공하는지 알고 싶은 개발자라면, 이 책에서 많은 통찰을 얻을 수 있을 것이다.
 
이 서평은 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
YES마니아 : 골드 c*****n 2024.10.31. 신고 공감 0 댓글 0
리뷰 총점 종이책
효과적인 러스트 코드 활용을 위한 35가지 방법
"효과적인 러스트 코드 활용을 위한 35가지 방법" 내용보기
2024년 10월에 출간된 한빛미디어의 <이펙티브 러스트>에 대해 알아보겠습니다. 이 책의 부제는 효과적인 러스트 코드 활용을 위한 35가지 방법입니다. 이 책의 저자는 데이비드 드라이스데일(David Drysdale) 님이며, 구글에서 소프트웨어 엔지니어로 근무하고 있습니다. 이 책의 아마존 평가 점수는 놀랍게도 만점을 받고 있으며, 국내 서점에서 평가 점수는 교보문고, YES24 그리고
"효과적인 러스트 코드 활용을 위한 35가지 방법" 내용보기

2024년 10월에 출간된 한빛미디어의 <이펙티브 러스트>에 대해 알아보겠습니다. 이 책의 부제는 효과적인 러스트 코드 활용을 위한 35가지 방법입니다.

 

이 책의 저자는 데이비드 드라이스데일(David Drysdale) 님이며, 구글에서 소프트웨어 엔지니어로 근무하고 있습니다. 이 책의 아마존 평가 점수는 놀랍게도 만점을 받고 있으며, 국내 서점에서 평가 점수는 교보문고, YES24 그리고 한빛미디어에서 4점대 중후반(5점 만점 기준)으로 높은 점수를 받고 있습니다.


이 책의 역자는 남기혁 님으로 기존 리팩터링 2판 외 다양한 책을 번역한 경험이 있으며, 번역 품질은 책을 읽는 데 불편함을 느끼지 못했습니다. 


<이펙티브 러스트>는 약 340여 페이지로 구성되어 있으며, 휴대하면서 보기에 불편함을 느끼진 않을 것 같습니다. 전자책도 출간되어 있으므로 뷰어가 있으신 분은 전자책으로 보는 것도 좋을 것 같습니다. 



한빛미디어의 도서 지원을 받아 작성한 리뷰입니다. 

한빛미디어에서 제공해 준 책을 읽고 작성했음을 밝힙니다.




이 책의 매력 포인트


이 책은 저자의 홈페이지에 원서가 공개되어 있습니다. 하지만 이 책의 내용이 쉽지 않기 때문에 개인적으로는 번역되어 나온 이 책을 보는 것을 추천하고 싶습니다. 


제목에서 유추할 수 있듯이, 책의 구성이 <이펙티브 C++>와 닮아 있습니다. 이 책은 6개의 챕터 35개의 아이템으로 구성되어 있습니다. 챕터 1에서는 타입 시스템에 대해 다루고, 챕터 2는 트레이트에 대해 소개하고, 다른 언어와의 차이점 등을 제시합니다. 챕터 3은 러스트를 학습할 때 진입 장벽으로 느껴지는 대여 검사(Borrow Check)와 수명 검사(Lifetime check)에 대해 이야기하며, 멀티스레드, 리플렉션 등을 사용할 때 다른 언어와의 차이점 등을 소개합니다. 필자는 러스트 타입시스템과, 아이템 14, 15장의 내용이 좋았습니다.


챕터 4는 러스트 패키지 생태계에 대해 이야기하고 있으며, 챕터 5는 러스트 컴파일러를 비롯한 다양한 도구들에 대해 다룹니다. 마지막으로 챕터 6은 러스트 표준 환경이 아닌 곳에서의 활용 방안에 대해 이야기합니다. 예를 들어, 크로스 컴파일이라던가, 외부 함수 인터페이스를 활용하여 다른 언어로 컴파일된 코드와 연동 등이 있습니다. 


<이펙티브 러스트>는 우선 러스트 언어에 대한 경험이 있는 분들이 읽으면 많은 도움을 받을 수 있을 것으로 생각합니다. 이 책을 읽고 난 후, 러스트에 대한 이해도가 한층 더 높아질 것입니다. 러스트 경험이 없는 독자들은 기본서(러스트 프로그래밍 공식가이드)를 읽고 어느 정도 경험을 쌓은 후 이 책을 보는 것을 추천합니다.


러스트는 C++처럼 학습하기 쉬운 언어가 아닙니다. 하지만 매력적인 언어임에는 분명하며, 러스트 입문서를 읽고 러스트에 흥미가 생겼을 때 이 책을 읽는 것을 추천합니다.



마치면서


러스트는 모질라 재단에서 2010년 7월 처음 발표되었으며, 2021년 2월부터 러스트 재단으로 분리되어 관리되고 있습니다. 원래 그레이든 호어(Graydon Hoare)의 개인 프로젝트로 시작되어 현재는 많은 개발자에게 관심과 사랑을 받는 언어로 성장했습니다.


C++와 같이 러스트는 학습하기 쉬운 언어는 아닙니다. 하지만 매력적인 언어임에는 분명합니다. 아직 시장 점유율은 낮은 편이지만, 아마존, 마이크로소프트, 페이스 북 등 점점 사용하는 곳이 늘어나고 있어 앞으로 점유율이 올라갈 것으로 기대되고 있습니다. 국내 기업들의 관심도 높아지고 있으니 꾸준히 학습하는 것이 좋을 것 같습니다. 





h******g 2024.10.30. 신고 공감 0 댓글 0
리뷰 총점 종이책
다시 읽고 싶은 책
"다시 읽고 싶은 책" 내용보기
제가 처음 읽었던 "이펙티브" 책은 스콧 마이어의 <이펙티브 C++ 2판>이었습니다.  도서관 서가에서 우연히 발견 했는데요. 별다른 생각없이 빌려다 읽다가 깜짝 놀랐습니다. 책을 읽으면서 일종의 "감동"이 밀려옴을 느낄 수 있었기 때문이죠  단순히 C++이라는 언어 자체에 대한 이해가 부족해서 내가 잘못 쓰던 부분 뿐만 아니라, 나아가서 어떻게 쓰는게 더 좋은지를 알 수 있었고,
"다시 읽고 싶은 책" 내용보기

제가 처음 읽었던 "이펙티브" 책은 스콧 마이어의 <이펙티브 C++ 2판>이었습니다.  도서관 서가에서 우연히 발견 했는데요. 별다른 생각없이 빌려다 읽다가 깜짝 놀랐습니다. 책을 읽으면서 일종의 "감동"이 밀려옴을 느낄 수 있었기 때문이죠  단순히 C++이라는 언어 자체에 대한 이해가 부족해서 내가 잘못 쓰던 부분 뿐만 아니라, 나아가서 어떻게 쓰는게 더 좋은지를 알 수 있었고, C++이라는 언어를 넘어서 프로그래밍 언어를 사용할 때, 코딩을 할 때 지향해야 할 바를 깨닫게 해주었습니다. 

책을 다 읽고 도서관에 반납한 다음 시내 대형서점에가서 <이펙티브 C++>을 구입했습니다. 책을 다시 읽고 싶었기 때문입니다.  그 뒤 시간 차를 두고 2번을 더 읽었고요. 아직도 가지고 있습니다. 그 후 "이펙티브"라는 제목으로 출시되는 책들에서는 뭔가 스콧 마이어의 책에서 느꼈던 그런 감동을 느낄 수 있길 기대하게 되었던 것 같습니다. 


그래서, 리뷰를 위해 이 책을 받아들고는, <이펙티브 C++>을 읽을 때 느꼈던 감동에 대한 기대감이 슬쩍 고개를 들기 시작했습니다.  이 책을 쓴 저자도 <이펙티브 C++>을 읽었을 지도 모르는데, 이런 책 제목을 가져간다는 건, 그만큼 Rust에 대해 자신감이 있기 때문이 아닐까 싶었고요.  그러나 <이펙티브 C++>을 읽을 때와 같은 조건은 아니었습니다. 현재 저는 Rust라는 언어를 사용하고 있지 않기 때문이거든요.  "효과적으로" 프로그래밍 언어를 쓸수 있게하는 이런 류의 책은 그 프로그래밍 언어를 쓰면서 읽어야 더 감동을 느낄 수 있는데 말이죠. 


그럼에도 불구하고 이 책 역시 <이펙티브 C++>처럼 시간차를 두고 다시 읽으면 좋겠다고 생각했습니다.Rust를 단순하게 소개하는 정도를 넘어서 러스트가 가진 용어들이 다른 언어, 특히 C++에서 어떤 개념과 유사한지도 비교해서 설명하고, 러스트의 함수형 프로그래밍 언어적인 특성과 도구 적인 측면까지 다루고 있기 때문입니다.   책을 읽으면서 러스트 뿐 아니라 프로그래밍 자체에 대해서 다시한번 생각해 볼 수 있는 계기가 되었기 때문이죠. 


저는 꽤 오래 직장생활을 하고있습니다. (물론 저보다 훨씬 오래 하신분들도 많지만) 그래서 다양한 프로그래밍 언어를 접하고 사용해야 하는 경우를 거쳐 왔습니다. 그중 C와 C++, 자바스크립트, 타입스크립트는 꽤 오래 사용했습니다. 20년 넘게 이 일을 하다보니, 트랜드가 계속 변하고 심지어 주로 사용하는 프로그래밍 언어도 변하게 된다는 걸, 경험하고 있습니다.  

스티브 잡스가 아이폰을 내놓았을 때, 아이폰은 단순히 애플의 신제품 이상의 성격을 지녔었습니다. 아이폰은 안드로이드 플랫폼을 급부상하게 만들었고, 다양한 분야에서 안드로이드가 사용되게 만들었습니다. 그에 따라 새로운 프로그래밍 언어들도 나왔고요. 4,5년만에 전혀 새로운 시대가 열렸습니다.  

그러나, 아이폰이 어느날 갑자기 하늘에서 떨어진게 아닙니다. 아이폰 이전 피쳐폰들에도 인터넷 기능이 있었고, 미려하고 심플한 디자인도 있었습니다. 다만 스티브 잡스가 제대로 만들었을 뿐이죠.  

저는 요즘 비슷한 기시감을 느낍니다. 아이폰이 나오기 전보다 훨씬 새로운 기술들이 우리를 놀라게 하고 있습니다. AI의 발전은 말할 필요도 없고요. 메타와 애플은 확장현실 분야 기기를 내놓고 있지요. 사실 구글에서도 이미 시도하던 바이고요.  어느 순간 보편적이고 제대로 된 제품이 나온다면 아이폰 때 처럼 갑자기 세상이 변할 수도 있습니다. 

이런 상황에 개발자라면, 그런 변화를 대비하기 위해 어떤 프로그래밍 언어를 붙잡고 있어야 할까? 라는 생각을 하고 준비해야 하는데요.  저는 아마 Rust가 아닐까 싶습니다.  Rust 언어 자체가 이미 검증된 안정성과 탄탄함을 제공하기도 하지만, 무엇보다도 요즘 Rust 책이 엄청나게 나오고 있거든요. 그 말은 Rust를 이미 많이 사용하고 경험한 사람이 많고, 책을 써도 팔릴 만큼 커뮤니티가 성장하고 있다는 반증이기 때문입니다. 


아마 AI와 확장 현실을 접목한 무언가를 만든다면, 지금까지와는 다른 차원에 안정성이 보장되는 프로그래밍 언어가 필요할 것입니다. 문자기반 인터페이스 시대에서 그래픽 기반 인터페이스 시대로 넘어갈 때 각종 객체지향 언어가 필요했던 것처럼 말이죠. 그리고 이런 상황은 분야도 뛰어 넘을 것 같습니다.  데스크탑, 모바일 그리고 웹에 이르기 까지 말이죠.  그래서 저는 요즘 러스트에 대한 책은 러스트를 당장 쓰지 않고 있더라도 읽고, 또 읽고 또 읽는 중입니다.  30년이 지나도 개발할 수 있는 개발자로 살고 싶거든요. 


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

h*****0 2024.10.28. 신고 공감 0 댓글 0
리뷰 총점 종이책
좀 더 나은 러스트 언어의 사용을 위하여 ...
"좀 더 나은 러스트 언어의 사용을 위하여 ..." 내용보기
O'REILLY이펙티브 러스트 : 효과적인 러스트 코드 활용을 위한 35가지 방법  데이비드 드라이스데일 지음  남기혁 옮김최근 핫한 언어 중에 하나인 RUST 언어 관련한 책 입니다.사실상 RUST 언어 자체를 학습하기 위한 책이라기 보다 제대로 활용하기 위해 알면 좋은 부분들을 35가지로 정리한 책 입니다.RUST 는 최근에 C/C++을 대체할 수 있는 언어로 많이 거론되고 있지만 이 언어는
"좀 더 나은 러스트 언어의 사용을 위하여 ..." 내용보기




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


"한빛미디어 <나는리뷰어다> 활동을 위해 책을 제공받아 작성된 서평입니다."
s****7 2024.10.27. 신고 공감 0 댓글 0
리뷰 총점 종이책
[한빛미디어] 이펙티브 러스트
"[한빛미디어] 이펙티브 러스트 " 내용보기
'프로그래밍 언어는 각각이 고유의 성격과 특징을 가지고 있으며 그 목적에 맞게 진화해왔다.'이 책은 러스트를 사용할 때 알아두면 좋을 법한 심도 있는 내용들을 정리하고 있다. 무엇보다 러스트에 적용된 특별한 기능들의 탄생 배경과 이와 유사한 다른 언어들의 기능들까지 망라하여 정리하고 있기에 학습하는 사람들에게 러스트뿐만 아니라 주변 언어의 특징들까지 같이 학습할 수
"[한빛미디어] 이펙티브 러스트 " 내용보기
'프로그래밍 언어는 각각이 고유의 성격과 특징을 가지고 있으며 그 목적에 맞게 진화해왔다.'

이 책은 러스트를 사용할 때 알아두면 좋을 법한 심도 있는 내용들을 정리하고 있다. 무엇보다 러스트에 적용된 특별한 기능들의 탄생 배경과 이와 유사한 다른 언어들의 기능들까지 망라하여 정리하고 있기에 학습하는 사람들에게 러스트뿐만 아니라 주변 언어의 특징들까지 같이 학습할 수 있는 기회를 제공하고 있다.

대표적으로 타입, 의존성, 트레이트 등 러스트를 사용하다 보면 대면할 법한 기능들의 쉽게 간과할 수 있을 법한 기술적 난제들에 대해서 술 하였고 이와 관련된 문제들이 발생하는 이유와 이를 파해할 수 있는 방법에 대해서 술하고 있다.
따라서 러스트를 심도 있게 이해하고자 하는 개발자라면 이 책에 술해진 내용 하나하나를 곱씹으며 본인의 것으로 만들기 위해서 노력할 것을 추천한다. 만약 위 책의 내용에 있어 전문성을 갖춘다면 이는 필시 고급 개발자로 거듭나는 데에 한 발짝 내딛는 성과로 이어질 것이기 때문이다.

【 이펙티브 러스트를 읽고 나서 】


이펙티브 시리즈는 예나 지금이나 특정 타픽에 대해서 심도 있고 도전적인 주제들을 다루고 있다. 모든 학문의 시작은 처음에는 가볍게 그리고 그다음에는 점점 심도 있게를 지향하는 만큼. 본인이 어느 정도 특정 기술/기능에 대해서 이해도가 생겼다고 판단된다면 이펙티브 시리즈와 함께 본인의 기술적 근간을 고도화해보길 권장 드린다.

필자의 경우, 이텍티브 자바도 그렇고 이펙티브 C++도 그렇고 한참 프로그래머로써 역량을 개발할 당시 (물론 지금도 한참이지만..) 큰 도움을 받았던 책이었었다. 따라서 본인의 실력을 한층 도약하고자 하는 개발자라면 언젠가 꼭 이펙티브 시리즈를 읽어보도록 하자!


#본 도서는 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
0***m 2024.10.27. 신고 공감 0 댓글 0
리뷰 총점 eBook
러스트 핵심을 제대로 이해하고자 한다면?
"러스트 핵심을 제대로 이해하고자 한다면?" 내용보기
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." 오판이다. 20년 전까지는 C/C++ 개발일을 그래도 좀 했고, 러스트가 나온지는 좀 됐지만, 실무에서는 해본 적이 없고, 회사에서 이 기술을 이용해 서비스를 개발했다고 하길래 그 코드를 읽고 이해하기 위해 공부를 해야겠다 생각해서, 이 책이 최신 서적이다보니, 유용한 팁도 알 겸해서 골랐는데, 완전
"러스트 핵심을 제대로 이해하고자 한다면?" 내용보기
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 오판이다. 20년 전까지는 C/C++ 개발일을 그래도 좀 했고, 러스트가 나온지는 좀 됐지만, 실무에서는 해본 적이 없고, 회사에서 이 기술을 이용해 서비스를 개발했다고 하길래 그 코드를 읽고 이해하기 위해 공부를 해야겠다 생각해서, 이 책이 최신 서적이다보니, 유용한 팁도 알 겸해서 골랐는데, 완전이 오판했던 셈이다.

 일단 초반은 너무 어렵다. 여기서 사용하는 기술용어도 익숙하지 않은데, 설명하는 내용도 최소한 초심자는 벗어난 상태여야, 게다가 이 언어로 뭔가를 좀 만들어 봤어야, 심지어 고민도 꽤 해놨어야 이해가 될만한 내용들로 가득 차 있다.

 책 머리에 있는 베타리더들의 글을 먼저 읽어봤어야 했다. 정확히 이해하는 리더들의 조언을 새겨 들었어야 했다. 나같은 러스트 초심자(그래도 자바/스칼라 등을 20년 넘게 썼는데도)가 읽기에는 난이도가 높은 중급자용임을 미리 인지했어야 했다. 그만큼 시작은 어렵다.

 1장 타입과 2장 트레이트는 이 책의 근간이다. 물론 세간에 알려진 것과 같이 메모리 관리에 관한 부분이 뛰어나다는 점도 중요하지만, 읽자마자 가슴을 두근거리게 만든 표현이 있다.
 "'러스트는 어떻게 타입 시스템을 통해 프로그램 컨셉을 디자인하는가'를 보여주는 단적인 예"
다시 말해, 타입 시스템을 활용해 개발자의 의도를 손쉽게 표현할 수 있다는 점이고, 어느 정도 안정성을 보장도 해준다는 거다. 이거 무시 못할 특성이다. 자바 등으로 제아무리 잘 디자인해놔도 의도를 잘못 이해하고 사용하는데 정말 별의 별 경우를 다 방어하도록 작성하지 않는다면 잘못된 사용을 막을 방법은 사실상 없으니 말이다. 그런데 이게 가능하다? 놀라운 일일 수밖에 없다.

 그나마 잘 읽히는 편인 부분이 2장 트레이트였다. 이유는 최신 언어에서 차용해서 사용하는 메서드 방식들이 나오고 있어, 쉽게 이해되는 부분이었다.

 3장 주요 개념과 4장 의존성, 5장 도구 활용도 사실상 CS 이론과 그 응용에서 어떻게 러스트와 결합되어 처리되는지를 알려주는 셈이라 매우 중요하면서도 흥미로운 주제다. 하지만 러스트스러워야 한다는 점에서 이해하기 벅찬 부분도 분명히 있었다.

 만약 C/C++ 계열 언어에 친숙하고 최소한 최신 트렌드의 언어를 하나 이상 이해하고 있는 초심자(?)라면 이 책을 읽는데 나만큼 난해하지는 않았을 거라 생각한다. 이유는 다른 게 없다. 개인적으로 C/C++ 문법이 꽤 난해하다는 인상을 가진 내게 있어 코드 읽기가 쉽지 않았던 탓인데, 그런 표현이 익숙하다면 저자가 설명하는 내용을 코드와 매치시켜 이해하는 데 어려움이 덜할 거라고 생각하기 때문이다. 마치 스칼라를 처음 익혔을 때 느꼈던 막막함, 첫 컴파일 성공에 3일이 걸렸던 그 기억과 닮았다.

 1장을 읽으면서 바로 "러스트 프로그래밍 공식 가이드"나 "프로그래밍 러스트" 초급자용 도서를 동시에 공부해야 하나 고민이 되었다. 회사 일이 바쁘다보니 더 이상의 시간을 내는 게 어려워 병행하진 못했지만, 기초부터 습득해서 기술용어와 컨셉에 익숙해지면 다시 도전해서 이해해보려 한다. 베타리더 언급 중 "러스트 언어를 제대로 이해"하고자 하면 읽어보라고 권유하는 데에 100% 동의한다. 그만큼의 가치가 있다. 아마 설계를 하고 핵심 내용을 군더더기 없이 구현하려 했을 때 난감했던 지점들을 이 책이 명확하게 설명해주고 있기 때문이리라.

YES마니아 : 로얄 g******s 2024.10.27. 신고 공감 0 댓글 0
리뷰 총점 종이책
[나는 리뷰어다] 이펙티브 러스트(데이비드 드라이스데일, 2024)
"[나는 리뷰어다] 이펙티브 러스트(데이비드 드라이스데일, 2024)" 내용보기
이펙티브 러스트(데이비드 드라이스데일, 2024)책 소개저자 : 데이비드 드라이스데일( Drysdale, David )제목 : 이펙티브 러스트 - 효과적인 러스트 코드 활용을 위한 35가지 방법번역 : 남기혁출판사 : 한빛미디어출간 연도 : 2024. 10.원문 제목 : Effective Rust - 35 Specific Ways to Improve Your Rust Code(2024.07)페이지 : 344쪽러스트(Rust) 는 모질라 리서치에서 개발한 다중
"[나는 리뷰어다] 이펙티브 러스트(데이비드 드라이스데일, 2024)" 내용보기
이펙티브 러스트(데이비드 드라이스데일, 2024)



책 소개

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

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

번역 : 남기혁

출판사 : 한빛미디어

출간 연도 : 2024. 10.

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

페이지 : 344쪽







러스트(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가?지로 효과적인 러스트 프로그래밍을 안내하는 '이펙티브 러스트'의 일독을 추천한다.





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


#한빛미디어 #러스트 #rust #러스트중급도서 #이펙티브러스트



i*****s 2024.10.26. 신고 공감 0 댓글 0