이 책의 원제는 並行プログラミング入門이고 영문판은 없는 듯 하다.
내가 못 찾은 걸 수도 있음
이 책은 꽤 좋은 책이고, 아마존 평점도 높은 편이다.
근데 오탈자가 많다
한빛 홈페이지 가면 오탈자가 몇 개 등록 안돼있는데
읽다가 좀 이상한 게 몇 군데 있어서 좀 찾아보니까
저자가 만든 깃허브 리포 들어가니까 존나 많더라
읽게 된다면 참고하셈
https://github.com/oreilly-japan/conc_ytakano/blob/main/errata.md
『並行プログラミング入門』(O'Reilly Japan, 2021). Contribute to oreilly-japan/conc_ytakano development by creating an account on GitHub.
github.com
몇개 대조해 봤는데 한국어판에도 오탈자 그대로 번역돼있음
전부 그런지는 모르겠는데 여튼 저 리포지토리 참고해서 오탈자 고쳐 읽으면 됨
그리고 아마존 리뷰를 보면 읽기 녹록한 책은 또 아닌듯
이것도 고려해야됨
원제는 입문이라 써있는데 입문용이 아님 ㅋㅋ
아래는 아마존 리뷰 보이는 것 중에 가장 지적 많이하는 두 개 긁어온거임
물론 좋은 말 하는 리뷰가 더 많음
- 요페
Rust와 병렬 프로그래밍의 핵심을 잘 짚어주는 좋은 책
Rust에서 병렬, 병렬, 비동기 프로그래밍의 원리, 원칙, 구현을 배울 수 있는 귀중한 책입니다.
앞으로 시스템 프로그래밍의 표준이 될(되었으면 하는) Rust에서 이루어지고 있는 점이 훌륭합니다.
또한 Rust의 비동기 라이브러리인 tokio의 사용법에 관한 가장 충실한 일본어 책이기도 합니다.
이 책의 Rust에 대한 설명은 매우 간결합니다.
병렬, 비동기 프로그래밍을 하려면 구현 언어를 어느 정도 이해하고 있어야 하므로 Rust에 익숙하지 않다면 이 책을 먼저 읽어보는 것을 추천합니다.
매크로나 unsafe, Arc, Rwlock 등 입문 수준에서는 쉽게 접할 수 없는 기능을 사용하기 때문에 이 정도 수준까지는 알아두면 좋을 것 같습니다.
기본적으로 병렬 프로그래밍을 이해한다는 것은 CPU, 메모리 구조와 어셈블러에 대해서도 이해하고 있다는 것을 의미합니다.
부록에서 보충하고 있지만, 원자 명령어나 메모리 장벽 등 병렬 프로그래밍에서 필수적인 지식은
별도의 책으로 보충하는 것이 좋다고 생각합니다.
이것들만 잘 숙지하고 있으면 이 책의 내용은 매우 쉽게 이해할 수 있을 것입니다.
마지막으로 한 가지
다음에는 좀 더 부드러운 문체로 작성되었으면 좋겠습니다.
열심히 설명은 하고 있지만, 너무 딱딱한 문장이라 논문을 읽는 것 같은 느낌이 듭니다.
- ABCCBAA
아래 내용은 초판에 대한 리뷰입니다. 2판 이후 버전에서는 수정되었을 수도 있습니다.
C언어 코드가 부적절합니다.
원자적 연산을 수행해야 할 곳에서 수행하지 않거나, 메모리 연산 순서가 정해지지 않은 코드 예제가 산재해 있습니다. 또한, 코드 예시 중 volatile 수식어의 사용도 상당히 의심스럽습니다.
아마도 저자가 소프트웨어 메모리 모델(프로그래밍 언어 사양이 규정하는 메모리 모델)과 하드웨어 메모리 모델(CPU 명령어 세트가 규정하는 메모리 모델)의 차이를 정확히 인지하지 못하고 있는 것 같습니다.
이 책은 C11 이후 언어 사양에서 정의된 메모리 모델에 비추어 볼 때 정의되지 않은 동작을 하는 예제가 다수 포함되어 있기 때문에 (적어도 초판 시점에서는) 코드를 참고할 수 없습니다. 이 책에 소개된 코드의 기능은 다른 책이나 OSS의 구현을 보면서 확인하면서 구현하는 것이 좋다고 생각합니다.
코드 예제를 그대로 따라하면 문제가 될 수 있기 때문에 초보자에게는 별로 추천하고 싶지 않습니다.
또한, 병렬 계산 모델 장에서는 채택하고 있는 문법이 일반적인 문법과 다릅니다.
이미 대학 등에서 람다 계산을 배운 적이 있는 사람은 상당히 위화감을 느낄 수 있을 것 같습니다.
반면 이 책이 다루는 주제의 폭과 새로움에 대해서는 높이 평가할 수 있을 것 같습니다.
예를 들어, 스마트폰용 프로세서에서 널리 사용되는 aarch64 명령어 세트에 대한 설명이 주축을 이루고 있는 점, 소프트웨어 트랜잭션 메모리나 그린 스레드 등 병렬/병렬 프로그램을 작성할 때 유용한 기능의 주제를 한 권의 책에서 다룰 수 있다는 점은 좋은 점입니다. 부분이라고 생각합니다.
치명적으로 나쁜 책이라고 생각하지는 않지만, 개인적으로 추천할 만한 책이라고 생각하지는 않습니다.
좋은 책임 람다는 잘 몰라서 그 이전까지는 이해할수 있는데 아주 괜찮음 그린스레드를 더 로우레벨에서 실질적으로 구현하는 예제있음.
좋은책이란 평가는 많음 ㅋㅋ 근데 책 볼륨에 비해 내용이 꽉꽉 압축된 느낌? 읽으면서 확실히 쉬운책은 아니라고 여러번 생각함
이거 조만간 읽을 예정인데 ㄱㅅ
작년에 번역판을 구입해서 읽어봤는데 오타가 엄청나게 많음 코로나 시절에 나온 책들이 좀 그렇긴 하지만 정오표를 보니까 그래도 일부는 고치긴 한 것이었네..