메뉴 바로가기 검색 및 카테고리 바로가기

한빛미디어

독자리뷰

엘릭서 배우기의 좋은 출발점

drv***

|

2022-04-25

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

신생 함수형 언어인 엘릭서를 기초부터 심화까지 알려주는 도서

  • 저자 : 데이브 토머스
  • 번역 : 권두호 , 최성락(감수자)
  • 출간 : 2022-03-14

[처음 배우는 엘릭서 프로그래밍] 제목에서의 직관적인 느낌은 엘릭서에 대해 전혀 모르는 중급 개발자 중에서 "함수형 프로그래밍의 개념을 알고 싶은 누군가"나 "함수형 프로그래밍 개념이 있는 누군가"가 엘릭서 문법 처음부터 끝까지 정리하고 싶을 때 찾는 책이라 생각했습니다. 본 도서에는 부담되지 않는 분량으로 문법뿐만 아니라 엘릭서를 개발하기 위한 유용한 도구 사용법, 실제 개발 시 검색 및 경험을 통해 파악하게 되는 내용이 포함되어 있습니다. 만일 엘릭서를 완벽하게 정리하고 싶다면 이 책만으로 궁금증을 명쾌히 해결해 주지는 못할 겁니다.

 

엘릭서에 관심이 있을 만한 호기심 많은 독자라면, 예를 들어 자동차 운전 시 브레이크를 밟으면 속도가 줄어든다는 피상적인 설명보다는 브레이크를 밟으면 바퀴에 연결된 브레이크 패드를 잡아주어 마찰력 증가로 자동차가 서게 된다는 내용도 궁금할 것 같습니다. 객체지향과는 다른 독특한 방식의 동작이라 액터(프로세스)의 내부 구조나 얼랭VM의 세부내용이 부족한 것이 아쉬웠습니다.

 

공식 홈페이지 문서(https://elixir-lang.org/getting-started/introduction.html)와 실습을 통해 배울 수 있는 Exercism(https://exercism.org/tracks/elixir), 포럼(http://elixirforum.com/)을 이용하여 능동적인 학습과 Q&A를 병행하고 슬랙(https://elixir-slackin.herokuapp.com/)이나 디스코드(https://discord.gg/elixir)를 활용하여 책의 내용을 보충할 필요가 있습니다.

 

하지만 다시 객관적으로 생각해 보면, 특정 기술을 한 권의 책으로 마스터할 수 있다는 것은 너무나 이상적입니다. 실제 그런 바이블류는 모두 봐지지도 않고요. 아마도 대부분의 독자들에게 웹페이지 API를 문서화한 도서에 관심이 없을 것입니다. 본 도서는 엘릭서의 본질과 엘릭서틱하게 생각하는 방법을 전달하려 노력했습니다. 한국어 잘 번역되어 부담 없이 시작할 수 있는 엘릭서의 좋은 출발점이 됩니다. 또한 책 전반적으로 객체지향 프로그래밍에 익숙한 사람들을 고려하여 엘릭서를 맛보거나 실무에 활용하려는 사람들을 고려하며 기술되었습니다. 예를 들어 if나 case에 해당하는 제어 구문에 대한 내용은 12 챕터가 되어서야 등장합니다. 12챕터는 파트1에서 기본 문법을 설명하는 가장 마지막 챕터에 해당됩니다. 또한 챕터 중간에 방금 읽은 내용과 연관된 연습문제를 제공합니다. 때로는 포인트를 살짝 벗어난 내용도 있지만 개인적으로 개념의 숙지(?) 여부를 스스로 확인할 수 있어 좋았습니다.

 

또한 매우 솔직한 어투로 작성되었습니다. 예를 들면 중단점을 설명하면서 마지막에 기술된 아래와 같은 내용입니다.

"고백할 것이 있다. 필자는 엘릭서 중단점 기능을 이 책을 쓰면서 처음 사용해 봤다. 함수 중간에 실행을 중단할 목적으로 코드를 추가로 넣어야 한다면 필자는 그냥 예외를 발생시켜서 필요한 정보를 얻을 것이다. ... 그러니 필자가 디버거를 사용하지 않는다고 해서 당신까지 디버거에서 멀어지지는 않기를 바란다."

명성 있는 저자의 솔직한 면은 책의 신뢰성을 높여주는 것 같습니다.

 

본 도서는 3개의 파트로 되어 있습니다. 첫 번째 파트인 [전통적 프로그래밍]은 패턴 매칭 같은 핵심 개념을 소개하므로, 다른 함수형 언어를 접해본 독자라면 훑어볼 수 있습니다. 두 번째 파트인 [동시성 프로그래밍]은 프로세스, 노드(얼랭 VM), OTP와 같은 개념과 젠서버 등을 다룹니다. 얼랭과 같은 함수형 프로그래밍 언어를 취미로 접해본 개발자도 충분히 재밌게 읽을 수 있습니다. 특히 중요한 액터 모델의 동시성 개념은 머리로 이해하지만 가슴으로 받아들이기 힘든 것 처럼 익숙wl 않을 수 있는데, 객체지향 프로그래머의 관점에서 설명하는 것 같아 친숙하게 읽을 수 있었습니다. 엘릭서의 핵심 원리는 잘 전달하고 있지만 조금만 더 깊게 들어가 줬으면 하는 아쉬움이 남는 파트입니다. 세 번째 파트인 [엘릭서 심화]에서는 매크로, 프로토콜 등을 다룹니다. 특히 mix 등의 도구를 소개해 주는 내용이 좋았습니다.

 

객체지향 프로그래밍에 대한 경험이 있다면 더 좋은 한 개 이상 언어에 익숙한 독자를 대상으로 부담되지 않는 분량의 핵심 내용을 훑고 함수형 프로그래밍에 대한 훌륭한 배경지식을 함양시켜 줍니다. 또한 웹문서 및 포럼 등을 통해 필요한 내용을 파악할 수 있는 시야를 확보해 주어 실무에 활용할 수 있는 좋은 출발점이 되어 줍니다.

 

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

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?