[ELIXIR 처음 배우는 엘릭서 프로그래밍]
제목 : ELIXIR 처음 배우는 엘릭서 프로그래밍 초판 1쇄 발행 : 2021년 09월 06일 지은이 : 데이브 토머스 옮긴이 : 권두호, 감수 : 최성락 출판사 : 한빛미디어 ![]() |
책을 펼치고 "엘릭서"에 대해 배우는 과정은 마치 내가 [이상한 나라의 앨리스]에서 토끼굴로 향하는 앨리스가 된 듯한 기분이었다. 프로그래밍을 배운지 그리 오래 된 것은 아니지만, Matlab과 Python, C++만 사용해본 사람으로서 Elixir를 배울때의 느낌은 Matlab만 쓰다가 Python을 처음 배울때와는 또 사뭇다른 느낌이었다. '함수형 프로그래밍'이라는 개념도 새롭고, elixir의 보석같기도, 액체같기도 한 아이콘도 새롭고 신선했다. 그럼에도 서론에서의 첫 두 문단은 호기심을 가지고 엘릭서를 탐험해보기에 충분한 동기를 제공하였다.
"엘릭서는 불변 데이터 구조와 액터 기반의 동시성 모델을 깔끔하고 현대적인 문법으로 감싼 함수형 프로그래밍 언어로, 업계에서 검증된 고성능의 분산 얼랭 VM 위에서 동작한다. ... 이 말은 곧 엘릭서를 사용하면 그동안 시간을 잡아먹었던 여러 문제를 더는 걱정하지 않아도 된다는 뜻이다." (본문 31 pg 중 일부)
엘릭서는 공식홈페이지(https://elixir-lang.org/install.html#windows)의 '설치' 탭에서 설치파일을 다운받아 설치하면 사용할 수 있다.

설치가 완료된 후 커맨드(CMD)창에서 'IEx'를 입력하거나 설치된 실행프로그램을 실행시켜 사용할 수 있다. 커맨드 창에서 아래와 같이 'IEx'를 입력하면 엘릭서 인터랙티브 세션이 켜진다. 마치 파이썬을 사용하는 것과 유사하였다. (다시 커맨트 창으로 돌아갈때는 Ctrl+C를 두번 누르면 된다.)

1장부터 12장까지는 엘릭서의 기본적인 내용과 철학 그리고 기초적인 문법들을 다루고 있다. 예제들도 설명이 보기좋게 잘 나와있고, 해당 파일도 옮긴이의 깃허브 저장소(https://github.com/walnut-kwon/programming-elixir-kr)에 있어서 참고하기 편리하였다. 그리고 13, 14장에서는 간단한 프로젝트가 소개되었다. 그리고 파트2인 15장~21장, 파트3인 22장~25장, 그리고 부록까지... 무려 500 페이지가 넘는다. 부록을 제외해도 거의 500페이지에 육박하는 방대한 양이라서 천천히 긴 호흡으로 살펴봐야 할 것 같다. 살펴보는 사람도 벅찬데, 번역하고 정리한 옮긴이분도 대단하신 것 같다.
그리고 아직 엘릭서 라이브러리들을 다양하게 활용해보지는 못했지만, 파이썬의 pip가 있듯이 엘릭서도 hex(https://hex.pm/)라는 패키지 매니저가 있다. 먼저 공식 문서에서 제공하는 내장 라이브러리를 확인해보고, 없다면 표준 얼랭 라이브러리(http://erlang.org/)에서 검색해보고, 그래도 없을때는 이 외부 패키지 매니저를 이용할 수 있다고 한다.
새로운 것을 배울때는 커뮤니티의 도움을 받는 것이 경험적으로 큰 도움이 되었다. "빨리 가려면 혼자가고, 멀리 가려면 함께 가라"라는 말을 어디선가 들었던 것 같은데, 짧은 프로젝트가 아닌 새로운 세계로의 모험을 떠나기 위해서는 커뮤니티에서 함께하는 것이 큰 힘이 되는 것 같다. 혹시나 해서 찾아보니 이미 생각보다 많은 사람들이 커뮤니티를 구성하고 기여하고 있었다. 엘릭서의 슬랙 커뮤니티(https://elixir-lang.slack.com/)에는 작성일 기준으로 대략 3만4천명의 사람들이 가입되어 있다. #korea 채널도 있고 대략 90명 정도의 사람들이 가입되어있는데, 한국 커뮤니티는 슬랙보다는 디스코드(https://discord.gg/mVNjg3e)에서 더 활동이 활발하다고 전해들었다. 그리고 무엇보다 앞서서 엘릭서의 나라로 향한 사람들이 깃허브 저장소(https://github.com/elixir-korea/elixir-korea.github.io)를 만들고 생태계 확장을 위한 다양한 활동들을 하고 계셨다.(감사하다!)
또, 작년 10월에 열렸던 엘릭서 컨퍼런스에서 엘릭서 창시자인 조제 발림의 발표도 찾아볼 수 있었다.
아직 엘릭서가 현업에서 어떻게 활용될 수 있을지 감은 오지 않지만, 당장 필요하지 않아도 배워봄직한 언어인것 같다. 작가의 말처럼 '주류 언어와는 다른 방법을 배움으로써 프로그래밍을 바라보는 시야가 넓어질 수 있을 것...'이라는 말이 귀에 맴돌기에 긴 호흡으로 다양한 토이프로젝트를 해보면서 새로운 세계를 탐험해 보아야겠다.
"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
<Reference>
- https://github.com/walnut-kwon/programming-elixir-kr
- https://elixir-lang.org/install.html#windows
- https://github.com/elixir-korea/elixir-korea.github.io
'항해 > 독서' 카테고리의 다른 글
[데이터 익명화를 위한 파이프 라인] (0) | 2022.05.29 |
---|---|
[내 인생 5년 후] (0) | 2022.05.24 |
[Quantum Computing: An Applied Approach] (0) | 2022.04.04 |
[Building Machine Learning Powered Applications - 머신러닝 파워드 애플리케이션] (0) | 2022.03.28 |
[개발자로 살아남기] (0) | 2022.03.27 |