|
[BOOK] 러스트 동시성 프로그래밍 - 마라 보스 지음 / 윤인도 옮김
부제: "Atomic과 Lock으로 안전하고 효율적인 동시성 코드 작성하기"
러스트 스터디를 시작하던 작년(2023년) 하반기만 하더라도 러스트에 대한 책은 문법을 중심으로 다루는 기본서가 대부분이었습니다. 러스트에 대해 깊이있는 내용을 다루는 책이 거의 없었던 것 같습니다. 지금은 러스트로 백엔드를 다루는 책도 있고, 동시성 프로그래밍에 대한 책도 출판된 것을 보니 러스트를 사용하는 개발자들이 더 늘어난 것 같아 기쁘기도 합니다. 러스트 언어를 기반으로 다양한 응용 분야를 다루는 책들이 쏟아져 나오면 좋겠네요.
책 표지에 'Atomic과 Lock으로 안전하고 효율적인 동시성 코드 작성하기'라고 씌여있는데 '안전하고 효율적으로 동시성 프로그래밍을 다루는 것'은 러스트의 주요 목표중 하나입니다. 러스트에서는 '겁 없는 동시성(fearless concurrency)'이라고 표현합니다. 러스트 특유의 소유권과 타입 시스템을 활용해서 메모리의 안전성과 동시성 문제를 관리할 수 있는 도구들을 제공하고 있습니다.
"러스트 동시성 프로그래밍"은 '겁 없는 동시성'을 위한 러스트의 여러 방법들을 상세히 설명하고 있습니다. "The Rust Programming Language"의 16장에서 다루는 내용들을 책 한 권에 걸쳐서 설명하고 있습니다. (다른 '장'에 있는 내용들도 있지만요.) 기본 문법서에서 다루는 내용들을 조금 더 파고 들어가 어떻게 동작하는지 체계적으로 설명합니다. 또한 내부 동작 원리를 설명하기 위해 프로세서와 운영체제에 대한 설명도 빠뜨리지 않았습니다. "동시성 프로그래밍" 책에서는 Rust, C, 어셈블리어로 설명을 하는데 이 책은 러스트와 어셈블리어로 설명하는데 러스트의 비중이 더 많습니다.
이 책에서 주로 다루는 시스템 프로그래밍은 쉽지 않은 분야입니다. 러스트가 러닝 커브는 있으나 시스템 프로그래밍의 진입장벽을 낮추는 역할을 하고 있는 것은 사실입니다. 고수준 언어의 편리한 문법을 활용할 수 있고, 강력한 컴파일러의 힘으로 저수준 언어의 성능을 보여주면서도 안전합니다. 러스트의 기본 문법을 배운 후에 "동시성 프로그래밍", "러스트 동시성 프로그래밍"으로 확장하며 러스트를 더 깊게 공부하고 싶은 분들에게 권하고 싶은 책입니다. (쉬운 책은 아닙니다. ??)
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다." |
0. 들어가기에 앞서한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
1. 이 책을 선택한 이유요즘 프론트엔드 개발 도구들이 rust로 다시 쓰여지고 있습니다. Web Assembly 뿐만 아니라 프론트엔드 도구도 rust를 사용하고 있기에 이참에 러스트를 배워보자! 라는 마음으로 올 해 러스트를 공부하고 있고, 추가적인 공부를 위해 이 책을 선택하게 되었습니다. 2. 예상 독자개발을 갓 입문하신 분들, 러스트 입문자에게는 비추천 합니다. 러스트의 기본 문법을 알려주는 책이 아니기 때문에 어느 정도 러스트 코드를 읽고, 소유권 등에 대한 개념이 있으시면 읽기에 수월할 것이라 생각합니다. 3. 목차
4. 리뷰한빛미디어 홈페이지에서 이 책을 검색하게 되면 해설 영상과 함께 학습하는 영상이 있습니다. AI 인가? 싶었는데 한국어를 너무 잘하시는 외국인 분이 만드신 강의었습니다. 외국인이 한국어로 리딩해주는 독특한 경험이 있으니 책과 함께 같이 학습 하시면 좋을 것 같습니다. 저수준 동시성에 대한 깊은 이해를 바라시는 분들이 읽기에 좋은 책입니다. 러스트의 저수준 동시성에 대한 기본 개념부터 체계적으로 작성되어 있습니다. 예를 들어, 쓰레드 부터 시작해서 RC(Reference Counter), Arc 순으로 학습을 하게 되며 그안에서의 장단점을 학습할 수 있게 됩니다. 예제를 통해 학습할 수 있는 구조가 좋았습니다. 특히 메모리와 운영체제에 대한 코드들을 학습해 보고, Rust standard library등을 직접 구현하는 경험을 통해 TODO 수준이 아닌 그 이상의 경험을 해 볼 수 있는 책이었습니다. 아직 러스트에 대한 조예가 깊지 않아, 그리고 OS와 컴퓨터 구조에 대한 지식이 짧아 모든 것들을 다 흡수하지는 못했지만, 꼭꼭 씹어가며 이해할 수 있는 내용이 많아 좋았습니다. |