IT

[북리뷰] 『러스트 동시성 프로그래밍: Atomic과 Lock으로 안전하고 효율적인 동시성 코드 작성하기』 (한빛미디어)

BoBooBoo 2024. 2. 25. 23:36
반응형

책 제목: 『러스트 동시성 프로그래밍: Atomic과 Lock으로 안전하고 효율적인 동시성 코드 작성하기』

Atomic과 Lock으로 안전하고 효율적인 동시성 코드 작성하기

내용: IT, 컴퓨터, 동시성, 프로그래밍, 러스트

출판사: 한빛미디어

저자: 마라 보스 저자(글) · 윤인도 번역

출간일 : 2024년 01월 29일

 

 

러스트 동시성 프로그래밍: Atomic과 Lock으로 안전하고 효율적인 동시성 코드 작성하기 | 마라 보

러스트 동시성 프로그래밍: Atomic과 Lock으로 안전하고 효율적인 동시성 코드 작성하기 | 최고의 성능, 최적의 안전성 러스트가 선도하는 동시성 프로그래밍의 미래러스트는 안전성, 우수한 성능,

product.kyobobook.co.kr

 

러스트 그리고 동시성 프로그래밍

작년이었던가... 동시성 프로그래밍 (Concurrent Programming) 이라는 책을 접하게 되었고 비슷한 시기 러스트의 기본을 조금 살펴보게 되면서 상당히 매력적인 언어라는 느낌을 많이 받았습니다. Java 나 Python 으로 개발을 해오다가 C, C++ 언어로 넘어온 것이 벌써 4~5년이 되었다보니 자연스럽게 더 저수준의 언어에 대해 호기심이 생기게 되었고 대안으로 러스트가 떠오르면서 조금 더 깊게 알고 싶다는 생각이 들게 되었어요.

 

 

동시성 프로그래밍

Rust 언어를 중심으로 어셈블리어, C 언어를 사용해 CPU 아토믹 처리, 소프트웨어 트랜잭셔널 메모리, async/await 등 동시성 프로그래밍과 관련된 이론적 배경부터 구현까지 설계자 입장에서 살펴본

m.hanbit.co.kr

 

이번에 리뷰해 볼 책은 『러스트 동시성 프로그래밍: Atomic과 Lock으로 안전하고 효율적인 동시성 코드 작성하기』 입니다. 직전에 봤던 동시성 프로그래밍 (Concurrent Programming)  와 달리 이 책은 러스트만으로 구성된 책입니다. 그래서 상대적으로 조금 더 얇고 깊은 내용을 담고 있습니다. 처음 동시성 프로그래밍을 공부하는 사람이거나 C언어만 알고 있는 사람이라면 동시성 프로그래밍 (Concurrent Programming)  를 먼저 보거나 함께 보는 것이 더 도움이 될 겁니다. 러스트 기본서와 함께 이 책으로 바로 시작해도 괜찮긴 합니다.

 

 

개념보다는 구현 위주

『러스트 동시성 프로그래밍』 은 부제 " Atomic과 Lock으로 안전하고 효율적인 동시성 코드 작성하기 " 에서도 알 수 있듯이 개념 설명의 비중은 많이 줄이고 구현에 초점을 맞춰서 코드를 많이 설명합니다. 개발자는 코드로 이야기하는 직업이니기도 하니 시작부터 코드를 사용하는 방식으로 배우는 것을 선호하는 사람들에게는 더 재미있을 수도 있겠습니다만 너무 개념을 모르는 채로 시작하면 조금 어려울 수도 있을 것 같긴 합니다. 

 

 

러스트 언어에 대한 설명은 거의 없습니다

이 책은 기본서가 아닙니다. 따라서 러스트라는 언어에 대한 설명과 운영체제 등 컴퓨터에 대한 기본 전공 지식들은 대부분 알고 있다는 것을 가정하고 설명합니다. 따라서 이 기술이 궁금한 사람들에게는 더할나위없이 좋은 책일 수 있습니다만 이제 막 코딩을 배우는 사람들의 입장에서는 상당히 어려운 책일 수 있습니다.

 

 

C와 C++을 알고 있다면?!

이 책의 필수 기본 지식은 운영체제와 러스트 정도지만 다른 언어, 특히 C언어나 C++을 알고 있다면 더 많은 내용을 쉽게 이해할 수 있습니다. 아무래도 러스트는 C언어의 대안 중 하나로 떠오르는 언어기도 하니 아마 이 책에 관심을 가진 독자라면 이미 이정도는 예상하고 있을 것이라 생각합니다.

 

 

구현에 집중!

CHAPTER 4 스핀 락 구현해보기

CHAPTER 5 채널 구현해보기

CHAPTER 6 Arc 구현해보기

CHAPTER 9 잠금 구현해보기

 

챕터 제목에서도 알 수 있듯이 동시성 프로그래밍에 필요한 다양한 기술들을 직접 구현하는데 집중하는 방식으로 목차가 구성되어 있습니다. 코드가 많다보니 직접 구현하면서 따라해도 좋지만 이런 류의 책은 손코딩으로 넘겨가면서 봐도 재밌게 읽을 수 있습니다. 그러기 위해선 당연히 언어에 익숙해야겠지만요.

 

 

하드웨어와 가까운 언어 "러스트"

고수준의 언어들 Java, C# 등도 운영체제에 대한 지식을 당연히 알아야하긴 하지만 아무래도 저수준의 언어인 러스트나 C언어들보다는 상대적으로 덜 한 부분이 분명히 있습니다. 운영체제의 종류나 환경에도 크게 영향을 받고 직접적으로 시스템콜 등을 통해 접근할 수도 있기 때문입니다. 이 책에서도 대부분은 동시성 관련 기술의 구현 위주의 설명을 하지만 커널 관점에서 구현을 위해 운영체제 지식이나 프로세서에 대한 이야기도 하고 있습니다. 

 

 

러스트라는 언어... 보면 볼수록 매력있는 언어인 것 같습니다.

남들 다 하는 파이썬이나 자바보다 다른 언어에 관심을 가지는 것이 좋은 것인지 (그래도 나름 러스트도 꽤 인기있는 것 같긴 합니다..)는 모르겠습니다만 새로운 것을 배우는 것은 항상 즐겁네요. 

 

 

끝.

 

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

 

 

 

반응형