이 책은 현대 컴퓨팅 환경에서 다중 CPU 코어의 활용을 위해 동시성 메커니즘이 필수적임을 강조하며, 단순한 코어 증설만으로는 성능 향상을 기대하기 어렵다고 지적합니다. 수십 년간 Ruby 커뮤니티의 주요 동시성 메커니즘이었던 프로세스 기반 솔루션과 비교하여 스레드의 장점을 설명합니다.
멀티스레딩의 장점
-
비용 효율적인 동시성: 스레드 생성은 프로세스 생성보다 훨씬 적은 오버헤드를 발생시킵니다.
-
메모리 공유: 프로세스는 메모리를 복사하지만, 스레드는 메모리를 공유하므로 자원 소모가 적고, 실행 속도가 빠릅니다.
-
높은 처리량: 적은 오버헤드를 통해 가용 자원으로 더 많은 동시성 단위를 제공하여 애플리케이션의 처리량을 높일 수 있습니다.
Ruby 커뮤니티의 변화
오랫동안 MRI의 스레딩 구현이 병렬 실행을 제한하여 커뮤니티의 지원이 미미했지만, 점차 많은 개발자들이 멀티스레딩의 잠재력에 주목하며 자원 효율적인 고성능 애플리케이션 개발 기회가 확대되고 있습니다.
책의 구성
-
1부: 일반적인 동시성 관련 기본 개념을 다루어 다른 언어에도 적용 가능한 지식을 제공합니다.
-
2부: Ruby 언어가 멀티스레드 프로그래밍을 지원하는 방식에 대해 심층적으로 탐구합니다.
-
3부: 여러 접근 방식을 사용하여 동시성 프로그램을 구현하는 실습 튜토리얼을 제공합니다.
이 책은 MRI 2.0.0, JRuby 1.7.4, Rubinius 2.0.0-rc1 등 세 가지 Ruby 구현체를 사용하여 멀티스레딩 동작의 차이를 보여주며, 독자들이 애플리케이션의 동시성 설계에 대한 현명한 결정을 내릴 수 있도록 돕습니다.