Download presentation
Presentation is loading. Please wait.
1
ReloadedStudios Inc. 2008.3Q Study TED
Erlang Overview TED likes erlang more than brad? ReloadedStudios Inc. 2008.3Q Study TED
2
개요 Erlang 을 대강 전체적으로 살펴본다. ‘최신 이슈’ 를 보고 Erlang 의 특징을 알아본다.
3
순서 최신 이슈 코드 특징 응용 마무리
4
Intro 동영상 소개
5
Erlang 함수형 언어 병행 지향적 분산 지향적 무정지 시스템
6
등장 인물
7
누가 Joe 일까요?
9
함수형 언어 경량프로세스 기반 메시지 통신 병행 & 분산
10
독자들은 서문을 안 읽는다. 서두가 1장! Erlang 을 공부하세요!
11
최신 이슈 멀티코어 확장성 분산 무정지 시스템
15
최신 이슈! 정말 중요! 안전성 생존성 재사용성 성능 확장성 멀티쓰레드 프로그래밍의 목적!
16
분산 처리 무정지 시스템
17
이 모든 것을 쉽게 할 수 있는 Erlang 을 공부하세요!
18
코드 5가지 Erlang 기본 문법
19
For 가 없다
20
qsort( [Pivot|T]) ->
qsort( [X || X <- T, X < Pivot] ) ++ [Pivot] ++ qsort([X || X <- T, X >= Pivot] ); qsort([]) -> [].
21
변수 & Atom 단일 할당 변수 Atom 은 #define 과 비슷 Single Obejct Pattern Immutable
1> X = 1. 1 2> X = 2. Error 3> hello. hello Atom 은 소문자로 시작! 단일 할당 변수 Single Obejct Pattern Immutable Atom 은 #define 과 비슷
22
패턴 매칭 = 은 할당 연산이 아니다. 단일 할당이 프로그램을 낫게 만든다. 1> X = (2+4). 6
2> Y = 10. 10 3> X = 6. 4> X = Y. Error 5> Y = 10. 6> Y = X. = 은 할당 연산이 아니다. 단일 할당이 프로그램을 낫게 만든다.
23
튜플 정해진 수의 항목을 하나의 객체로 그룹핑 한다. struct point { int x; int y; }
생성 : P = { point, 10, 45 } 사용 : { point, X, Y } = P 정해진 수의 항목을 하나의 객체로 그룹핑 한다.
24
리스트 List 의 앞과 뒤를 얻을 수 있다. 1> List1 = [ 1, 2, 3 ]. [ 1, 2, 3 ]
[ 4, 5, 1, 2, 3 ] 3> [ Num | List3 ] = List2 Num 는 4 List3 는 [ 5, 1, 2, 3 ] List 의 앞과 뒤를 얻을 수 있다.
25
프로세스 Spawn 함수로 프로세스를 생성 & 시작한다. Receive 안에서 메시지를 받는다. 재귀로 작동한다.
Pid ! Spawn( Fun 함수 ) loop() -> receive 패턴 매칭 -> DoSomthing(), loop(); void end. Spawn 함수로 프로세스를 생성 & 시작한다. Receive 안에서 메시지를 받는다. 재귀로 작동한다.
26
이 정도만 알면 병행,분산,무정지 등등을 쉽게 만들 수 있따?
27
세상은..
28
특징 함수형 언어 병행지향적 언어 분산 기능 결함 허용/복구
29
Erlang 함수형 언어 병행 지향적 분산 지향적 무정지 시스템 병행, 분산 Primitives 제공!
30
함수형 언어 진짜 작동 할까?
31
For 가 없다 패턴 매칭 & 단일 할당 SideEffect 가 없다!
32
왜 병행 지향적 언어 라고 하는 걸까?
33
병행Concurrent 순차Sequential 병렬Parallel 어떠한 순서로 처리하든 상관없게 작업 분할 동시에
[분할 된 독립작업] 처리 순차Sequential 순서대로 [한 개] 처리 병렬Parallel 동시에 [여러 개] 처리
34
프로세스 간 협업 P P P How? P
35
메시지 통신 기반 Pid ! Spawn( Fun 함수 ) loop() -> receive 패턴 매칭 ->
DoSomthing(), loop(); void end.
36
Erlang Virtual Machine
VM 경량 프로세스 P P P P Erlang Virtual Machine
37
Thread Local Storage 와 비슷
공유 자원이 없다 Process#1 Process#2 Memory#1 Memory#2 Thread Local Storage 와 비슷
38
어떻게 분산 기능을 지원 할까?
39
네트워크 경계를 넘어!
40
무정지 시스템은 어떻게 만들 수 있을까?
41
다중 프로세스 연결 P P 프로세스 이중화? 같이 사는 프로세스
42
핫스왑 Ver.2 Ver.1 P P
43
OTP 가져다 쓰기 분산 서버 세계의 .NET Framwork ?
44
마무리 정리
45
정리 Erlang 을 대강 전체적으로 살펴본다. ‘최신 이슈’ 를 보고 Erlang 의 특징을 알아본다.
46
끝 감사합니다. Joonseok.ahn@live.co.kr 2008.10.15 Ted
얼랭과 함께 병행지행적 프로그래밍으로 고고싱! 감사합니다. Ted
Similar presentations