메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

7가지 동시성 모델

프로그래머라면 알아야 할 미래를 품은 7가지 동시성 모델

한빛미디어

번역서

판매중

  • 저자 : 폴 부처
  • 번역 : 임백준
  • 출간 : 2016-07-15
  • 페이지 : 364 쪽
  • ISBN : 9788968482984
  • 물류코드 :2298
  • 초급 초중급 중급 중고급 고급
4.3점 (4명)
좋아요 : 57

일주일에 한 개씩, 단 7주 만에 7가지 동시성 모델 완전 학습! 

멀티코어, 빅데이터, 분산 컴퓨팅을 다루는 데는 동시성과 병렬성이 핵심이다. 이 책은 동시성 프로그래밍의 핵심 내용을 다루며, 액터나 함수형 프로그래밍 같은 기술이 전통적인 스레드와 잠금장치 문제를 어떻게 풀 수 있는지 알려준다. GPGPU, 맵리듀스, 스트림 처리 등을 활용하여 코드의 성능, 확장성, 회복력을 향상해보자.

 

 

detail.jpg

 

폴 부처 저자

폴 부처

베테랑 개발자. 비트 슬라이스 프로세서용 마이크로코드를 짜는 일부터 고수준 선언형 프로그래밍까지 다양한 추상 계층의 개발 업무를 담당한 바 있다. 스타트업에서의 근무 경험을 통해 최신 기술로 무장한 여러 팀과 협업 하기도 했다. 국내 번역된 저서로는 『Debug It! 실용주의 디버깅』(에이콘, 2010)이 있다.

임백준 역자

임백준

삼성전자 산하 삼성리서치의 AI센터에서 4년 동안 데이터 조직을 이끌었다. 이후 런던에서 삼성리서치 영국연구소 소장으로 근무했고 2024년 초에 한국으로 돌아와 한빛앤이라는 디지털 콘텐츠 플랫폼을 창업하여 CEO 역할을 맡고 있다.
2017년 한국에 들어오기 전까지 미국에서 살았고, 20년 동안 뉴욕 월스트리트의 다양한 회사와 스타트업에 다니며 소프트웨어 개발 업무를 수행했다. 뉴욕에서 일하던 시기에는 한국에 있는 개발자들을 대상으로 『행복한 프로그래밍』, 『누워서 읽는 알고리즘』, 『뉴욕의 프로그래머』 등 10여 권의 도서를 집필하였다. 그 이외에 기고, 강연, 팟캐스트 방송 등을 통해 활발한 활동을 벌였다.

 

CHAPTER 1 서문

__1.1 동시성 혹은 병렬성? 

__1.2 병렬 아키텍처 

__1.3 동시성: 멀티코어를 넘어서 

__1.4 일곱 가지 모델 

 

CHAPTER 2 스레드와 잠금장치

__2.1 동작이 가능한 가장 단순한 코드 

__2.2 1일 차: 상호배제와 메모리 모델 

__2.3 2일 차: 내재된 잠금장치를 넘어서 

__2.4 3일 차: 거인의 어깨 위에서 

__2.5 마치며 

 

CHAPTER 3 함수형 프로그래밍

__3.1 문제가 있으면 멈추는 것이 상책이다 

__3.2 1일 차: 가변 상태 없이 프로그래밍하기 

__3.3 2일 차: 함수 병렬화 

__3.4 3일 차: 함수 동시성 

__3.5 마치며 

 

CHAPTER 4 클로저 방식 - 아이덴티티를 상태로부터 분리하기

__4.1 두 세계의 장점 

__4.2 1일 차: 원자와 지속 자료구조 

__4.3 2일 차: 에이전트와 소프트웨어 트랜잭션 메모리 

__4.4 3일 차: 자세히 

__4.5 마치며 

 

CHAPTER 5 액터

__5.1 객체보다 더욱 객체지향적인 

__5.2 1일 차: 메시지와 메일박스 

__5.3 2일 차: 에러 처리와 유연성

__5.4 3일 차: 분산 

__5.5 마치며 

 

CHAPTER 6 순차 프로세스 통신

__6.1 의사소통이 모든 것이다 

__6.2 1일 차: 채널과 고 블록 

__6.3 2일 차: 여러 개의 채널과 IO 

__6.4 3일 차: 클라이언트 측면의 CSP 

__6.5 마치며 

 

CHAPTER 7 데이터 병렬성

__7.1 노트북 속에 감춰진 슈퍼컴퓨터 

__7.2 1일 차: GPGPU 프로그래밍 

__7.3 2일 차: 다차원과 작업그룹

__7.4 3일 차: OpenCL과 OpenGL 데이터를 GPU에 놓기 

__7.5 마치며 

 

CHAPTER 8 람다 아키텍처

__8.1 병렬성이 빅데이터를 가능하게 만든다 

__8.2 1일 차: 맵리듀스 

__8.3 2일 차: 배치 계층

__8.4 3일 차: 속도 계층

__8.5 마치며 

 

CHAPTER 9 마치며

__9.1 어디로 나아가는가? 

__9.2 포함하지 않은 것들 

__9.3 여러분 차례다 

 

동시성 프로그래밍을 이처럼 완벽하게 다룬 책은 없었다. 

동시성과 분산 컴퓨팅 개념을 제대로 이해하고 싶다면 이 책을 보라! 

기존의 스레드와 잠금장치부터 함수형 프로그래밍, 클로저, 액터, 순차 프로세스 통신, 데이터 병렬성, 람다 아키텍처 등 다양한 동시성 모델을 살펴보며 동시성 프로그래밍의 핵심 내용을 배운다. 개발자가 특정한 동시성 문제를 해결하는 데 어떤 동시성 도구를 사용해야 할지 판단할 수 있도록 도와준다.

 

"7주에 7개" 금/토/일 3일 투자로 동시성을 완벽 학습하자.

이 책은 동시성에 대한 폭넓은 시야를 제공하기 위해서 ‘일주일에 1개씩 총 7개’라는 학습 방식을 채택하였다. 각 장은 하루에 읽을 수 있는 내용을 3개 포함하고 있어 ‘금, 토, 일’을 이용해 읽을 수 있도록 만들었다. 매일 읽은 내용은 그날 배운 내용을 복습할 수 있는 연습문제와 함께 끝난다. 각 장 끝에는 본문에서 다룬 접근 방식이 담고 있는 장점과 약점을 정리하였다.

 

주요 학습 내용

1주 차 : 스레드와 잠금장치

2주 차 : 함수형 프로그래밍

3주 차 : 클로저 방식

4주 차 : 액터

5주 차 : 순차 프로세스 통신

6주 차 : 데이터 병렬성

7주 차 : 람다 아키텍처

<7가지 동시성 모델(한빛미디어)>은 소프트웨어의 속도와 안전성을 향상시키기 위한 7가지 방법을 소개합니다.

 

FullSizeRender-6.jpg

 

1. 왜 읽어야 하나요?

 

과거에는 단순히 더 성능이 좋은 하드웨어를 구매함으로써 소프트웨어의 성능을 개선할 수 있었습니다. 하지만 현대 기술로는 CPU 속도 자체를 빠르게 하는 것에 한계에 봉착하여 속도를 올리는 대신 CPU를 2개, 4개 혹은 8개 이상을 넣어 동시에 처리할 수 있는 연산의 양을 늘리는 방향으로 나아가고 있습니다. 다시 말해서, 앞으로는 동시성과 병렬성을 활용해야 고품질의 소프트웨어 개발이 가능합니다. 높은 성능의 확장성 있는 서비스를 제공하고 싶나요? 당신은 이 책에서 소개하는 동시성과 병렬성을 위한 새로운 개념을 반드시 익혀야 합니다.

 

2. 이 책의 장단점은 무엇인가요?

 

이 책의 가장 큰 장점은 전통적인 스레드와 잠금장치부터 본격적으로 실무에서 사용하고 있는 함수형 프로그래밍부터 클로저, 액터 모델, 순차 프로세스 통신, 데이터 병렬성, 람다 아키텍처를 한 권으로 빠르게 훑을 수 있다는 것입니다. 

 

그렇다면 단점은 무엇일까요? 다양한 내용을 빠르게 훑기 때문에 하나의 주제에 심도있게 들어가지 않습니다. 게다가 책에서 나오는 각종 예제를 실행할 수 있는 환경은 독자가 알아서 구축해야 합니다. 국내에서는 아직 많이 사용하고 있지 않은 클로저(Clojure) 라는 언어로 대부분의 예제를 설명한다는 것 또한 장벽일 수 있습니다.

 

그러나 책을 차근차근 읽다보니 새로운 언어에 조금씩 익숙해질 수 있었습니다. 비록 책에 나온 예제를 완벽히 이해할 수는 없었지만 적어도 각 장에서 소개하는 패러다임에 대해서는 충분한 파악이 가능했습니다. 

 

3. 총평 


저에게는 쉽지 않은 책이었습니다. 하지만, 100% 이해하겠다는 마음이 아닌 새로운 개념을 받아들인다는 자세로 책을 읽었더니 조금이나마 저의 지식을 넓힐 수 있었습니다. 앞으로 클로저나 엘릭서 혹은 고(Go) 등의 함수형 언어가 추구하는 철학을 배워서 어떤 문제를 바라볼 때 더 다양한 관점에서 해결책을 강구할 수 있도록 제 자신을 더 단련하고 싶습니다. 저자의 한 마디로 리뷰를 마치겠습니다.

 

"내가 확신을 가지고 말할 수 있는 것은 앞으로 병렬성동시성이 점점 더 많이 중요해질 것이라는 점이다."

 

FullSizeRender-1.jpg

 

FullSizeRender-2.jpg

 

FullSizeRender-3.jpg

 

FullSizeRender-4.jpg

 

FullSizeRender-5.jpg

 

7가지 동시성 모델은 "일주일에 한 개씩, 단 7 만에 7가지 동시성 모델 완전 학습!"이라는 문장으로 요약할 수 있는 책입니다.


1주 차: 스레드와 잠금장치

2주 차: 함수형 프로그래밍

3주 차: 클로저 방식

4주 차: 액터

5주 차: 순차 프로세스 통신

6주 차: 데이터 병렬성

7주 차: 람다 아키텍처


위와 같은 커리큘럼을 가진 책으로, 총 363페이지의 IT 전문서로써는 조금 얇은 편의 책입니다. 


전체적인 학습 커리큘럼이 매우 잘 구성되어 있다는 인사을 주었습니다. 하루의 학습을 마감하는 장에, 마무리 단계가 있습니다. 배운 내용을 정리해주고, 자율학습(찾아라, 수행하라) 가이드라인을 제시합니다. 더불어 그 장의 장·단점을 정리해주는 구성은 독자로써 무척이나 만족스러웠습니다. 그리고 새로운 개념을 소개할 때, 단순히 정의의 나열이 아닌 단계별 문제와 해법을 통하여 개념을 제시하고 있습니다. 이는 새로운 개념을 마주할 때, 큰 도움이 되었습니다.


다만 함수형 프로그래밍에 대한 전체적 맥락을 보는 정도의 내용이지, "완전 학습"이라 하기엔 어렵습니다함수형 프로그래밍에 대한 기본 개념을 어느정도 갖춘 분이 아니라면, 상당한 난항이 있을 책입니다. 어렵습니다.


'임백준'이라는 이름과 '동시성 모델'이라는 신뢰성과 호기심으로 이 책을 택하였습니다. 웹 프로그래머로써는 상당히 낯선 개념인 함수형 프로그래밍에 대하여 전체적인 맥락을 짚어볼 수 있는 좋은 기회였습니다.

다만 누군가에게 이 책을 권하게 된다면, 먼저 함수형 프로그래밍에 대한 기본 개념이 담긴 책을 권하고 싶습니다.

 

이 책의 원서는 작년에 처음 접했는데 바쁘다는 핑계로 보지 않고 있다가 한빛리더스 도서리스트에 마침 번역서가 떴길래 신청했다.

빅데이터 관련 업무를 오랬동안 해왔기 때문에 병렬처리는 어느정도 알고 있다고 생각했는데 이 책을 보면서 의외로 놓친 부분을 파악할 수 있었고 어렴풋하던 부분을 명확히 해주었다.

빅데이터가 이슈가 되면서 하둡, 스파크, 스칼라 관련 서적들이 굉장히 많이 쏟아져 나왔지만 중급 이상 개발자가 되기 위해서는 그 근간에 있는 멀티코어, 멀티쓰레딩, 동시성, 병렬성 등의 이해가 필요하다. 또한 시스템이 점점 복잡해지고 있기 때문에 빅데이터가 아니더라도 마이크로 아키텍쳐, 액터 모델, 어싱크 등의 용어가 종종 언급되는 업무를 하고 있다면 한 번쯤 읽어두면 좋다.

사실 이 내용만으로도 두꺼운 전공 서적을 만들 수 있을 정도로 복잡할 수 있는 내용인데 이 책에서는 클로저를 이용하여 7주 과정으로 쉽게쉽게 설명하고 있다. 단 오히려 이점이 단점이 되기도 한다. 클로저 위주로 설명하고 있지만 클로저는 한국 개발자가 가장 흔히 알고 있는 자바와는 (java8에는 일부 개념이 들어갔지만) 다른 문법과 개념(특히 함수형 언어의 특징들)을 많이 가지고 있기에 이해하기 어려울 수 있다. (개인적으로 익숙한 scala였으면 하는 바램은 있었다.) 한가지 조언을 하자면 이 책은 게임 튜토리얼처럼 한단계 한단계 진행해나가는 형태로 진행하고 있기 때문에 디테일한 코드보다는 이 코드를 통해 설명하고자 하는 내용 위주로 파악하면 읽기에 조금이라도 수월해질 수 있을 것이다.

 

빅데이터에서 필요한 7가지 동시성 모델에 대해 예제를 들어 설명한 책이다.

 

금, 토, 일 3일씩 주말에 놀지도 말고 7주에 거쳐서 보라고 친절하게 편집되어 있고 책도 두껍지 않아서 책을 받아본 순간 금방볼수있겠다는 생각이 들겠지만, 국내에서 클로저를 실무에서 쓰는 사람이 별로 없다는 점과 자율학습까지 학습하며 뽕을 뽑을 요량으로 공부한다고 했을 때 하루동안의 학습분량이 결코 적은것은 아닌것같다(T_T

 

솔직히 나는 7가지 동시성 모델이라는 제목에 낚였다. 내가 생각한 병렬처리/동시성은 트래픽이 많은 사이트-포탈/커머스등의 메인페이지-에서의 리스크 관리에 대한 내용이었는데...(물론 클로저방식의 클로저를 javascript의 closure로 착각한 내 무지가 크다.) 그치만 역자이신 임백준님의 서문처럼 '상식의 지평을 넓힌다'는 마음가짐으로 본다면 앞으로의 개발경력에 조금이라도 도움이 되지 않을까.빅데이터를 잘 모르는 초급개발자가 보기에는 다소 힘겨운것같다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 상품명 :
7가지 동시성 모델
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
7가지 동시성 모델
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
7가지 동시성 모델
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 상품1