tkxkd0***
2022-04-24

Rust 언어를 중심으로 어셈블리어, C 언어를 사용해 CPU 아토믹 처리, 소프트웨어 트랜잭셔널 메모리, async/await 등 동시성 프로그래밍과 관련된 이론적 배경부터 구현까지 설계자 입장에서 살펴본다.
학부 시절 운영체제 수업에서 세마포어나 뮤텍스에 대해 배우며 동기적으로 로직을 처리하는 것의 방법을 익히고 스레드/프로세스 컨텍스트 스위칭을 통해 프로그램이 비동기적으로 효율적으로 작동했던 것을 배웠던 기억이 있다. 현재 모두가 매우 일상적으로 사용하고 있는 노래를 들으면서 문서 작업을 한다거나 화면을 나눠 서로 다른 인터넷 창을 띄우고 하는 등과 같은 작업은 동시성 프로그래밍이 없다면 불가능한 것들이다. 현업에서는 저수준 언어를 사용할 일이 거의 없고 대부분 이미 검증이 끝난 동시성 관련 라이브러리를 활용해 비즈니스 로직 구현 자체에 집중하기 때문에 동시성 프로그래밍이 내부적으로 어떻게 구현될 지 깊게 생각해볼 기회가 거의 없다. 따라서 이번 서평 목록에서 해당 책의 제목을 보고 학부 이후로 내 기억 뒷편에 있던 동시성 관련 개념인 락, 비동기 처리, I/O 다중화 등을 이번 기회에 저레벨로 탐색하고 복기하고자 선정하게 되었다.
이 책이 가장 흥미로웠던 점은 비교적 최신의 저수준 언어인 Rust의 특유의 장점이나 특징 등을 설명해주고 이를 활용해 비동기 프로그래밍, 멀티태스크 등의 구현 예제를 구성헀던 것이다. 최근 Rust에 관심을 가지고 있던 중이라 매우 반가웠다.
7장까지의 내용들은 기존 OS 수업을 들었던 개발자라면 어렵지 않게 따라갈 수 있게 구성되었다. 대부분의 예제들이 Rust로 구현되어서 Rust 학습 겸 재미있게 동시성 관련 개념들을 복습했다. 8장의 동시 계산 모델의 경우 어디서 많이 들어보던 용어들이지만 개인적으로 생소한 개념들이 많아서 여러번 반복해서 읽었지만 내 지식의 깊이를 한층 더 확장시켜주었다.
단순 언어 사용이나 작은 서비스 만들어보기 같은 팔로우업 형식의 책들도 좋지만 개인적으로는 깊은 개발을 위해 스스로 생각해볼 수 있는 기반을 만들어주는 이런 유형의 책들도 자주 나오면 좋을 것 같다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."