트랙
/
Elixir
Elixir
/
학습 과정
/
Erlang 라이브러리
Er

Erlang 라이브러리 에서 Elixir

8개의 연습 문제

Erlang 라이브러리 소개

Elixir 코드는 BEAM 가상 머신에서 실행돼요. BEAM은 Erlang 런타임 시스템의 일부예요. Elixir는 Erlang에서 영감을 받았고 실행 환경도 공유하기 때문에, Erlang 라이브러리와 뛰어난 상호 운용성을 제공해요. 덕분에 Elixir 개발자는 자신의 Elixir 코드 안에서 Erlang 라이브러리를 사용할 수 있어요. 실제로 Elixir 커뮤니티에서는 Erlang 라이브러리가 이미 제공하는 기능을 위해 Elixir 라이브러리를 새로 작성하는 것을 권장하지 않아요.

그래서 수학 연산이나 타이머 함수 같은 일부 기능은 Elixir에서 Erlang을 통해서만 사용할 수 있어요.

Elixir와 Erlang의 이런 긴밀한 관계를 생각하면, 능숙한 Elixir 개발자가 되기 위해 Erlang의 기본 문법을 익히는 데 시간을 조금 투자해 볼 만해요.

사용하는 방법

Erlang의 표준 라이브러리는 별다른 추가 단계 없이 Elixir 코드에서 바로 사용할 수 있어요.

Erlang 함수도 Elixir 함수를 호출하는 것과 같은 방식으로 호출할 수 있어요. 다만 한 가지 작은 차이가 있어요. Erlang 모듈 이름은 snake_case 아톰이에요. 예를 들어 math 모듈의 Erlang pi/0 함수를 호출하려면 이렇게 써요:

:math.pi()
# => 3.141592653589793

가장 많이 쓰이는 Erlang 모듈

가장 많이 쓰이는 Erlang 모듈들은 Elixir 표준 라이브러리에 없는 기능을 제공해요. 다음과 같아요:

  • timer 모듈은 sleep/1, send_after/2, send_interval/2 같은 함수를 제공해요.
  • rand 모듈은 uniform/0, normal/0, seed/2 같은 함수를 제공해요.
  • :io_lib.format/2는 C 스타일 문자열 서식(제어 시퀀스 사용)을 제공해요.
  • math 모듈은 sin/1, cos/1, log2/1, log10/1, pow/2 같은 수학 함수를 비롯해 더 많은 기능을 제공해요.
  • queue 모듈은 큐 자료 구조를 제공해요.
  • crypto 모듈은 암호화 함수를 제공해요.
  • zip 모듈은 zip 아카이브를 다루는 함수를 제공해요.
  • calendar 모듈은 날짜와 시간을 다루는 함수를 제공해요. 예를 들어 iso_week_number/1 같은 함수가 있어요. Date, Time, NaiveDateTime 구조체를 Erlang 함수에 넘기려면, 해당 모듈의 to_erl 함수로 Erlang 형식으로 바꿔야 해요.

Erlang 표준 라이브러리에 대해 더 알아보려면 STDLIB 레퍼런스 매뉴얼을 살펴봐요.

Elixir와 Erlang 라이브러리의 상호 운용성은 Erlang 표준 라이브러리에만 국한되지 않아요. 어떤 Erlang 라이브러리든 Elixir 코드에서 사용할 수 있어요.

GitHub에서 편집 링크가 새 창이나 탭에서 열려요

Erlang 라이브러리 배우기

연습이 잠겨 있어요

Erlang 라이브러리 개념을 연습하려면 연습 문제 2개를 더 잠금 해제해요