DEV Community 👩‍💻👨‍💻

Sung-Chul Lee (이성철)
Sung-Chul Lee (이성철)

Posted on • Updated on

Elixir를 시작할 때 좋은 책과 커뮤니티

들어가면서

Elixir(엘릭서)는 정말 매력적인 언어입니다. 여러분께서 이 글을 읽는다면 분명 Elixir의 매력적인 면에 반하셔서 이 글을 접하게 되셨을 가능성이 높을 것 같습니다. Elixir의 동시성 패턴이 강한 언어의 장점은 분산 애플리케이션 혹은 고가용성 애플리케이션을 만들려는 분들에게는 정말 매력적일 것 같습니다. 요즘 애플리케이션은 대부분이 고가용성을 기본 가정하게 되는데요. 예를들면 간단한 채팅 서버를 만든다고 해도 여러분의 CTO님은 이 아키텍처가 얼마나 스케일이 가능한지 가용성은 어떻게 담보할 것인지 물어볼 것이 뻔합니다. Elixir는 이러한 문제에 훌륭한 답을 제공할 수 있습니다.

이 글은 Elixir를 처음 시작하시는 분들에게 도움이 되실만한 러닝리소스와 커뮤니티 정보를 소개해드리려고 합니다.

Elixir의 러닝리소스

Elixir School

Elixir는 커뮤니티 교재들도 튼튼합니다. 먼저 가볍게는 Elixir School을 가보세요. Elixir School은 기본적인 Elixir를 사용하는데 필요로하는 대부분의 영역을 가르쳐줍니다. 문법과 같은 기초영역에서부터 OTP(Elixir의 모체가 되는 Erlang의 동시성 라이브러리)의 기본적인 사용법 그리고 비즈니스 애플리케이션을 개발할때 빠질 수 없는 데이터베이스 레이어인 Ecto까지 그 범위는 실로 엄청납니다 (책 하나를 써도 되지 않을까 싶습니다). Elixir School 콘텐츠의 장점은 바로 무료 이며, 한국어 번역도 일부 있다는 것입니다. 이미 작은 한국어 Elixir 사용자 커뮤니티임에도 이미 어떤 분은 번역을 손수 고생하며 해주셨습니다. 꼭 한번 읽어볼만한 리소스라고 생각합니다.

E-Books

한국어 책을 제외하고는 실제로 필자가 자비로 사서 읽어본 책에 대해서만 소개해드립니다.

"처음 배우는 엘릭서 프로그래밍" [한국어]

한국어 책 중에는 첫번째 번역책이라고 부를만한 멋진 한국어 번역 책이 있습니다 "처음 배우는 엘릭서 프로그래밍"입니다. 이 책은
Programming Elixir 1.6 책을 번역한 책이라고 소개받았습니다.
아직 제가 이 책을 읽어본적은 없습니다만, 여러분의 소개를 보아하니 상당히 좋은 평가를 받는 듯 합니다.

Elixir in Action (Saša Jurić)

이 책은 Elixir의 기본부터 다룹니다. 터미널에서 REPL을 통해 Elixir 를 사용하는 방법에서 부터 기본적인 언어의 기본적인 문법과 간단한 동시성 구현법을 알려줍니다. Elixir School을 보시고 더 자세한 문법적인 내용을 알고 싶으실 때 보시면 좋은 책입니다. 필자도 이 책으로 Elixir를 처음 시작했습니다.

The Little Elixir & OTP Guidebook (Benjamin Tan Wei Hao)

문법을 아셨으니 바로 유명한 Phoenix Framework을 써서 멋진 웹 앱을 만들고 싶으십니까? 잠시만요! Elixir는 OTP를 정말 잘 사용할 줄 알아야 웹 앱을 더 잘 만들 수 있습니다. 이 책은 OTP의 기능을 체계적으로 알려줍니다. 실질적으로 비즈니스 모델이 어떻게 OTP로 추상화 되고 분리되어야 하는지 그 방법론을 알려줍니다. 이 책을 읽고 나면 "Phoenix (Elixir에서 가장 유명한 웹 프레임워크)가 당신의 애플리케이션이 아닙니다!"고 외치는 Elixir 커뮤니티 회원분들의 말씀에 공감이 가시기 시작할 것입니다. 아참 이 E-Book과 아주 어울리는 Elixir Conf의 비디오가 하나 있습니다. "ElixirConf 2017 - Managing Tables With Elixir and OTP - Robert Beene". 이 책을 읽고난뒤 Robert님의 OTP 사용 패턴을 보시고나면 아! 이래서 OTP이구나 하는 느낌이 오실 것입니다.

Programming Ecto (Darin Wilson and Eric Meadows-Jönsson)

웹 애플리케이션으로 바로 가시기 전에 또 꼭 읽어보셨으면하는 책이 바로 이 책입니다. 이 책은 Elixir에서 데이터베이스를 사용할 수 있는 가장 좋은 방법 중의 하나인 Ecto를 소개해줍니다. 어떻게 모델을 디자인하고 쿼리를 하는지 여러가지 방법을 알려줍니다. 이 책을 Phoenix 책보다 먼저 읽어야 하는 이유는 비즈니스 로직과 DB 저장부를 대개 하나의 컨텍스트로 두고 구현하는 경우가 많아서 DB 사용법을 먼저 숙지하고 웹 앱과 완전히 분리된 비즈니스 로직 애플리케이션을 구현하면 좋기 때문입니다.

Programming Phoenix (Chris McCord, Bruce Tate and José Valim)

방금 까지 추천된 책을 읽고나면 이제 진짜 Phoenix로 WebApp을 짜실 준비가 다 되었다고 생각하셔도 좋다고 생각합니다. 이제 Phoenix 프레임워크에 대해서 배울 차례입니다. Phoenix Framework는 Elixir에서의 최고의 Web Framework라고 할만합니다. Phoenix는 이전 책에서 다루었던 문법, OTP, Ecto 모두가 하나로 뭉쳐져있습니다. 이제 Phoenix만 배우시면 이 세상의 모든 웹 애플리케이션을 개발하실 수 있으실 겁니다. 이 책 다음에는 Phoenix LiveView에 대한 책을 찾아보세요. 요즘 Phoenix는 LiveView의 기능이 각광을 받고 있습니다. 서버에서 클라이언트 화면을 모두 그려주는 방식이지요. 다른 프레임워크로는 조금 어렵겠지만 Phoenix에서는 이러한 방법이 미친 방법이 아닙니다.

커뮤니티

Elixir Seoul Meetup

여러분은 혼자가 아닙니다. 필자인 저도 대한민국에서 Elixir 사용자를 만나기가 힘들어서 저 혼자인줄 알았습니다. 한국축산데이터 CTO이신 이재철님은 이미 Elixir Seoul Meetup을 운영하고 계셨습니다. 벌써 400명도 넘는 회원들이 있습니다. 감사하게도 저는 이 분과 잠시 영상통화를 한적이 있었는데요, 정말 Elixir에 대한 지식과 열정이 엄청나신 분 이었습니다. Elixir에 관심이 있으시다면 Elixir Seoul Meetup에 문을 두드려보심이 어떠신지요? (제가 살고 있는 대전에도 Meetup이 생기기를 기원해봅니다)

Elixir Forum

혹시 영어가 친숙하시다면, Elixir Forum에 가보세요. 거기 가보시면 아 따뜻한 언어 커뮤니티가 이런것이다라는 느낌이 듭니다. 초보적인 질문부터 어려운 질문까지 서로 고민하는 커뮤니티이고 거기에서는 초보자들이 엄청 환영을 받는답니다.

혹시 Elixir에 대해 궁금한점이 있으신가요?

질문을 남겨주시면 제가 다음 글의 주제로 사용해보겠습니다.

감사합니다.

Top comments (0)

🌚 Friends don't let friends browse without dark mode.

Just kidding, it's a personal preference. But you can change your theme, font, etc. in your settings.

The more you know. 🌈