Erlang 정리1 (erlang 이란?)

[markdown]

“`
node코드를 리팩토링 해야하는데, 하기 싫고 귀찮아서 erlang을 잠깐 봄.
명언이 생각난다.
“`

> 개발자는 자기가 흥미가 가는 것을 열심히하는 직업병이 있다.

# Erlang 정리1 (erlang 이란?)

> [http://learnyousomeerlang.com/introduction#about-this-tutorial](http://learnyousomeerlang.com/introduction#about-this-tutorial)

> 위 링크를 참고, 요약 한 것임을 밝혀 드립니다.

– functional 프로그램이다
– 참조의 투명성 (referential transparency)
– 변경가능한 데이터를 못씀 (avoiding mutable data)
– 코드는 바이트코드로 변환되고, 가상머신위에서 돌아간다.
– 표준배포판
– 개발툴(컴파일러, 디버거, 프로파일러, 테트트 프레임웤)
– OTP(Open Telecom Platform) 프레임웤
– 웹서버
– 파서 생성기
– mnesia 데이터베이스
– key-value 스토리지 시스템(복제기능, 트랜젝션, 어떤 erlang데이터도 저장가능)을 포함한다.
– actor를 강제로 쓰게 만든다.
– message로만 응답한다.
– 경량프로세스이다. (가벼우니 많이 만들수는 있지만 그게 좋은건 당연히 아니다.)
– 시계열 프로세싱이나, 운영체제의 시스템 드라이버를 만드는데는 안좋다.
– 큰규모의 서버(Queue, map-reduce)나, 고수준 프로토콜의 구현등에는 좋다.

## erlang에 뛰어들려면 무엇이 필요한가?

– 텍스트 에디터 + Erlang 실행환경 (공식사이트에서 받자 http://erlang.org/download.html)

### 리눅스환경에서 설치하기

“`
### mac
$ brew install erlang

### ubuntu
$ apt-get install erlang

### centos
$ yum install erlang

### 위의 3가지 방법으로 안 될 경우는 컴파일 설치!
### 컴파일 설치하려면 GNU make, gcc, Perl5, GNU m4, ncurses,
### termcap, termlib, OpenSSL, Sun Java jdk-1.5 이상, sed등이 필요.
### 위의 것들은 알아서 설치하시길..

### configure 설정에 –prefix= 설정을 하면 설치경로 지정가능
### 없으면 /usr/local/{bin,lib/erlang}에 기본적으로 설치됨.

$ curl -O http://www.erlang.org/download/otp_src_R16B03-1.tar.gz
$ tar xvzf otp_src_R16B03-1.tar.gz
$ cd otp_src_R16B03-1
$ LANG=C; export LANG
$ ./configure
$ make #오래걸림
$ make install
“`

## 도움얻기

“`
# man page
$ erl -man lists
“`

#### 웹 문서

공식 사이트 : [http://erlang.org/doc/](http://erlang.org/doc/)

공식 사이트 대신(디자인이 쫌 더 이쁨) : [http://erldocs.com/](http://erldocs.com/)

코딩 룰 : [http://www.erlang.se/doc/programming_rules.shtml](http://www.erlang.se/doc/programming_rules.shtml)

메일링리스트 : [http://www.erlang.org/static/doc/mailinglist.html](http://www.erlang.org/static/doc/mailinglist.html)

쿡북이나 레시피 좋아하는 사람은 여기를 : [https://erlangcentral.org/wiki/index.php?title=Main_Page](https://erlangcentral.org/wiki/index.php?title=Main_Page)

#### erlang shell 실행해보기

아래와 같이 실행하면
“`
$ erl
“`

요런식으로 나옴
“`
Erlang R16B03-1 (erts-5.10.4) [source] [64-bit] [smp:4:4] [async-threads:10] [hipe] [kernel-poll:false]

Eshell V5.10.4 (abort with ^G)
1>
“`

[/markdown]