아카와 스칼라에 대한 형님의 열정이 여기까지 전해져옵니다.
형님 짱 잘생기셨엉
Akka, 이 책으로 한 번에 개념 잡자!
이 책은 아카(Akka) 입문서다. 아카를 한 번도 사용해본 적이 없는 사람이 최대한 빠른 속도로 아카를 이용하여 코딩을 시작하게 하는 것이 목적이다. 그런 의미에서 매우 실전적인 책이라고 말할 수 있다. 이 책에는 아카가 제공하는 개념과 API가 모두 포함되어있지 않다. 이론적인 설명은 최대한 줄이고 코드에 집중했기 때문이다. 책에 포함된 코드를 돌려보면 아카의 핵심적인 개념이 저절로 익숙해지도록 책을 구성했다.
아카가 구현한 액터 모델(actor model)은 오래전인 1973년에 칼 휴이트가 제안한 수학적 모델을 기초로 삼고 있다. 멀티스레딩 환경에서 동시성 프로그램을 작성하는 일이 점점 어려워지고, 한 대의 컴퓨터가 사용하는 CPU 코어의 수가 빠른 속도로 늘어나는 요즘에, 아카는 동시성 코드를 작성하기 위한 직관적이고 편리한 프로그래밍 모델을 제공한다.
액터 모델이 설명하는 내용은 그 자체로는 간단하여서 누구나 쉽게 이해할 수 있다. 하지만 원리를 실제 코드에 적용하는 것은 차원이 다른 문제다. 아카는 몇몇 개념을 이해하면 익힐 수 있는 게 아니라 근본적인 패러다임의 전환을 받아들일 때 비로소 자기 것으로 만들 수 있기 때문이다. 그런 면에서 아카 프로그래밍은 언뜻 생각하기보다 쉽지 않다. 이러한 패러다임 전환의 내용은 다음과 같다.
Akka와 함께 비동기 프로그래밍의 세계로!
아카를 사용해 프로그래밍하는 것은 이러한 동기적 세계를 떠나서 비동기적 세계로 들어가는 것을 의미한다. 아카에서는 모든 것이 철저하게 비동기적이다. 동기적인 메서드 호출에 익숙한 사람들에게 이것은 심오한 패러다임 전환이다. 순차적으로 질서정연하게 이루어지던 작업이 모두 해체되어 각각의 유닛이 동시다발적으로 동작하는 세계는 기존의 방식으로 사고하기 어렵다. 이러한 패러다임 전환에 도전하는 사람은 코딩할 때 자기가 알고 있던 접근방식이 뿌리부터 흔들리는 전율을 맛보게 된다. 지적 욕구가 충만한 프로그래머에게는 물론 즐겁고 유쾌한 전율이다.
아카는 강력하다. 아카가 동작하는 원리를 알지 못하는 사람에게 그것은 때로 마법처럼 보인다. 아카는 이미 수많은 회사에서 사용하고 있으며, 스파크를 비롯한 수많은 오픈소스 라이브러리에서 활용되고 있다. 아카는 모든 문제를 해결해주지 않지만, 분산 컴퓨팅, 확장성, 동시성, 반응형과 같은 요소를 고려할 때 훌륭한 선택이 되고 있다. 타입세이프에서 주장하는 반응형 플랫폼에서 아카는 스파크, 플레이와 함께 3대 요소의 자리를 차지하고 있으며, 액터 모델은 STM(Software Transaction Memory)과 함께 차세대 동시성 프로그래밍 구조물로 손꼽히는 방법이기도 하다.
한국에서도 아카에 대한 관심이 많이 일어나고 있다. 아직은 아카를 실전 코드에 활용하기보다는 실험적으로 접근하는 곳이 많지만, 가까운 장래에 아카에 대한 관심이 폭발적으로 일어날 거라고 확신한다. 아직은 초기라서인지 국내에서는 아카에 대한 좋은 입문서를 찾아보기 어렵다. akka.io에 있는 문서가 자세한 내용을 담고 있기는 하지만 영문으로 되어 있고, 개념을 중심으로 설명을 하기 때문에 아카를 처음 접하는 사람들이 활용하기에는 불편하다.
그런 의미에서 이 책은 아카를 처음 공부하려는 한국의 개발자에게 점프스타트 입문서의 역할을 수행할 수 있을 것이다. 아카를 사용하는 사람이 아직 많지 않은 지금, 이 책의 독자들이 열심히 아카를 공부해 새로운 패러다임의 선구자가 되기를 희망한다.
chapter 1 아카에 대하여
처리율
스케일 아웃
모듈화
차세대 동시성 모델
chapter 2 핑퐁 게임
핑퐁액터
액터시스템 만들기
액터 만들기
ActorRef
장소 투명성
메시지 전송
메일박스
onReceive
액터 라이프사이클
chapter 3 아카 계층구조
아카 계층구조
보내고 잊기
작업의 완료
메시지 순서
테크닉
액터의 내부 상태와 스레드
chapter 4 고장 나도록 허용하라
고장 나도록 허용하라
SupervisorStrategy
Resume
Restart
Stop
Escalate
기본 감시전략
재귀와 연대책임
chapter 5 액터와 상태기계
액터의 상태
상태기계
chapter 6 라우터
라우터
라우터와 감시전략
풀과 그룹
라우팅 알고리즘
chapter 7 퓨처와 에이전트
퓨처
예제코드
블로킹 호출
난블로킹 호출
에이전트
chapter 8 클러스터
클러스터
코드
구성파일
actor.provider
actor.remote
actor.cluster
deployment
리얼타임 eBook 안내
PDF 형식으로 제공되며, 다운로드한 eBook은 PDF 포맷을 지원하는 디바이스 또는 프로그램에서 제한없이 열람할 수 있습니다. 또한 eBook 내의 텍스트 검색 및 인쇄도 가능합니다.