메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

[BOOK] 동시성 프로그래밍

u***

|

2022-04-24

동시성 프로그래밍

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

  • 저자 : 다카노 유키
  • 번역 : 김모세
  • 출간 : 2022-04-05
[BOOK] 동시성 프로그래밍 - 다카노 유키 지음 / 김모세 옮김
 
부제: "Rust, C, 어셈블리어로 구현하며 배우는 동시성 프로그래밍 A to Z"
 
 
요즘 개발자 채용 인터뷰에서 지원분야와 상관없이 꼭 물어보는 질문이 있다.
"동기/비동기 처리에 대한 경험이 있는가?", "동기/비동기 처리 중에 겪은 어려움은 없었는가?"
질문에 대한 답변에는 deadlock, race condition, mutex, semaphore, event, callback, coroutine, async/await, Future, Promise 등의 키워드들이 포함된다.
이 책, '동시성 프로그래밍'을 통해 이런 키워드들이 무엇인지 배울 수 있다.
 
 

동시성 프로그래밍이 갖는 독특한 특징 (동기 처리, 레이스 컨디션, 락, 비동기 처리, IO 다중화, 멀티태스킹 등), 어셈블리 언어와 알고리즘, 계산 모델에 이르는 광범위한 주제를 담고 있으므로 오랫동안 옆에 두고 동시성 프로그래밍에 도전해볼 수 있을 것입니다. (p. 6) - 옮긴이의 말

 
 
역자의 이야기 처럼 이 책에서 다루는 내용은 상당히 광범위하고, 컴퓨터 사이언스(CS, Computer Science)에 대한 다소 깊은 지식을 다루고 있다.
가벼운(?) 마음으로 책을 펼치면 혼란스러운(?) 상태로 책을 덮을 수 있으니 약간의 각오(?)가 필요하다.
 
 
책을 읽기전에 아래 내용들을 얼마나 이해하고 있는지 체크해 보면 좋을 것 같다.
  • 컴퓨터 아키텍처 : 특히 프로세스, 스레드, 메모리에 대한 이해
  • 어셈블리, C, Rust 언어에 대한 기초적인 이해 : 코드 보고 대충 이런 뜻이겠구나 유추할 수 있는 정도
  • C 언어의 포인터, Rust의 소유권 이해 : C와 Rust를 포기하는 이유라고 하던데...
  • 자료구조 : 큐(queue), 스택(stack), 리스트(list), HashMap 등의 기초 개념
 
위 개념을 모른다고 책을 포기할 필요는 없다. 필요한 부분은 찾아가면서 읽으면 된다.
책을 통해 다시한번 기본적인 것들을 체크해보고, 좀 더 깊이있는 지식을 얻어가면 된다.
(저도 공부한지 너무 오래되어 가물가물한 것들이 많아 한 번 읽는 것도 오래 걸렸습니다.)
 
 
동시성 프로그래밍에 대한 예는 어셈블리, C, Rust 등의 저수준 언어를 통해 설명하고 있지만 설명하는 개념은 고수준 언어에서도 활용되고 있는 부분이다.
고수준 언어에서 잘 추상회되어 상대적으로 쉽게(?) 사용할 수 있지만 그 밑바닥에서 벌어지는 복잡하고 어려운 과정이 많은지 알 수 있다.
동시성 프로그래밍 키워드들의 의미, 동시성 프로그래밍의 문제점이나 어려움이 잘 설명되어 있어 동기/비동기 개발을 깊이있게 공부하고 싶은 개발자들은 공부해 볼 만하다.
 
 
중요한 내용들에 대한 정의를 잘 보이게 표시해두고, 코드에 대한 설명과 원리 등을 설명하고, 참고 문헌 정리도 잘 되어 있다.
단지, 책을 이해하기 위해 기본으로 알아야 하는 지식의 허들이 살짝(?) 높을 뿐이다. (세번은 더 읽어봐야 할 것 같다.)
백엔드, 프론트엔드, 어플리케이션, 데이터 등 대부분의 개발 분야에서 동시성에 대한 이해는 필수이다.
다소 어려운 이 책을 통해 실무에서 사용하는 동기/비동기 개발을 상대적으로 쉽게 이해할 수 있지 않을까 생각한다.
 
 
"한빛미디어 [나는 리뷰어다] 활동을 위해서 책을 제공받아 작성된 서평입니다."
닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?