목차 일부
옮긴이의 글 ... xiii
1장 출발 ... 1
1.1 로드맵 ... 2
1.2 다시 출발 ... 5
1.3 감사의 말 ... 6
2장 시작 ... 9
2.1 개관 ... 9
2.2 얼랭 설치하기 ... 12
2.3 이 책의 코드 ... 15
2.4 셸 시작하기 ... 15
2.5 간단한 정수 연산 ... 18
...
더보기
목차 전체
옮긴이의 글 ... xiii
1장 출발 ... 1
1.1 로드맵 ... 2
1.2 다시 출발 ... 5
1.3 감사의 말 ... 6
2장 시작 ... 9
2.1 개관 ... 9
2.2 얼랭 설치하기 ... 12
2.3 이 책의 코드 ... 15
2.4 셸 시작하기 ... 15
2.5 간단한 정수 연산 ... 18
2.6 변수 ... 19
2.7 부동 소수점 수 ... 25
2.8 애텀 ... 26
2.9 튜플 ... 28
2.10 리스트 ... 31
2.11 문자열 ... 33
2.12 패턴 매칭 다시 한번 ... 35
3장 순차 프로그래밍 ... 37
3.1 모듈 ... 38
3.2 쇼핑으로 돌아가서 ... 43
3.3 이름은 같고 애리티가 다른 함수 ... 47
3.4 펀(fun) ... 47
3.5 간단한 리스트 처리 ... 54
3.6 리스트 해석 ... 57
3.7 산술식 ... 61
3.8 가드 ... 62
3.9 레코드 ... 67
3.10 case와 if 식 ... 70
3.11 정상 순서로 리스트 구성하기 ... 71
3.12 누산기 ... 72
4장 예외 ... 75
4.1 예외(Exceptions) ... 75
4.2 예외 발생시키기 ... 76
4.3 try...catch ... 77
4.4 catch ... 81
4.5 오류 메시지 개선하기 ... 82
4.6 try...catch 프로그래밍 스타일 ... 82
4.7 가능한 모든 예외를 잡기 ... 83
4.8 구식과 신식 예외 처리 스타일 ... 84
4.9 스택 추적 ... 84
5장 고급 순차 프로그래밍 ... 87
5.1 BIF ... 87
5.2 바이너리 ... 88
5.3 비트 구문 ... 90
5.4 나머지 짧은 주제들 ... 100
6장 프로그램 컴파일하고 실행하기 ... 125
6.1 얼랭 셸 시작하고 중지하기 ... 125
6.2 개발 환경 수정하기 ... 126
6.3 프로그램을 실행하는 다른 방법들 ... 129
6.4 Makefile로 컴파일 자동화하기 ... 135
6.5 얼랭 셸에서 명령 편집하기 ... 138
6.6 고민거리 떨쳐버리기 ... 139
6.7 뭔가 잘못되었을 때 ... 139
6.8 도움 받기 ... 143
6.9 환경 개조하기 ... 143
6.10 크래시 덤프 ... 144
7장 병행성 ... 147
8장 병행 프로그래밍 ... 151
8.1 병행성 프리미티브 ... 152
8.2 간단한 예제 ... 153
8.3 클라이언트-서버 개론 ... 154
8.4 프로세스를 생성하는 데 걸리는 시간은? ... 159
8.5 타임아웃이 있는 receive ... 161
8.6 선택적 수신(Selective Receive) ... 164
8.7 등록된 프로세스 ... 166
8.8 병행 프로그램을 작성하는 법 ... 168
8.9 꼬리재귀에 관한 한마디 ... 168
8.10 MFA로 띄우기 ... 170
8.11 과제 ... 170
9장 병행 프로그램과 오류 ... 173
9.1 프로세스 연결하기 ... 173
9.2 on_exit 핸들러 하나 ... 175
9.3 오류의 원격 처리 ... 176
9.4 오류 처리 상세 ... 177
9.5 오류 처리 기본명령 ... 185
9.6 연결된 프로세스 집합 ... 187
9.7 모니터 ... 188
9.8 계속 살아 있는 프로세스 ... 188
10장 분산 프로그래밍 ... 191
10.1 이름 서버 ... 194
10.2 분산 프리미티브 ... 199
10.3 분산 프로그래밍용 라이브러리 ... 203
10.4 쿠키 보호 시스템 ... 203
10.5 소켓-기반 분산 ... 204
11장 IRC Lite ... 209
11.1 메시지 시퀀스 다이어그램 ... 212
11.2 사용자 인터페이스 ... 212
11.3 클라이언트 측 소프트웨어 ... 214
11.4 서버 측 소프트웨어 ... 218
11.5 애플리케이션 실행하기 ... 222
11.6 채팅 프로그램 소스코드 ... 223
11.7 연습 ... 231
12장 인터페이스 기법 ... 233
12.1 포트 ... 234
12.2 외부 C 프로그램과 인터페이스하기 ... 235
12.3 open_port ... 242
12.4 링크인 드라이버 ... 243
12.5 노트 ... 247
13장 파일 프로그래밍 ... 249
13.1 라이브러리의 구성 ... 249
13.2 파일을 읽는 여러 방법 ... 250
13.3 파일에 쓰는 여러 방법 ... 259
13.4 디렉터리 조작 ... 264
13.5 파일에 관한 정보 찾기 ... 265
13.6 파일 복사하고 삭제하기 ... 266
13.7 잡동사니 ... 267
13.8 Find 유틸리티 ... 268
14장 소켓 프로그래밍 ... 271
14.1 TCP 사용하기 ... 272
14.2 제어 이슈 ... 282
14.3 그 접속은 어디서부터 왔는가? ... 285
14.4 소켓과 오류 처리 ... 286
14.5 UDP ... 287
14.6 여러 머신으로 동보하기 ... 291
14.7 SHOUTcast 서버 ... 292
14.8 더 깊이 들어가기 ... 300
15장 ETS와 DETS- 대량 데이터 저장소 메커니즘 ... 301
15.1 테이블에 대한 기본 조작 ... 302
15.2 테이블의 유형 ... 303
15.3 ETS 테이블 효율성 고려 사항 ... 305
15.4 ETS 테이블 생성하기 ... 306
15.5 ETS 예제 프로그램 ... 307
15.6 DETS ... 313
15.7 아직도 못 다한 말? ... 317
15.8 코드 내역 ... 318
16장 OTP 개론 ... 321
16.1 제네릭 서버로 가는 길 ... 322
16.2 gen_server 시작하기 ... 332
16.3 gen_server의 콜백 구조 ... 336
16.4 코드와 템플릿 ... 340
16.5 더 들어가기 ... 343
17장 Mnesia- 얼랭 데이터베이스 ... 345
17.1 데이터베이스 질의 ... 345
17.2 데이터베이스에 데이터 추가하고 제거하기 ... 350
17.3 Mnesia 트랜잭션 ... 351
17.4 테이블에 복잡한 데이터 저장하기 ... 356
17.5 테이블의 유형과 위치 ... 359
17.6 초기 데이터베이스 생성하기 ... 362
17.7 테이블 뷰어 ... 364
17.8 더 들어가기 ... 364
17.9 코드 내역 ... 365
18장 OTP로 시스템 구축하기 ... 369
18.1 범용 이벤트 핸들링 ... 371
18.2 오류 로거 ... 374
18.3 알람 관리 ... 382
18.4 애플리케이션 서버 ... 385
18.5 슈퍼비전 트리 ... 387
18.6 시스템 시작하기 ... 391
18.7 애플리케이션 ... 395
18.8 파일 시스템 구조 ... 397
18.9 애플리케이션 모니터 ... 399
18.10 더 들어가기 ... 400
18.11 도대체 그 소수는 어떻게 만들었을까? ... 400
19장 멀티코어 서곡 ... 403
20장 멀티코어 CPU 프로그래밍 ... 405
20.1 멀티코어 CPU에서 효율적으로 실행되는 프로그램 만들기 ... 406
20.2 순차 코드 병렬화시키기 ... 411
20.3 메시지는 작게, 계산은 크게 ... 414
20.4 mapreduce와 디스크 색인하기 ... 419
20.5 미래로 성장하기 ... 430
부록 A 프로그램 문서화(Documentation) ... 431
A.1 얼랭 형 표기법 ... 432
A.2 형을 사용하는 도구들 ... 436
부록 B 마이크로소프트 윈도와 얼랭 ... 437
B.1 얼랭 ... 437
B.2 MinGW 내려 받아 설치 ... 438
B.3 MSYS 내려 받아 설치 ... 438
B.4 MSYS 개발자 툴킷 설치(선택) ... 438
B.5 이맥스(Emacs) ... 439
부록 C 자원(Resources) ... 441
C.1 온라인 문서 ... 441
C.2 책과 논문 ... 442
C.3 링크 모음 ... 443
C.4 블로그 ... 443
C.5 포럼, 온라인 커뮤니티, 소셜 사이트 ... 444
C.6 컨퍼런스 ... 444
C.7 프로젝트 ... 445
C.8 참고 문헌 ... 445
부록 D 소켓 애플리케이션 ... 447
D.1 예제 하나 ... 447
D.2 lib_chan의 작동 원리 ... 450
D.3 lib_chan 코드 ... 454
부록 E 나머지 잡다한 것들 ... 456
E.1 분석과 프로파일링 도구 ... 465
E.2 디버깅 ... 469
E.3 추적 ... 479
E.4 동적 코드 로딩 ... 483
부록 F 모듈과 함수 레퍼런스 ... 489
F.1 모듈: application ... 498
F.2 모듈: base64 ... 491
F.3 모듈: beam_lib ... 491
F.4 모듈: c ... 492
F.5 모듈: calendar ... 493
F.6 모듈: code ... 494
F.7 모듈: dets ... 496
F.8 모듈: dict ... 498
F.9 모듈: digraph ... 499
F.10 모듈: digraph_utils ... 501
F.11 모듈: disk_log ... 502
F.12 모듈: epp ... 503
F.13 모듈: erl_eval ... 503
F.14 모듈: erl_parse ... 504
F.15 모듈: erl_pp ... 504
F.16 모듈: erl_scan ... 505
F.17 모듈: erl_tar ... 505
F.18 모듈: erlang ... 506
F.19 모듈: error_handler ... 514
F.20 모듈: error_logger ... 514
F.21 모듈: ets ... 515
F.22 모듈: file ... 518
F.23 모듈: file_sorter ... 521
F.24 모듈: filelib ... 521
F.25 모듈: filename ... 522
F.26 모듈: gb_sets ... 523
F.27 모듈: gb_trees ... 524
F.28 모듈: gen_event ... 525
F.29 모듈: gen_fsm ... 526
F.30 모듈: gen_sctp ... 527
F.31 모듈: gen_server ... 528
F.32 모듈: gen_tcp ... 529
F.33 모듈: gen_udp ... 529
F.34 모듈: global ... 530
F.35 모듈: inet ... 531
F.36 모듈: init ... 531
F.37 모듈: io ... 532
F.38 모듈: io_lib ... 533
F.39 모듈: lib ... 533
F.40 모듈: lists ... 534
F.41 모듈: math ... 537
F.42 모듈: ms_transform ... 537
F.43 모듈: net_adm ... 537
F.44 모듈: net_kernel ... 538
F.45 모듈: os ... 538
F.46 모듈: proc_lib ... 539
F.47 모듈: qlc ... 539
F.48 모듈: queue ... 540
F.49 모듈: random ... 541
F.50 모듈: regexp ... 542
F.51 모듈: rpc ... 542
F.52 모듈: seq_trace ... 544
F.53 모듈: sets ... 544
F.54 모듈: shell ... 545
F.55 모듈: slave ... 545
F.56 모듈: sofs ... 546
F.57 모듈: string ... 549
F.58 모듈: superviser ... 550
F.59 모듈: sys ... 551
F.60 모듈: timer ... 552
F.61 모듈: win32reg ... 553
F.62 모듈: zip ... 553
F.63 모듈: zlib ... 554
찾아보기 ... 556
더보기 닫기