Elixir Phoenix를 Rails, Laravel, Next.js보다 선택한 이유

2 weeks ago 8

  • Phoenix LiveView애플리케이션 속도와 개발 속도 모두에서 높은 효율성을 제공함
  • Frontend와 backend를 각각 유지관리할 필요 없이, 하나의 언어로 모놀리식하게 처리할 수 있는 점이 장점임
  • Rails Hotwire와 Laravel Livewire도 고려했지만, 실시간성 및 백그라운드 작업 구현에서 더 많은 설정이 필요함
  • Phoenix는 높은 성능, 내장된 Oban 백그라운드 잡 시스템, LiveView의 실시간성 등 탁월한 기능을 제공함
  • Elixir/Erlang 기반의 안정성, 고동시성, 버그 방지, 결함 허용성 등이 최종 선택의 결정적 요인임

왜 Phoenix LiveView를 선택했는가

코드의 목적과 선택 기준

  • 코딩의 목적은 문제를 가장 최적의 방식으로 해결하기 위함임
  • 본인에게 가장 중요한 요소는 애플리케이션 속도와 개발 효율성
  • 이 덕분에 Phoenix LiveView를 사용하게 됨

프론트엔드·백엔드 분리의 한계와 모놀리식 선택

  • React나 Next.js, Laravel(또는 Inertia.js)로 개발할 경우 프론트엔드와 백엔드를 따로 관리해야 하는 단점이 있음
  • 솔로 개발자로서 두 영역의 상태를 별도로 관리하는 데 시간이 부족함
  • 견고한 모놀리식 솔루션이 필요했음

대안 비교: Laravel Livewire, Rails Hotwire, Next.js

  • Laravel LivewireRails Hotwire는 자바스크립트 의존도를 줄이면서 프론트엔드 개발을 간소화해주는 도구임
  • Next.js로 풀 자바스크립트도 고려했지만, 백엔드에서 JS를 쓰는 것에 선호도가 낮았음
  • Rails Hotwire는 MVP(최소기능제품) 속도 개발이 강점이나, 백그라운드 작업·실시간 업데이트·양방향 통신 등 추가설정 필요성이 있었음

Elixir, Phoenix, LiveView의 결정적 장점

  • ElixirPhoenix는 Ruby on Rails의 우아함을 유지하면서 훨씬 높은 성능을 제공함
  • Oban을 통한 내장 백그라운드 잡, 친숙하고 가독성 좋은 문법, 그리고 LiveView의 실시간 양방향 통신이 강점임
  • LiveView는 서버 렌더링 방식과 프론트엔드 무거운 프레임워크 사이에서 이상적 균형을 잡음
  • WebSocket을 통한 실시간 업데이트와 JavaScript 라이브러리(예: Alpine.js) 연동이 가능함
  • Phoenix는 Oban 내장으로 백그라운드 잡 선언과 자동 복구가 쉬움

Elixir/Erlang의 이점

  • ElixirErlang 위에 구축된 컴파일 언어로, WhatsApp, Discord와 같은 대규모 동시성 시스템의 기반임
  • 고동시성, 결함 허용성, 장애에 대한 자동 복구를 제공함

최종 선택의 이유

  • 빠른 개발높은 동시성 지원
  • 단일 언어로 거의 모든 구현 가능
  • 가독성 좋은 코드 작성
  • 컴파일러가 많은 버그를 사전에 차단
  • 장애 허용성앱의 안정성 보장

결론 및 조언

  • Phoenix가 무조건 Rails, Laravel, Next.js보다 우월하지 않음
  • 모든 프레임워크는 훌륭하며, 각자 다양한 프로젝트에 사용 경험이 있음
  • 본인의 특정 상황프로젝트에 Phoenix가 가장 적합했음 (Hyperzoned.com)
  • 새로운 도구를 탐색해보는 것이 더 효율적인 문제 해결법 발견에 도움이 됨
  • 끊임없는 학습의 중요성을 강조함

참고

Read Entire Article