본문 바로가기

프로그래밍(TA, AA)/JVM 언어

[자바] 자바 병렬 프로그래밍

멀티 코어를 100% 활용하는 자바 병렬 프로그래밍

발 행 : 2008년 7월 30일
지은이 : 브라이언 게츠, 더그 리 외
옮긴이 : 강철구

책에서 다루는 내용:
- 병렬 처리와 스레드 안전성에 대한 기초
- 스레드 안전한 클래스를 작성하는 기법
- java.util.concurrent 패키지에 들어있는 라이브러리 클래스 활용법
- 성능 최적화를 위해 취해야 할 방법
- 병렬 처리 프로그램 테스트 방법
- 단일 연산 변수, 넌블로킹 알고리즘, 자바 메모리 모델과 같은 고급 주제

책 소개 일부 발췌: 
2000년 초반까지 컴퓨터 프로그램의 성능은 무어의 법칙에 따라 성장해왔습니다. 하지만 이제부터는 암달의 법칙에 의해 발전하게 될 것입니다. 여러 개의 프로세서를 효율적으로 활용하는 프로그램을 작성한다는건 굉장히 어려운 일입니다. [자바 병렬 프로그래밍]은 최신 하드웨어 또는 앞으로 사용하게 될 미래의 시스템에서 안전하면서 확장성 높게 동작할 수 있는 자바 프로그램을 작성하는 데 꼭 필요한 개념과 기법을 소개합니다.
스레드는 자바 플랫폼에서 가장 기본적으로 제공되는 기능 중 하나다. 멀티코어 프로세서가 대중화되면서 고성능 애플리케이션을 작성할 때 병렬 처리 능력을 효과적으로 활용하는 일의 중요성이 점차 부각되고 있다. 자바 SE 5와 6은 JVM 수준에서 뛰어난 성능과 높은 확장성을 함께 확보할 수 있도록 지원하고 다양한 종류의 라이브러리를 제공하고 있어 병렬 프로그램을 작성하고자 할때 큰 짐을 덜어준다. 이같은 기능을 자바에 추가한 핵심 인력이 직접 집필한 이책에서는, 병렬 처리 관련 기능에 어떤 것이 있고 어떻게 사용하는지에 대한 방법뿐 아니라, 그 내부에 숨어 있는 디자인 패턴과 그 패턴을 사용한 원론적인 이유도 함께 소개한다.
멀티스레드 프로그램을 작성하고 테스트하고 디버깅하는 일은 여전히 굉장히 어려운 작업이다. 병렬 처리 프로그램이 올바르게 동작하는 것처럼 보일 정도로 만들기는 쉽지만, 실서버에 적용하고 부하가 걸리는 시점이 되면 어김없이 오류가 발생한다. 이 책을 읽은 독자는 이론적인 기반과 함께 안정적이고 확장성 높고 유지보수가 간편한 병렬 처리 프로그램을 작성하는 방법을 배울 수 있다. 이 책에서 병렬 처리 API와 그 구조에 어떤 것이 있는지 뿐만 아니라 설계상의 규칙, 디자인 패턴, 그리고 병렬 처리 프로그램을 작성하는 개발자가 갖춰야 할 자세까지 익힘으로써, 올바르게 동작하면서 동시에 훌륭한 성능을 지닌 병렬 처리 프로그램을 작성할 수 있다.