SlideShare a Scribd company logo
맛만 보자 액터 모델이란? 
Jeff Lee
변해가는 주변 환경 
멀티코어 
CPU 클럭 상승의 한계 
분산환경 
ScaleUp의 한계 
클라우드 컴퓨팅 활성화
Parallel(병렬성) vs Concurrent(병행성)
Concurrent(병행성)의 도전 
암달의 법칙(Amdahl's law) 
병렬 컴퓨팅에서 멀티 프로세서를 사용할 
때 프로그램의 성능향상은 프로그램의 순 
차적인 부분에 의해 제한된다. 예를 들면, 
프로그램의 95%가 병렬화 할 수 있다면 
이론적인 최대 성능 향상은 아무리 많은 
프로세서를 사용하더라도 최대 20배로 제 
한된다. 
http://en.wikipedia.org/wiki/Amdahl's_law
Concurrent(병행성) 방법 
Processes 
Threads
Concurrent(병행성) 데이터 전달 방법 
Share 
Copy
Concurrent(병행성)
Theads
Theads
Thead의 문제점 
Shared mutable state 
예측이 불가능한 상황이 만들어짐 
Synchronoization 
monitor & lock 
deadlock, starvation, livelock
Thead의 문제점 
Thead는 프로그램 하기 어렵다. 
“Thread를 사용하는 대부분의 프로그램 
들은 버그로 가득 차 있다.” 
Havoc Pennington @ Dreamforce 2011
현재 최선의 방법
Actor Model 
다른 액터에 한정된 개수의 메세지를 보낼 수 있다. 
유한한 개수의 액터를 만들어 낼 수 있다. 
다른 액터가 받을 메세지에 수반될 행동(behavior)을 지정 할 수 
있다. 
이런 일들이 동시적으로 진행되는데 있어 미리 정해진 순서는 없 
다. 
- 칼 휴이트(1973)
Actor Model 
현실에 액터(사람)를 상상하면 이해하기 편하다. 
- 사람은 생각을 공유 못하고 전자우편으로 소통한다. 
- 액터는 이름, 행동, 의사소통으로 구성 
Message passing 
No shared memory
Actor Model
Actor Model 
Bruce : “그 때(루비를 만들었을 당시)로 돌아간다면, 어떤 기 
능에 변화를 주고 싶으세요?” 
Matz: “Thread를 없애고, Actor 나 또는 진보된 형태의 동시 
성 기능을 추가했을꺼예요.” 
Interview with Yukihiro Matsumoto (the creator of Ruby) 
from the book, “Seven Languages in Seven Weeks”
STM (Software Transactional Memory) 
소프트웨어 트랜잭셔널 메모리(Software Transactional Memory, STM)는 컴퓨 
터 과학에서 병렬 컴퓨팅에서 공유 메모리으로의 접근을 제어하기 위한 데이터 
베이스 트랜잭션과 유사한 동시성 제어 구조이다. 여기에서 트랜잭션은 공유 메 
모리에 읽기 및 쓰기를 수행하는 코드 조각을 가리킨다. 하나의 트랜잭션 안에서 
수행되는 읽기 및 쓰기는 논리적으로 한 순간에 수행되는 것으로 이해할 수 있 
다. 
http://ko.wikipedia.org/wiki/소프트웨어_트랜잭셔널_메모리 
http://en.wikipedia.org/wiki/Software_transactional_memory 
ACI(원자성, 일관성, 고립성) 보장 - D(지속성) 제외
변해가는 요구 조건 
운영 서버 수 
데이터 크기 
응답 시간 
가동률
Reactive Application 
event-driven 
이벤트 기반의 비동기 통신 
scalable 
수요에 맞게 쉽게 확장 및 업그레이드 
resilient 
장애에 내성이 높음 
responsive 
적절한 응답 및 빠른 반응 속도
Akka.io 
JVM 위에서 작동하는 reactive application을 쉽 
게 만들기 위한 라이브러리 및 런타임 
Actor Programming Model 
Asynchonous/non-blocking 
Isolated mutable state
Actors
맛만 보자 액터 모델이란
맛만 보자 액터 모델이란
Remoting
Supervisor
참고자료. 
[H3 2012] 꽃보다 Scala 
http://www.slideshare.net/kthcorp/scala-15041890 
Actors and Threads 
http://www.slideshare.net/mperham/actors-and-threads 
Akka.io 
http://akka.io/ 
The Reactive Manifesto 
http://www.reactivemanifesto.org/

More Related Content

PDF
중앙 서버 없는 게임 로직
PDF
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
PDF
NDC12_Lockless게임서버설계와구현
PPTX
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
PDF
임태현, MMO 서버 개발 포스트 모템, NDC2012
PDF
Windows Registered I/O (RIO) vs IOCP
PDF
MMOG Server-Side 충돌 및 이동처리 설계와 구현
PPTX
Quic을 이용한 네트워크 성능 개선
중앙 서버 없는 게임 로직
홍성우, 게임 서버의 목차 - 시작부터 출시까지, NDC2019
NDC12_Lockless게임서버설계와구현
[NDC 2018] 신입 개발자가 알아야 할 윈도우 메모리릭 디버깅
임태현, MMO 서버 개발 포스트 모템, NDC2012
Windows Registered I/O (RIO) vs IOCP
MMOG Server-Side 충돌 및 이동처리 설계와 구현
Quic을 이용한 네트워크 성능 개선

What's hot (20)

PDF
Scalability, Availability & Stability Patterns
PDF
How to build massive service for advance
PDF
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
PPTX
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
PPTX
Next-generation MMORPG service architecture
PDF
webservice scaling for newbie
PDF
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
PDF
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
PDF
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
PDF
NoSQL 위에서 MMORPG 개발하기
PDF
파이썬 생존 안내서 (자막)
PDF
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
PDF
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
PDF
게임서버프로그래밍 #2 - IOCP Adv
PPTX
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
PDF
gRPC Overview
PDF
테라로 살펴본 MMORPG의 논타겟팅 시스템
PDF
Python 게임서버 안녕하십니까 : RPC framework 편
PDF
임태현, 게임 서버 디자인 가이드, NDC2013
PDF
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
Scalability, Availability & Stability Patterns
How to build massive service for advance
〈야생의 땅: 듀랑고〉 서버 아키텍처 Vol. 3
KGC 2016: HTTPS 로 모바일 게임 서버 구축한다는 것 - Korea Games Conference
Next-generation MMORPG service architecture
webservice scaling for newbie
게임서버프로그래밍 #0 - TCP 및 이벤트 통지모델
Akka.NET 으로 만드는 온라인 게임 서버 (NDC2016)
오딘: 발할라 라이징 MMORPG의 성능 최적화 사례 공유 [카카오게임즈 - 레벨 300] - 발표자: 김문권, 팀장, 라이온하트 스튜디오...
NoSQL 위에서 MMORPG 개발하기
파이썬 생존 안내서 (자막)
[야생의 땅: 듀랑고] 서버 아키텍처 - SPOF 없는 분산 MMORPG 서버
고려대학교 컴퓨터학과 특강 - 대학생 때 알았더라면 좋았을 것들
게임서버프로그래밍 #2 - IOCP Adv
[IGC 2017] 펄어비스 민경인 - Mmorpg를 위한 voxel 기반 네비게이션 라이브러리 개발기
gRPC Overview
테라로 살펴본 MMORPG의 논타겟팅 시스템
Python 게임서버 안녕하십니까 : RPC framework 편
임태현, 게임 서버 디자인 가이드, NDC2013
시즌 2: 멀티쓰레드 프로그래밍이 왜이리 힘드나요?
Ad

Viewers also liked (10)

PDF
​『함수형 반응형 프로그래밍』 맛보기
PDF
Akka & Actor model
PDF
An Actor Model in Go
PDF
Functional Reactive Programming With RxSwift
PPTX
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기
PDF
Cascadia.js: Don't Cross the Streams
PDF
[1B4]안드로이드 동시성_프로그래밍
PPTX
Functional Reactive Programming with RxJS
PPTX
RxJS and Reactive Programming - Modern Web UI - May 2015
PDF
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
​『함수형 반응형 프로그래밍』 맛보기
Akka & Actor model
An Actor Model in Go
Functional Reactive Programming With RxSwift
NDC14 - Rx와 Functional Reactive Programming으로 고성능 서버 만들기
Cascadia.js: Don't Cross the Streams
[1B4]안드로이드 동시성_프로그래밍
Functional Reactive Programming with RxJS
RxJS and Reactive Programming - Modern Web UI - May 2015
서버 개발자가 바라 본 Functional Reactive Programming with RxJava - SpringCamp2015
Ad

Similar to 맛만 보자 액터 모델이란 (20)

PPTX
Visual C++10을 활용한 병렬 프로그래밍
PPTX
서버 아키텍처 이해를 위한 프로세스와 쓰레드
PPTX
os question
PPTX
Introduction to scalability
PDF
7 8 1
PPTX
Why OpenStack is Operating System?
PPTX
System Infra와 Recovery 그리고 DevOps
PDF
NoSQL 간단한 소개
PPTX
Scalable system design patterns
PPT
091106kofpublic 091108170852-phpapp02 (번역본)
PPTX
Free rtos seminar
PPTX
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
PDF
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
PPTX
병렬 프로그래밍 패러다임
PPTX
Ahems lab cloud view-final
PDF
Docker.소개.30 m
PDF
Exploring Deep Learning Acceleration Technology Embedded in LLMs
PDF
Understanding LLM LLMOps & MLOps_open version.pdf
PPTX
4. 대용량 아키텍쳐 설계 패턴
PDF
클라우드 환경에서 알아야할 성능 이야기
Visual C++10을 활용한 병렬 프로그래밍
서버 아키텍처 이해를 위한 프로세스와 쓰레드
os question
Introduction to scalability
7 8 1
Why OpenStack is Operating System?
System Infra와 Recovery 그리고 DevOps
NoSQL 간단한 소개
Scalable system design patterns
091106kofpublic 091108170852-phpapp02 (번역본)
Free rtos seminar
프로그래머가 몰랐던 멀티코어 CPU 이야기 - 15, 16장
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
병렬 프로그래밍 패러다임
Ahems lab cloud view-final
Docker.소개.30 m
Exploring Deep Learning Acceleration Technology Embedded in LLMs
Understanding LLM LLMOps & MLOps_open version.pdf
4. 대용량 아키텍쳐 설계 패턴
클라우드 환경에서 알아야할 성능 이야기

More from jbugkorea (19)

PDF
Hawkular overview
PDF
미들웨어 엔지니어의 클라우드 탐방기
PDF
기업, 통합, 마이크로서비스
PDF
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
PDF
JBUG Korea 소개
PDF
Micro Service Architecture 탐방기
PPTX
Jbug 발표 msa탐방기_공유자료
PPTX
Micro Service Architecture(MSA) 탐방기
PDF
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
PDF
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
PDF
맛만 보자 Undertow
PDF
맛만 보자 Finagle이란
PDF
Undertow 맛보기
PDF
JBoss Community Introduction
PDF
JBoss AS 7 따라잡기
PDF
Wildfly 8.0에서 SOAP 웹 서비스 구현
PDF
Infinispan Data Grid Platform
PDF
Java 8 - A step closer to Parallelism
PDF
JBoss Community's Application Monitoring Platform
Hawkular overview
미들웨어 엔지니어의 클라우드 탐방기
기업, 통합, 마이크로서비스
개발자가 인프라를 만났을때 - RHQ를 활용한 Legacy System 모니터링
JBUG Korea 소개
Micro Service Architecture 탐방기
Jbug 발표 msa탐방기_공유자료
Micro Service Architecture(MSA) 탐방기
INFINISPAN non-clustering Spring4 WEB/MOBILE APP 구축
테스트 어디까지 해봤니? Arquillian을 이용한 Real Object 테스트
맛만 보자 Undertow
맛만 보자 Finagle이란
Undertow 맛보기
JBoss Community Introduction
JBoss AS 7 따라잡기
Wildfly 8.0에서 SOAP 웹 서비스 구현
Infinispan Data Grid Platform
Java 8 - A step closer to Parallelism
JBoss Community's Application Monitoring Platform

맛만 보자 액터 모델이란

  • 1. 맛만 보자 액터 모델이란? Jeff Lee
  • 2. 변해가는 주변 환경 멀티코어 CPU 클럭 상승의 한계 분산환경 ScaleUp의 한계 클라우드 컴퓨팅 활성화
  • 4. Concurrent(병행성)의 도전 암달의 법칙(Amdahl's law) 병렬 컴퓨팅에서 멀티 프로세서를 사용할 때 프로그램의 성능향상은 프로그램의 순 차적인 부분에 의해 제한된다. 예를 들면, 프로그램의 95%가 병렬화 할 수 있다면 이론적인 최대 성능 향상은 아무리 많은 프로세서를 사용하더라도 최대 20배로 제 한된다. http://en.wikipedia.org/wiki/Amdahl's_law
  • 10. Thead의 문제점 Shared mutable state 예측이 불가능한 상황이 만들어짐 Synchronoization monitor & lock deadlock, starvation, livelock
  • 11. Thead의 문제점 Thead는 프로그램 하기 어렵다. “Thread를 사용하는 대부분의 프로그램 들은 버그로 가득 차 있다.” Havoc Pennington @ Dreamforce 2011
  • 13. Actor Model 다른 액터에 한정된 개수의 메세지를 보낼 수 있다. 유한한 개수의 액터를 만들어 낼 수 있다. 다른 액터가 받을 메세지에 수반될 행동(behavior)을 지정 할 수 있다. 이런 일들이 동시적으로 진행되는데 있어 미리 정해진 순서는 없 다. - 칼 휴이트(1973)
  • 14. Actor Model 현실에 액터(사람)를 상상하면 이해하기 편하다. - 사람은 생각을 공유 못하고 전자우편으로 소통한다. - 액터는 이름, 행동, 의사소통으로 구성 Message passing No shared memory
  • 16. Actor Model Bruce : “그 때(루비를 만들었을 당시)로 돌아간다면, 어떤 기 능에 변화를 주고 싶으세요?” Matz: “Thread를 없애고, Actor 나 또는 진보된 형태의 동시 성 기능을 추가했을꺼예요.” Interview with Yukihiro Matsumoto (the creator of Ruby) from the book, “Seven Languages in Seven Weeks”
  • 17. STM (Software Transactional Memory) 소프트웨어 트랜잭셔널 메모리(Software Transactional Memory, STM)는 컴퓨 터 과학에서 병렬 컴퓨팅에서 공유 메모리으로의 접근을 제어하기 위한 데이터 베이스 트랜잭션과 유사한 동시성 제어 구조이다. 여기에서 트랜잭션은 공유 메 모리에 읽기 및 쓰기를 수행하는 코드 조각을 가리킨다. 하나의 트랜잭션 안에서 수행되는 읽기 및 쓰기는 논리적으로 한 순간에 수행되는 것으로 이해할 수 있 다. http://ko.wikipedia.org/wiki/소프트웨어_트랜잭셔널_메모리 http://en.wikipedia.org/wiki/Software_transactional_memory ACI(원자성, 일관성, 고립성) 보장 - D(지속성) 제외
  • 18. 변해가는 요구 조건 운영 서버 수 데이터 크기 응답 시간 가동률
  • 19. Reactive Application event-driven 이벤트 기반의 비동기 통신 scalable 수요에 맞게 쉽게 확장 및 업그레이드 resilient 장애에 내성이 높음 responsive 적절한 응답 및 빠른 반응 속도
  • 20. Akka.io JVM 위에서 작동하는 reactive application을 쉽 게 만들기 위한 라이브러리 및 런타임 Actor Programming Model Asynchonous/non-blocking Isolated mutable state
  • 26. 참고자료. [H3 2012] 꽃보다 Scala http://www.slideshare.net/kthcorp/scala-15041890 Actors and Threads http://www.slideshare.net/mperham/actors-and-threads Akka.io http://akka.io/ The Reactive Manifesto http://www.reactivemanifesto.org/