jearyon***
2022-09-29

Rust 언어를 중심으로 어셈블리어, C 언어를 사용해 CPU 아토믹 처리, 소프트웨어 트랜잭셔널 메모리, async/await 등 동시성 프로그래밍과 관련된 이론적 배경부터 구현까지 설계자 입장에서 살펴본다.
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.
안녕하세요~~!! #플랫폼디자이너 IT를 소개하는 #승호아빠 입니다.
어느덧 2022년의 후반부로 접어들고 있습니다.
9월 리뷰를 진행하도록 하겠습니다.
이번 리뷰를 진행할 책은 <Concurrent Programming, 동시성 프로그래밍> 입니다.
책에 있는 영어만 붙여봤을뿐인데... 왠지 모르게 거부감이 느껴지네요!!
물론 책의 내용도 아주 이해하기 어렵습니다. 저의 이웃님들이 접근하기에는 다소 무리가 있을거 같습니다. 하지만!! 한빛미디어에서 제가 원하는 책만 보내주는것은 아니기에 다소 어려운 책이지만 서평을 진행해보겠습니다.
단어가 주는 뜻만 봐도 동시에 진행되는 프로그래밍이라는 의미인것은 알겠습니다.
그런데!! 왜 동시에 진행되는 프로그래밍이 중요할까요??
동시성 프로그래밍은 우리 삶과 매우 밀접한 다양한 곳에서 이용되고 있습니다. 쉽게 말하면 네트워크로 연결된 모든 시스템에 동시성 프로그램밍이 적용되어 있다고 해도 과언이 아닐 것입니다. 스마트폰으로 스트리밍 음원(혹은 장치에 저장된 음원)을 들으면서 모바일 브라우저를 열어 웹 브라우징을 하고, 화면을 분할해 한쪽에 메모를 하거나 메신저 애플리케이션으로 메시지를 보내는 것 모두가 동시성 프로그래밍의 혜택으로 가능한 것들입니다.
번역자인 김모세님의 말씀
흠... 혹시 이해가 되실까요? ㅋㅋㅋ
김모세님이 아주 좋은 사례를 들어 이해하기 쉽게 해주신것 같습니다. 이정도는 모두가 이해가 되셨을거라 생각합니다.
우리가 생각하는 컴퓨터는 생각보다 멍청합니다. 왜냐하면...!! 가르쳐주는 것만 실행하거든요!! 우리들 인간처럼 가르쳐주지 않아도 스스로 알아서 하지 않습니다.
최근에는 인간의 뇌가 연산하는 형태를 모방하여 컴퓨터가 알아서하는 인공지능 분야가 빠르게 발전하고 있지만!! 인간과 같이 스스로 알아서 하는 인공지능이 탄생하는 것은 매우 먼 미래에 가능할 것으로 생각이 됩니다. 아니!! 인간과 같이 생각하는 것은 어쩌면 어려울 수 있습니다.
다시 본론으로 돌아오면... 이렇게 컴퓨터에 기능을 부여하기 위해 프로그래밍을 할때에 한가지 일만 처리하면 너무나 좋겠지만!! 우리가 원하는 일들은 동시에 그리고 다양한 일들을 처리하기 희망합니다. 그래서 동시성 프로그래밍이 중요합니다.
컴퓨터에게 동시에 일을 시키기 위해서는 어떠한 방법과 절차, 저장장치를 활용하는지, 우선순위는 무엇인지 등등 하나하나 알려주어야 동시에 주어지는 일들을 처리할 수 있습니다.
이 책에서는 그러한 동시성 프로그래밍에 대한 실제 구현사례를 들어 상세히 설명해주고 있습니다. 정말 처음부터 마지막까지 알아야할 모든부분에 대해서 짚어주고 있어 프로그래밍을 정말 체계적으로 익히고 배우고 싶다는 분들에게는 좋을 책이라 추천드리고 싶습니다.
저도 최근에 대학원에서 공부하면서 기본과 이론에 대해서 중요성을 느끼고 있습니다. 프로그래밍을 하고는 있지만!! 기본지식과 이론이 부족하기 때문에 이해할 수 없는 부분이 많이 있더라구요!! 특히, 저처럼 필드에서 필요한 코딩만 배우신분들이 많이 계실텐데요!! 컴퓨터 구조와 이해, 알고리즘, 플래닝 등등 배워야할 것들이 어마어마합니다. 반드시 시간이 나실때에 부족한 부분을 이런 책을 통해 채우시기를 추천드립니다.
코딩을 배우는 초급 개발자일때는 전혀 관심을 가지지 않을 책이지만!! 어느정도 수준의 개발자에게는 너무나 소중한 책입니다. 내가 개발을 제대로 하고 있는지 궁금하신 분들은 읽어도 좋을거 같습니다.
아직도 저는 개발자가 되지 못한거 같네요!! 가야할 길이 너무나 멀게 느껴집니다.
승호아빠가 이 책을 읽고 느낀 솔직한 후기