동시성이라는 단어를 들으면 여러분은 어떤 것이 머리 속에서 떠오르시나요? 백엔드 분야를 공부한 지 2년이 넘어갔지만 아직까지도 동시성이라는 개념이 추상적이기만 합니다. 그로킹 동시성은 동시성이 무엇인지 그리고 이것이 어플리케이션 프로그래밍에서 왜 필요한지에 대해 글과 그림으로 명확하게 설명하고 있습니다.
길벗 IT 책은 복잡한 개념을 자세한 설명과 적절한 일러스트로 표현하는 것이 주요 특징이라고 할 수 있는데요. 이번 그로킹 동시성도 동시성을 설명하기 위한 재미있고 깔끔한 일러스트가 자주 등장합니다. 덕분에 동시성과 관련된 다양한 이론 및 문제들을 떠올릴 때, 어떠한 그림을 머리 속에 그려야 할 지 감을 잡을 수 있었습니다.
이 책에서 마음에 들었던 부분은 처음부터 동시성과 관련된 복잡한 내용을 설명하지 않고, 이를 이해하기 위해 필요한 컴퓨터 기초 지식을 서론에 나타내고 있다는 점이었습니다. 동시성이 왜 등장하게 되었으며, 이것이 컴퓨터 내부에서 어떻게 동작하는 지를 이해할 수 있는 내용들을 담고 있습니다. 개인적으로는 애플리케이션과 런타임 환경 그리고 하드웨어 사이에 이루어지는 통신 체계를 다이어그램으로 도식화하여 표현한 부분이 인상적이었습니다.
어플리케이션이라는 추상화 영역으로부터 가려진 커널과 하드웨어의 여러 컴포넌트가 어떻게 협력하며 시스템이 동작하는지를 직관적으로 잘 보여주는 부분이라고 생각합니다.
흔히 많이들 헷갈리는 동시성과 병렬성에 대한 차이점도 재미있는 그림과 함께 표현하고 있습니다.
이 책은 동시성/병렬성, 스레드/프로세스, 동시성 디자인 패턴, 비동기 통신, 논블로킹 기반 동시성과 이벤트 기반 동시성 등을 다루고 있습니다. 어려우면서도 방대한 개념을 다루고 있는만큼 이 책을 통해 모든 내용을 완벽하게 이해하는 것을 100% 보장하기엔 어려울 수 있습니다. 독자의 수준에 따라 천차만별이 될 수 있기 때문입니다.
필자의 경우, 해당 책을 다회독 하면서 기술 세미나, 블로그를 통해 동시성과 친해지는 연습을 할 계획입니다. 실제 프로그래밍에서의 동시성은 쉬운 설명과 일러스트 만으로는 이해하기 어려우니까요!
https://tech.kakaopay.com/post/coroutine_virtual_thread_wayne/
코루틴과 Virtual Thread 비교와 사용 | 카카오페이 기술 블로그
코루틴과 Virtual Thread를 비교해 보고 어떻게 사용하는지 예제를 통하여 알아봅시다.
tech.kakaopay.com
그로킹 동시성에서는 코루틴에 대한 개념도 설명하고 있는데요! 해당 내용을 책을 통해 컨셉을 먼저 잡고, 기술 블로그를 통해 실제 현업에서의 문제점과 연결시켜 개념의 깊이를 확장시키는 좋은 학습 전략을 가져갈 수 있을 것 같습니다.
https://github.com/gilbutITbook/080403
GitHub - gilbutITbook/080403: 그로킹 동시성
그로킹 동시성. Contribute to gilbutITbook/080403 development by creating an account on GitHub.
github.com
그로킹 동시성에서 사용하는 파이선 소스코드는 해당 깃허브에 공개되어 있습니다. 자바 백엔드 개발자를 공부하는 필자는 해당 코드를 자바로 컨버팅하는 연습으로도 실력을 키울 수 있을 것 같네요!
이처럼 책 한 권으로도 다양한 학습방식을 가져갈 수 있다는 점에서 그로킹 동시성은 매력적인 책이라고 느껴지는 부분입니다.
그로킹 동시성 | 키릴 보브로프 - 교보문고
그로킹 동시성 | grokking concurrency! 복잡한 수식과 전문 용어를 몰라도 괜찮다! 읽기만 해도 동시성을 이해할 수 있다!동시성은 프로그램을 독립적으로 실행하도록 분리해 동시에 처리하는 방식이
product.kyobobook.co.kr