본문 바로가기

도서

[나는 리뷰어다] 동시성 프로그래밍

 

오늘 리뷰할 책은 "동시성 프로그래밍" 책이다.

오레일리(OREILLY) 책은 전문성이 높아 좋아하는 분야 중 하나라서 왠만하면 책을 사서 보는 편이다.

 

우리가 아는 동시성 이라고 하면 java 기준으로는 Thread  javascript로는 ajax 나 async/await를 생각을 많이 할 것이다.

Spring5에서는 webflux라는 기능이 추가되며 성능이 최적화가 필요한 지금 개발환경에서는 굉장히 중요한 기술이다.

 

동기를 어려워 하는 이유중 하나가 락처리나 멀티태스킹, 예외 처리를 관리하기 힘들기 떄문에 집입 장벽이 높으면 편이며, 엄청난 데이터를 한번에 처리하는 곳이 아니면 잘 사용하지 않아 노하우가 쌓이기 어려운 것이다.

 

 

 

이 책은 그러한 개발자들을 위해 동시성의 개념들과 사용법을 해소하는과 한편 프로젝트 도입 전에 읽는 입문서 같은 느낌의 책이다.

하지만 이 책의 아쉬운 점은 C언어나 Rust 같은 비주류의 언어를 사용하는 예제로 되어 있어 다른 언어를 불편함을 느끼면 거부감이 들 수 도 있다.

하지만, Rust 언어 자체가 현대적으로 만들어진 언어라 어셈블리어 같은 언어보다는 더 쉽게 느껴질 수 도 있는 매력적인 언어를 배울 기회라고 생각이다.

또한, Rust 언어를 중심으로 선택한 이유는 Rust가 동시성 프로그래밍에서 안정성을 제공하고, 메모리를 고려해 코드를 작성할 수 있으며 async/await 등의 고급 개념을 적용하고 있기 때문입니다. 

 

 

 

 

구성

Chapter 1: 동시성과 병렬성

Chapter 2: 프로그래밍 기본

Chapter 3: 동기 처리1

Chapter 4: 동시성 프로그래밍 특유의 버그와 문제점

Chapter 5: 비동기 프로그래밍

Chapter 6: 멀티태스크

Chapter 7: 동기 처리2

Chapter 8: 동시 계산 모델

APPENDIX A: AArch64 아키텍쳐

APPENDIX B: x86-64 아키텍쳐

 

파트별로 봐도 처음에는 동기식을 한 번 보고, 비동기를 진행하는 만큼 그렇게 어려운 내용은 다루기 않는다는걸 알 수 있다.

비동기에 관련하여 관심있는 분들은 한번 보는 것이 좋을 것같다.

 

 

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