본문 바로가기
항해/독서

[ELIXIR 처음 배우는 엘릭서 프로그래밍]

by ggoboogi_house 2022. 4. 24.
반응형

[ELIXIR 처음 배우는 엘릭서 프로그래밍]

제목 : ELIXIR 처음 배우는 엘릭서 프로그래밍
초판 1쇄 발행 : 2021년 09월 06일
지은이 : 데이브 토머스
옮긴이 : 권두호, 감수 : 최성락
출판사 : 한빛미디어



 

  책을 펼치고 "엘릭서"에 대해 배우는 과정은 마치 내가 [이상한 나라의 앨리스]에서 토끼굴로 향하는 앨리스가 된 듯한 기분이었다. 프로그래밍을 배운지 그리 오래 된 것은 아니지만, Matlab과 Python, C++만 사용해본 사람으로서 Elixir를 배울때의 느낌은 Matlab만 쓰다가 Python을 처음 배울때와는 또 사뭇다른 느낌이었다. '함수형 프로그래밍'이라는 개념도 새롭고, elixir의 보석같기도, 액체같기도 한 아이콘도 새롭고 신선했다. 그럼에도 서론에서의 첫 두 문단은 호기심을 가지고 엘릭서를 탐험해보기에 충분한 동기를 제공하였다.

"엘릭서불변 데이터 구조액터 기반의 동시성 모델을 깔끔하고 현대적인 문법으로 감싼 함수형 프로그래밍 언어로, 업계에서 검증된 고성능의 분산 얼랭 VM 위에서 동작한다. ... 이 말은 곧 엘릭서를 사용하면 그동안 시간을 잡아먹었던 여러 문제를 더는 걱정하지 않아도 된다는 뜻이다." (본문 31 pg 중 일부)

 

엘릭서는 공식홈페이지(https://elixir-lang.org/install.html#windows)의 '설치' 탭에서 설치파일을 다운받아 설치하면 사용할 수 있다.

ref : 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월에 열렸던 엘릭서 컨퍼런스에서 엘릭서 창시자인 조제 발림의 발표도 찾아볼 수 있었다.

ref: https://youtu.be/ydjx2kKHzrM

 

  아직 엘릭서가 현업에서 어떻게 활용될 수 있을지 감은 오지 않지만, 당장 필요하지 않아도 배워봄직한 언어인것 같다. 작가의 말처럼 '주류 언어와는 다른 방법을 배움으로써 프로그래밍을 바라보는 시야가 넓어질 수 있을 것...'이라는 말이 귀에 맴돌기에 긴 호흡으로 다양한 토이프로젝트를 해보면서 새로운 세계를 탐험해 보아야겠다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

<Reference>

- https://github.com/walnut-kwon/programming-elixir-kr

- https://elixir-lang.org/install.html#windows

- https://hex.pm/

- https://github.com/elixir-korea/elixir-korea.github.io

- https://discord.gg/mVNjg3e

- https://elixir-lang.slack.com/

- https://hex.pm/

- https://youtu.be/ydjx2kKHzrM

반응형