프로그래밍 언어 엘릭서(Elixir)를 들어보셨나요?
고가용성, 분선 처리가 가능한 얼랭 가상 머신 위에서 동작하는
쉽고 접근성이 뛰어난 엘릭서 프로그래밍 언어를 알아보고
엘릭서 라이브뷰에 대해서 알아보도록 하겠습니다.
목차
1. 엘릭서 프로그래밍 언어 란?
얼랭(Erlang) 가상 머신(BEAM) 위에서 동작하는 함수형, 동시성 프로그래밍 언어입니다.
엘릭서는 얼랭(처음부터 분산 시스템을 위한 언어로 설계됨)의 특징인 분산 처리, 장애 내구성, 실시간, 무정지 애플리케이션 을 공유하는 고가용성 프로그래밍 언어입니다.
2022년 자료에 따르면 개발자들에게 사랑 받는 언어 2위에 랭크 되어 있으며,
엘릭서 프로그래밍 언어로 만든 프레임워크인 Phoenix가 연봉 1위에 랭크되었습니다.
2022년 언어별 개발자 연봉 순위를 보면 Erlang은 2위, Elixir는 6위에 랭크되었습니다.
핫한 언어임에는 틀림이 없는것 같습니다.
공식 홈페이지 : https://elixir-lang.org/
JavaScript를 위한 TypeScript
Java VM 위에 동작하는 Kotlin
Java VM 위에서 동작하는 Clojure
등과 같이 얼랭 가상 머신 위에서 동작하는 프로그래밍 언어 입니다.
그냥 얼랭 프로그래밍 언어로 개발하면 될것 같은데
왜 굳이 엘릭서(Elixir) 프로그래밍 언어를 새로 만들었을까요?
얼랭 프로그래밍 언어가 좀 문법이 독특합니다.
자바 프로그래머가 쉽게 접근할 수가 없습니다.
그런 벽을 엘릭서(Elixir) 프로그래밍 언어가 허물어줍니다.
쉽게 개발 가능하게 해줍니다.
2. 엘릭서 프로그래밍 언어 장점?
엘릭서 프로그래밍 언어 공식 홈페이지에서 제공되는 내용입니다.
엘릭서 프로그래밍 언어는 확장성과 유지보수성이 뛰어난 애플리케이션을 구축하기 좋은 언어입니다.
1) 확장성
모든 엘릭서 코드는 격리된 가벼운 실행 쓰레드(프로세스) 내에서 실행되며 메시지를 통해 정보 교환을 합니다. 이 방식은 분산을 위한 기반을 제공하며 개발자가 여러 노드에서 작업을 조정할 수 있도록 확장성을 갖게 됩니다.
2) 결함허용
결함 허용과 메시지로 전달을 통한 이벤트 기반 프로그래밍이 가능함
3) 함수형 프로그래밍
개발자가 짧고, 간결하며, 유지보수성이 뛰어난 코드를 작성하는데 도움을 줍니다.
4) 확장성 및 DSL
확장을 쉽게할 수 있도록 설계되어 개발자 생산성을 높이고, 언어를 특정 도메인으로 자연스럽게 확장할 수 있습니다.
5) 성장하는 생태계
개발을 쉽게 해주는 훌륭한 도구 세트 제공.
Mix는 프로젝트 생성, 작업관리, 테스트 실행 등을 쉽게 해주는 빌드 도구입니다.
6) 대화식 개발
IEx라는 대화형 셀을 지원함으로써 자동 완성, 디버깅 도구, 코드 재로딩을 가능하게 합니다.
7) Erlang 호환
Erlang 언어 가상머신 위에서 동작하기 때문에 런타임 비용 없이 Erlang 함수를 호출 할 수 있습니다.
3. 라이브뷰(Liveview) 란?
라이브뷰(LiveView) 란 무엇일까요?
라이브뷰(LiveView)는 브라우저에서 자바스크립트를 사용하지 않고, 서버에서 렌더링 된 HTML을 웹소켓을 통해 조작하는 방식입니다.
거의 모든 상태 처리를 서버에서 해주기 때문에
프론트엔드를 위한 REST API, 프론트엔드 자바스크립트 코드가 필요없어 집니다.
프론트엔드 개발이 심플해집니다.
라이브뷰에 대한 상세한 내용을 알고자 하신다면 아래 참고자료를 통해서 확인 바랍니다.
LiveView를 요약하면 다음과 같습니다.
요약하면 LiveView는 몇 가지 고유한 기능을 제공합니다.
|
4. 참고자료
공식홈페이지 : https://elixir-lang.org/
위키백과 Elixir
https://ko.wikipedia.org/wiki/Elixir
liftIO 2022 : 웹 개발의 모순과 Elixir 가 특효약인 이유 - 한국축산데이터 CTO Max(이재철)
https://www.youtube.com/watch?v=lAaD-6OQSHE
Phoenix.LiveView 설명
https://hexdocs.pm/phoenix_live_view/Phoenix.LiveView.html
What is phoenix liveview?
https://pragmaticstudio.com/tutorials/what-is-phoenix-liveview
How We Got to LiveView
https://fly.io/blog/how-we-got-to-liveview/
Walk-Through of Phoenix LiveView
https://elixirschool.com/blog/phoenix-live-view/