- elixir-lang.org
- Elixir-koans Elixir learning exercises
- Beam Radio
- Thinking Elixir Podcast
- elixir-koans Discover elixir lang by replacing "__?" and "assert_?" to make tests pass
- 나프다 웨비너 1604: Elixir와 함수형 프로그래밍을 이용한 웹 개발(박창욱)
- My intro to Elixir: how learning another programming language can make you a better developer
- 2015 나는 프로그래머다 컨퍼런스 (10) 박창욱 - 엘릭서 라이브코딩
- Parallel Map in Elixir
- Elixir vs Erlang: a question of momentum
- Blinking LED using Elixir embedded image on Raspberry Pi
- A community driven style guide for Elixir
- N-Queens solved using backtracking in Elixir
- Elixir - The next big language for the web
- Monads in Elixir
- "Elixir and the Internet of Things" by Doug Rohrer
- Elixir Streams
- Binary pattern matching in Elixir with PNG parsing example
- Hacking Elixir's Syntax
- Elixir Process Architecture or: How I Learned to Stop Worrying and Love to Crash
- The Little Schemer in Elixir
- Email notifications about errors in Elixir
- Using Recursion In Elixir To Break Your OO Brain
- Hello Elixir. Wow
- Elixir concepts for Go developers
- Flirting with Elixir
- The simplicity and power of Elixir: the ws2048 case
- 10 Reasons To Use Elixir In Finance
- The Value of Explicitness
- 엘릭서에서 얼랭보다 사용성이 개선된 9가지 측면
- 엘릭서 언어 디자인 목표
- 엘릭서에서 모듈 이름을 포함한 함수의 전체 이름 찾기
- 엘릭서에서 캐스트 테스트 요청 시 레이스 컨디션 방지하기
- Quick & Easy Elixir Refactorings
- Periodic tasks with Elixir
- Basic Design in Functional Programming Languages - Tomasz Kowal | ElixirLive 2016
- mix 빌드 툴에서 쓰는 비관적인 연산자(pessimistic operator)
- escript가 번거롭다면 mix run으로 인자를 넘겨 실행하기
- Elixir로 Blockchain 구현하기
- Why Elixir Matters: A Genealogy of Functional Programming
- #elixir 언어로 만든 #slack 봇을 #heroku 서비스에 배포하기
- #elixir 지연 열거(lazy enumeration)가 필요할 땐, Stream 모듈
- #elixir 언어로 #telegram 봇 만들기
- #elixir 언어로 만든 네이버 검색 랭킹 알림 #telegram 봇을 #heroku 플랫폼으로 배포하기
- Elixir 프로젝트를 Heroku에 배포하기
- #elixirlang 커맨드 라인 옵션 해석에 사용하는 OptionParser 모듈과 help 옵션 구현 고민
- elixir 프로젝트 템플릿
- Learn With Me: Elixir - A series where I learn Elixir and you can learn along with me
- How Discord Scaled Elixir to 5,000,000 Concurrent Users
- Send a msg to Discord channel through webhook in Elixir - DEV Community
- Elixir to Vert.x in Examples
- The Soul of Erlang and Elixir
- 함수 이름이 _new 로 끝나면 뭐다?
- #naming #elixirlang Map을 합치고 싶을 때, 쓰는 Enum.into와 Map.merge
- #naming 함수 이름이 eventually라니 한 수 배웠다
- #testing 셋업 코드와 테스트 코드 분리를 도와주는 태그
- supervisor가 죽은 프로세스를 재시작하는 전략을 설명하는 예제
- Task.await와 Task.yield
- #metrics phoenix 웹 프레임워크로 만든 프로젝트 지표를 prometheus와 grafana로 모니터링
- 웹 프레임워크 phoenix를 쓰지 않은 애플리케이션에 프로메테우스(prometheus) 붙이기
- 소스 코드 읽기: prometheus.erl, prometheus.ex
- Elixir on Erlang VM demystified. How does Elixir work under the hood?
- 3 Key Elixir Takeaways For Java Developers | by Živković Miloš | Dev Genius | Medium
- Metaprogramming Elixir / Chris McCord
- Metaprogramming in Elixir
- Metaprogramming in Elixir - Learn Interactively
- #elixirlang 매크로 코드 디버깅 팁
- #elixirlang Elixir-Slack 라이브러리가 매크로를 사용해 slack api 호출 함수를 생성하는 방법
- #elixirlang 매크로를 사용해 decorator를 구현하는 방법
- #elixirlang 웹소켓을 사용한 실시간 Upbit 시세 받기
- #elixirlang 환경 변수로부터 N개의 설정을 읽기
- Elixir vs Scala
- Elixir in Production: Glific
- Elixir & Erlang - Fundamentally Pragmatic by Lars Wikman
- Encrypting Personal Data with Elixir and Cloak Ecto - YouTube
- Hexagonal, Onion, and Explicit Architecture with Elixir - Part 1 - YouTube
- Hexagonal, Onion, and Explicit Architecture with Elixir - Part 2 - YouTube
- 10 tips for new Elixir developers - DEV Community 👩💻👨💻
- Elixir 는 어떻게 10년도 안되어 성숙한 언어가 되었나 · Json Media
- Idioms for Building Fault-tolerant Applications with Elixir • José Valim • YOW! 2021 - YouTube
- You may not need Redis with Elixir - Dashbit Blog
- Elixir: The Documentary - YouTube
- Doing things only once in Elixir - DEV Community
- What does AI dream about? Stable Diffusion in Elixir | Curiosum
- Thomas Millar, Instructor - The bridge between Elixir and AI - YouTube
- Embedded and cloud Elixir for grid-management at Sparkmeter - The Elixir programming language
- Distributed Elixir App in AWS, PT1 — Let’s build the application | by Paweł Dawczak | Medium
- Distributed Elixir App in AWS, PT2 — Let’s compile the application | by Paweł Dawczak | Medium
- Elixir Distribution, ELI5. Maybe you heard about Elixir or Erlang… | by Paweł Dawczak | Medium
- Functional Arrays in Elixir and Erlang
- Checking for Unused Dependencies in Elixir - YouTube
- Processes
- An Incremental Approach to Declarative Design
- livebook Launch Week 1 - YouTube
- Elixir Book Club
- ElixirClub
- Elixir Security: What's the impact of DoS due to atom creation?
- How Elixir Solves a Difficult Security Problem
- Introduction to Elixir Security Webinar - YouTube
- Inspecting Elixir Dependencies at Runtime for Security
- The Best OO Language is a Functional One • Pragmatic Dave Thomas • YOW! 2017 - YouTube
- Monolith vs Umbrella Apps vs MicroServices - which, why and when ▶ Szymon Soppa ▶ Elixir Meetup #16 - YouTube
- Building a Simple API Microservice with Elixir: Advantages and Disadvantages | by Rodrigo Martins | Jul, 2023 | Medium
- Get Rid of Your Old Database Migrations – Andrea Leopardi
- The Incredible Migration from C++ to Elixir for Embedded Systems - YouTube
- 2 OTP V2 Elixir Behaviours - YouTube
- 18. OTP Word Ladder Project, CRC - YouTube
- An Introduction to Absinthe | AppSignal Blog
- Absinthe for Large Elixir Applications | AppSignal Blog
- Loading a structure.sql file on Prod without mix · Fly
- The 3 features that will make you fall for Elixir | by WTTJ Tech | Welcome Tech | Medium
- Exploit Guard: Open Source Runtime Application Self Protection for Elixir
- Journey to Elixir
- Build an MVP with Elixir
- SQL Injections vs Elixir | Curiosum
- How to integrate TinyMCE Editor into a Phoenix Liveview project | by Obute Moses | Jul, 2023 | Medium
- Elixir is (Still) Safe
- B2B SaaS 의 보안을 높여주는 Multi-Tenancy in Elixir · Json Media
- B2B SaaS 의 보안을 높여주는 데이터 암호화 in Elixir · Json Media
- Walkthrough of Elixir’s Adapter Pattern | Aaron Renner’s Blog
- Implicit try in Elixir | Curiosum tils
- Elixir Saves Pinterest $2 Million a Year In Server Costs
- Spotlight on - Making the Switch to Elixir | Beam It
- Live Coding Elixir - Hardhat session 7 - seanicuscode - Twitch
- Underjord | Why do ML on the Erlang VM?
- 10년 전에 Clojure로 짠 트위터 인용봇을 Elixir로 재작성한 후기
- Handling state between multiple processes with elixir - DEV Community
- Lifting Your Loads for Maintainable Elixir Applications - Erlang Solutions
- Build an MVP with Elixir
- From $erverless To Elixir | Prime Reacts - YouTube
- Experimenting with graph databases with Memgraph and Elixir
- Elixir for Ruby developers: the three most important differences · Phoenix on Rails
- Test an external, read-only Repository in Phoenix
- Protecting sensitive data in Elixir GenServers | by Gabriel Pereira | Nov, 2023 | New Work Development
- Setting up Neovim for Elixir Development - YouTube
- Elixir process management Series' Articles - DEV Community
- 빈 리스트에 대한 all? 함수의 리턴 값은? - 공허참(vacuous truth) - ohyecloudy’s pnotes
- IEx is awesome!
- Elixir Processes: Linking and Monitoring - Samuel Mullen
- Build A Simple Tracing System in Elixir | AppSignal Blog
- Bridging Elixir and Python for Efficient Programming Solutions | Curiosum
- Introducing Elixir WebRTC. For the last few months, we’ve been… | by Łukasz Wala | Feb, 2024 | Software Mansion
- Scaling a streaming service to hundreds of thousands of concurrent viewers at Veeps - The Elixir programming language
- Elixir Streams |> 🔄 Refactoring an anti-pattern: complex extractions in function heads
- Elixir Streams |> ⚡️ Stream Server Logs to Console!
- Intro to Genetic Algorithms with Elixir | abjork.land
- Clustering Elixir From Laptop to Cloud · The Phoenix Files
- How to Use Flume in your Elixir Application | AppSignal Blog
- Agent with Learn Elixir's Alvaro Callero - YouTube
- Automating Advent of Code Setup with Igniter - YouTube
- Taking Control of Map Sort Order in Elixir · Fly
- Enumerable: Custom Data Structures in Elixir, part 1 | Brett Beatty
- sigils
- Programming Elixir 1.3 / Dave Thomas
- The Little Elixir & OTP Guidebook / Benjamin Tan Wei Hao
- #book Designing Elixir Systems with OTP(2019) 독후감
- Elixir in Action, Second Edition
- #book Testing Elixir(2021) 독후감
- Programming Phoenix LiveView - UPDATED - YouTube
- Simplifying Systems with Elixir • Sasa Juric • YOW! 2020 - YouTube
- The Soul of Erlang and Elixir • Sasa Juric • GOTO 2019 - YouTube
- if(kakao)dev2022 그럼에도 불구하고 Elixir
- liftIO2022 : 개발자 부족의 시대, Elixir가 특효약이 될수 있는 이유 - 한국축산데이터 CTO Max(이재철) - YouTube
- LG유플러스 Elixir Tech Seminar - YouTube
- OKKY 3월 세미나 Elixir: 대용량 분산 웹개발의 혁명 (부제: Java / C++ / Python이 OOP 언어가 아닌 이유) - YouTube
- Keynote: Bringing Elixir to Life by José Valim | ElixirConf EU 2023 - YouTube
- Keynote: The Road To LiveView 1.0 by Chris McCord | ElixirConf EU 2023 - YouTube
- Concurrency Oriented Programming in a Modern World • Robert Virding & Francesco Cesarini • GOTO 2023 - YouTube
- Genetic Algorithms in Elixir • Sean Moriarity & Bruce Tate • GOTO 2023 - YouTube
- Michał Ślaski - 'Lessons from Erlang VM' ElixirConf EU 2015
- Fast and Efficient Image Processing in Elixir - Kip Cole - YouTube
- Erlang & Elixir • Francesco Cesarini & Andrea Leopardi • GOTO 2023 - YouTube
- ElixirConf 2023 - YouTube
- ElixirConf 2015
- A command line weather app built using elixir
- alchemist.el - Elixir Tooling Integration Into Emacs http://www.alchemist-elixir.org
- Alchemist v1.0 is released! – Elixir Tooling Integration Into Emacs
- asdf-vm Build Status - Manage multiple runtime versions with a single CLI tool, extendable via plugins - docs at asdf-vm.com
- Ash Framework
- async-elixir: Learn all about asynchronous elixir
- Beware of dragons in the dungeons
- bitcoin-ex - A Bitcoin Protocol Parser and Full Bitcoin Node in Elixir/OTP
- boruta-server: Lightweight Identity and Access Management server
- Cachex Powerful Caching in Elixir with Cachex | AppSignal Blog
- Clojure_Elixir_Concurrent_Ping
- cowboy: Small, fast, modern HTTP server for Erlang/OTP
- Crawly, a high-level web crawling & scraping framework for Elixir
- doumi_port: A helper library that facilitates the usage of Python in Elixir
- Ecto
- Programming Ecto
- 외래 키는 스키마에 정의하고 ecto 연관 함수로 외래 키를 직접 쓰지 말자
- 관계를 여러 번 타는 건 ecto가 알아서 하고 우리는 through 옵션으로 한 번에 접근하자
- Elixir and Ecto with SQLite3
- Repo.transact/2 (The Case Against Ecto.Multi) |> Tom Konidas
- Elixir Streams |> Richer domain types with Ecto custom types
- Build an API with Plug and Ecto - YouTube
- ecto_command
- EctoDbg README — EctoDbg v0.2.0
- Ecto.dump Deploying after mix ecto.dump · Fly
- ElixirScript - The goal is to convert a subset (or full set) of Elixir code to JavaScript, providing the ability to write JavaScript in Elixir
- Elxlisp - Lisp 1.5 M-expression. Also S-expression is available with invoke option
- elixir-scribe: The Elixir Scribe tool aims to help developers to embody the values of discipline and craftsmanship of the Scribes, enabling them to more easily write clean code in a clean software architecture for enhanced developer experience and productivity
- Elixir Streams
- eventrelay: An event streaming/storage system for the rest of us
- GenStage - elixir로 비트코인 시세 스크랩 (feat. 업비트) 1/3
- mix_gleam: ⚗️ Build Gleam code with mix
- Nerves Project
- Orion Dynamic Distributed Profiler
- parex - An elixir module for parallel execution of functions/processes
- phoenix - A productive web framework that does not compromise speed and maintainability
- Phoenix Dev Blog - Streams · Fly
- Phoenix로 블로그 웹 애플리케이션 만들기 (for Rails developers)
- Phoenix Presence를 이용한 채팅 애플리케이션 만들기
- Phoenix 프레임워크의 Channel 이해하기
- Edeliver와 Distillery를 이용한 Elixir/Phoenix 애플리케이션의 배포
- A Complete Guide to Deploying Elixir & Phoenix Applications on Kubernetes
- Installing Elixir and Phoenix
- 다형성 도구인 protocol를 사용한 pheonix param
- Surface UI - A server-side rendering component library for Phoenix
- Elixir + Phoenix LiveView + Svelte, Why?
- Phoenix LiveView + Typescript + Svelte + Tailwind CSS, How
- Phoenix: An Introduction to Elixir's Web Framework
- The Power & Performance of Phoenix LiveView • Geoffrey Lessel • GOTO 2021 - YouTube
- #elixirlang phoenix 웹 프레임워크의 관절 plug 매크로 간단 버전 구현
- "Hacking" Phoenix LiveView with F12 and Burp Suite - YouTube
- Making a CheckboxGroup Input · Fly
- Custom styling with LiveView function component attributes · Fly
- Building a Chat App with LiveView Streams · Fly
- Simple Chat Application Using Elixir Phoenix Running on Raspberry Pi 2
- Phoenix LiveView Zipped Uploads · Fly
- Drag and Drop with Elixir - Phoenix LiveView and JavaScript Interop
- Testing LiveView
- Building a Drag-and-Drop List with LiveView and SortableJS · The Phoenix Files
- 대학 과정 Phoenix LiveView - YouTube
- Animate a Side Drawer with LiveView.JS
- Star-Crossed LiveView Processes · The Phoenix Files
- ElixirConf 2023 - Brian Cardarella - LiveView Native - YouTube
- Integrating Chart.js into Elixir Phoenix for visual impact | by Lionel Aimerie | Aug, 2023 | Medium
- WyeWorks | Building a LiveView component with GitHub Copilot and ChatGPT - Part 1
- WyeWorks | Building a LiveView component with GitHub Copilot and ChatGPT - Part 2
- WyeWorks | Building a LiveView component with Github Copilot and ChatGPT: Reflections.
- Elixir Streams |> LiveView 0.20 HEEX Debug Annotations
- Build a real-time Instagram Clone in Under 20 Minutes with LiveView - YouTube
- Dynamic forms with LiveView Streams · The Phoenix Files
- Paraxial.io Webinar, Elixir/Phoenix Security: Preventing SQL Injection in Ecto - YouTube
- Securing Elixir/Phoenix Applications: 5 Tips to Get Started
- Elixir/Phoenix Security: Rate Limits for Authentication with Hammer
- Elixir/Phoenix Security: Remote Code Execution and Serialisation
- Elixir/Phoenix Security: What is CSRF via Action Reuse?
- Elixir and Phoenix Security, Remote Code Execution (RCE) - YouTube
- Elixir Security: What's the impact of DoS due to atom creation?
- Phoenix Dev Blog - Sounds Like a Bug · Fly
- Patrones en LiveVew para crear excelentes experiencias de usuario- Berenice Medel - YouTube
- Announcing Potion Shop - An Open Source Vulnerable Elixir/Phoenix App for Security Education
- Phoenix Dev Blog - Sounds Like a Bug · Fly
- Connecting Livebook To Phoenix - YouTube
- Using Elixir & Phoenix To Build A City Software Infrastructure by Shankar Dhanasekaran | EC EU 23 - YouTube
- Semantic Search with Phoenix, Axon, Bumblebee, and ExFaiss - DockYard
- Context maintainability & guidelines in Elixir & Phoenix | Curiosum
- Phoenix 가 가장 사랑받는 Web framework 로 선정되었습니다 · Json Media
- Customizing Phoenix Generators · The Phoenix Files
- Building a Shopify Clone in Phoenix Elixir Live View - YouTube
- Building a Shopify Clone in Phoenix Elixir and Live View (Part 1) - YouTube
- Building a Shopify Clone in Phoenix Elixir and Live View (Part 2) - YouTube
- Validate Data in a Phoenix Application for Elixir | AppSignal Blog
- Setting Up a Multi-tenant Phoenix App for Elixir | AppSignal Blog
- Elixir and Phoenix can do it all! · The Phoenix Files
- What is Phoenix LiveView? An introductory overview | Curiosum
- Resize Image Uploads with Phoenix LiveView - DEV Community
- Absinthe with Phoenix Framework - GraphQL in Elixir | Curiosum
- Programming Phoenix LiveView | gotopia.tech
- Driving BEAM Adoption with Phoenix LiveView • Sophie DeBenedetto • GOTO 2023 - YouTube
- VidiGo | 비디고 - Analyze Video AI
- 파일 업로드 및 코드 조직화 해결책
- 파일 업로드는 일반적인 웹 개발 문제 중 하나, liveview는 직접 서버 혹은 클라우드로의 파일 업로드를 지원하는 api 제공
- Liveview 컴포넌트와 함수 컴포넌트를 활용하여 ui를 깔끔하고 유지보수 가능하게 구성 가능, 이는 복잡한 SPA에도 적용 가능
- 라이브 컴포넌트와 기능 컴포넌트
- 라이브 컴포넌트는 사용자가 검색 폼을 제출할 때 발생하는 이벤트를 처리
- 검색 아이콘은 기능 컴포넌트로, 동작을 처리할 필요 없이 확대경 모양만 노출
- 이러한 구성 요소들은 복잡한 ui를 간단하게 만들어 유지 관리 용이
- 자바스크립트 통합과 JS 명령어
- 자바스크립트와의 통합은 liveview에서 복잡한 상호작용을 쉽게
- Js 명령어는 클라이언트 측에서 일상적인 작업을 실행할 수 있게
- 사용자는 자신의 자바스크립트를 작성할 수 있지만, liveview가 제공하는 선언적 인터페이스를 통해 필수적인 것만 가능
- 대규모 데이터 세트 관리와 LiveView 스트림
- 대규모 데이터 세트 관리는 서버 측에서 많은 데이터를 저장하거나 클라이언트 측에 저장하는 방식으로 해결된다.
- Liveview 스트림은 대규모 데이터 세트를 효율적으로 관리하기 위해 서버로부터 분리하여 클라이언트 측에 저장한다.
- 개발자는 liveview에게 무엇을 할지만 지시하면 되며, 어떻게 할지는 liveview가 알아서 처리한다.
- 라이브뷰와 웹 개발의 미래
- 소피는 라이브뷰가 어떻게 beam 프로그래밍 언어의 채택을 이끌고 있는지 설명
- 라이브뷰가 함수형 프로그래밍을 웹 개발에 계속 관련시키는 방법에 대해 논의
- 소피의 배경과 라이브뷰 소개
- 소피는 자신이 programming phoenix live view 책의 공동 저자임을 소개
- Github에서 일하며 beam 프로그래밍 언어를 사용하지 않지만, 라이브뷰에 대한 열정 공유
- 라이브뷰로 해결하는 웹 개발 문제들
- 모든 웹 개발자가 직면하는 공통 문제들과 그 해결책으로서 라이브뷰 설명
- 코드 예시를 통해 라이브뷰의 간결함과 효율성을 보여줌
- 라이브뷰의 장점과 채택 현황
- 라이브뷰가 개발자 생산성을 최적화하고 복잡한 클라이언트 서버 통신을 단순화한다고 설명
- 이미 elixir와 phoenix를 사용하는 회사들 사이에서 라이브뷰가 표준으로 자리잡고 있다고 말함
- 함수형 언어의 장점과 라이브 뷰 코드 패턴
- 함수형 언어를 사용하는 웹 개발의 이점 중 하나는 코드 파이프라인을 통해 소켓 상태를 간결하게 관리할 수 있다는 점
- 소켓을 통해 여러 작은 리듀서 함수 연결해 상태를 구체적으로 업데이트, 이러한 패턴은 라이브 뷰 코드 전반에서 반복적으로 확인가능
- 라이브 뷰와 인증 로직
- 모듈 내에 단일 함수로 구성된 간단한 예제를 통해 인증 로직을 설명
- 라우터에 지정된 명령을 통해 라이브 세션 내의 모든 라이브 경로가 시작될 때마다 이 로직이 호출되도록 설정
- 상태 복구와 폼 데이터 관리
- 연결 문제나 프로세스 종료 등으로 인한 상태 손실 문제에 대응하기 위해 라이브 뷰는 자동 복구 기능/클라이언트 상태 복원 패턴 제공
- 폼 필드가 비워지는 것을 방지하기
- 파일 업로드 및 코드 조직화 해결책
- 피닉스 라이브뷰로 빔 채택 촉진 - Sophie DeBenedetto - GOTO 2023 | 완벽한 영상요약, 릴리스에이아이 | Lilys AI
-
- 웹 개발 프레임워크 LiveView 소개와 기능 중요성 강조
- LiveView라는 웹 개발 프레임워크와 BEAM 프로그래밍 언어 채택을 주제
- 기능적 프로그래밍이 웹 개발에 중요하다고 언급하며 코드 살펴보면서 프레임워크의 가치 강조
- 청중 대부분이 LiveView나 Elixir 개발자가 아니어서 기초부터 설명
- LiveView 프레임워크의 장점과 기능에 대한 설명을 통해 프레임워크의 가치를 알리기 위한 세션
-
- LiveView: 기능적 프로그래밍과 BEAM을 활용한 웹 개발 도구
- LiveView은 기능적 프로그래밍과 BEAM을 활용한 웹 개발 도구로, 선언적이고 함수적 특성
- LiveView은 프로세스로 동작하며 클라이언트-서버의 통신을 더욱 간단하고 선언적으로 만듦
- LiveView의 상태는 불변한 소켓 구조에 유지되며, 페이지를 효율적으로 렌더링
- 컴포넌트 간 복잡한 상태 관리나 클라이언트-서버 간 조정 없이 Elixir 코드 작성으로 실시간 웹 애플리케이션 개발 가능
-
- LiveView 프레임워크: 개발 생산성 및 확장성
- LiveView 프레임워크로 개발 시 클라이언트-서버 통신 일부분이 프레임워크 처리, 개발자는 더 많은 시간을 서버 측 집중 가능
- 클라이언트-서버 통신 세부사항 관리 및 번거로운 JavaScript 코딩이 필요 없음
- BEAM을 통한 대규모 웹 애플리케이션 구축이 용이하며, 사용자 요구사항에 민첩하게 대응 가능
- Elixir 및 Phoenix와 함께 작업하는 경우, LiveView 채택이 웹 개발의 표준, 작은 팀이나 내부/관리 도구 문제를 해결시 매우 유용
-
- LiveView 로 문제 해결과 보안개선
- LiveView는 웹개발자들에게 매력적인 케이스 제공, Elixir 커뮤니티 외부 채택 느리지만, 일반 웹개발 어려움 위한 아름다운 해결책 보유
- 보안 문제, 상태 복구, 파일 업로드, 코드 구성, 자바스크립트 통합, 데이터 전송 효율에 대한 살펴봄
- LiveView는 빠른 웹페이지 로딩을 통해 사용자 경험을 최적화, 라우터에서 로직이 생략되어 보안 문제 발생 가능성
- 이에 Live Sessions로 그룹 간 인증 로직 공유 가능
- 웹소켓 유용성과 단일페이지 응용 프로그램의 보안문제 해결을 위해 LiveView는 Live Sessions를 제공하며 활용 가능
-
- Phoenix 라우터의 LiveView 라우트 그룹화 및 소켓 상태 관리
- 라우터에 LiveView 프로세스 초기화 시 호출할 모듈(UserAuthLive) 지정, 소켓에 사용자 검색, 상태(state) 업데이트하는 논리(Auth Logic) 추가
- 함수형 언어의 이점 중 하나인 코드의 간결함과 읽기 쉬움 강조, 불변성 및 함수형 데이터 구조 소켓을 통해 상태를 변경하는 패턴 강조
- 이는 LiveView 코드에서 반복적으로 볼 수 있는 소켓 및 assign 함수를 이용한 상태 변화의 장점을 사용
- 웹 개발에 함수형 언어의 우아함과 간결성, 불변성을 가져옴
- Phoenix LiveView의 특징 중 하나로, Live 라우트 그룹 내에 지정된 모듈을 초기화 및 공유 논리를 적용
- LiveView 프로세스의 상태를 유지하고 사용자의 요구에 대응
- 상태 복구와 연결 불안정성에 대한 대처 및 LiveView 프로세스의 상태 유지에 대한 솔루션 논의
- LiveView가 제공하는 강력한 기능 및 논리를 강조
- 8.LiveView - 오토 리커버리로 상실한 연결 시 굳힌 상태 관리
- LiveView은 연결이 끊길 때 영구 상태 관리에 대비한 5가지 솔루션 제공
- 오토 리커버리라는 기능이 있어 폼 상태가 유지, 특히 Phoenix 변경 이벤트를 이용해 폼 데이터를 서버로 전송
- 사용자가 폼에 정보를 기입할 때마다 Phoenix 변경 이벤트가 작동, LiveView이 연결이 끊겼다가 다시 연결되면 폼 상태 자동 복구
- 이는 템플릿이 유저와 상호작용할 때 폼 상태 복구를 자동으로 제공하여 추가 작업이 필요 없음
- 필요하다면 LiveView은 폼 복구 외에도 더 많은 기능을 제공 가능
-
- Phoenix 자동 복구 바인딩 및 상태 복원 기능
- Phoenix 자동 복구 바인딩 이용해 LiveView 프로세스 시작 시 클라이언트에서 상태 복원 가능, 이를 사용해 LiveView 상태 제공 가능
- 세션 스토리지나 로컬 스토리지에 상태 저장하고 LiveView 프로세스로 전송
- 클라이언트 상태 복원 방식은 LiveView의 초기 콜백 함수에서 파라미터에서 데이터를 추출하여 사용
- 90%의 상태 복구 요구 처리, 필요에 따라 사용자 지정 복구 이벤트/클라이언트 상태 복원 패턴 활용 나머지 10% 해결 가능
- LiveView는 대부분의 문제를 해결하고 남은 일부를 사용자가 해결할 수 있도록 지원하는 경향이 있음
-
- LiveView의 파일 업로드 문제 해결
- 파일 업로드는 웹 앱에서 핵심이지만 어렵고 복잡한데, LiveView는 이 문제를 쉽게 해결
- 파일 업로드 API를 제공, 서버 또는 클라우드로 직접 업로드 기능 제공, 업로드한 파일을 쉽게 추적, 전송된 파일 자동 검증 가능
- 사용자가 업로드하려는 내용을 LiveView에 알리고, 지정된 폼 필드에 파일 업로드 기능 추가하면 끝. 이미지 미리보기 같은 기능 지원
- 즉, LiveView를 이용하면 복잡한 파일 업로드 문제를 해결, 사용자에게 친숙한 환경에서 사용자 경험을 향상 가능
-
- 라이브 업로드 및 UI 구성을 위한 라이브뷰 컴포넌트 소개
- 업로드 진행 상황을 보고 싶다면, 'entry.progress'를 호출하여 커버 이미지 업로드를 순회. 업로드 오류 또한 쉽게 표시 가능
- 파일 업로드를 위해 사용자에 버튼을 클릭하거나 파일을 드래그 앤 드롭할 수 있는 필드 제공
- LiveView에서 파일이 업로드되게 하려면, 클라이언트가 서버로 보내는 'save event'에 대한 이벤트 핸들러 작성 필요
- UI를 깔끔하게 유지, 유지 가능케 하는 LiveView의 솔루션은 컴포넌트, LiveComponent와 FunctionComponent 사용해 UI 조합 가능
- 12.️ LiveView를 활용한 동적 컴포넌트 렌더링
- LiveView를 활용하여 검색 아이콘을 보여주는 함수 컴포넌트 구성에 대해 설명
- 리액티브이며 동적인 함수 컴포넌트를 통해 UI를 간편히 구성하는 방법 소개
- 컴포넌트 슬롯을 활용하여 콘텐츠를 동적으로 렌더링하는 예시 제시
- 함수 컴포넌트는 재사용 가능한 마크업을 동적으로 감쌀 수 있는 강력한 기능을 제공
-
- JavaScript 통합과 LiveView의 장점
- 사용자 요구 충족하는 정교한 상호 작용 UI를 얻으면서 현대적인 JavaScript 프레임워크에서 가져오는 많은 복잡성을 겪지 않는게 가능?
- LiveView의 'JS 명령', 'JS 바인딩' 기능 사용시, 서버 반송 과정 없이 클라이언트에서 표시/숨기기와 같은 간단한 기능을 수행 가능
- LiveView은 JavaScript 명령의 선언적 성격으로 사용, LiveView에 어떤 JavaScript를 실행할지 알려줄 수 있고 LiveView가 대신 실행
- JS 바인딩을 사용하면 클라이언트에서 완전히 표시 또는 숨김과 같은 작업을 수행 가능
- 다른 LiveView 기능인 JS 훅과 통합하여 원하는 사용자 지정 JavaScript를 통합 가능
-
- LiveView가 제공하는 편리한 JS 바인딩 기능
- 일반적인 상호작용을 위한 많은 JS 명령 제공, 클래스 추가, 제거, 요소 표시 및 숨김, 애니메이션을 위한 임시 전환 요소 추가 등 포함
- JS 바인딩을 사용하면 클라이언트에서 일반적인 UI 상호작용을 처리 가능, 서버로 왕복하거나 자체 JS를 작성할 필요 없음
- LiveView는 장황한 세부사항들을 프레임워크로 감싸주어 번거로운 일상적인 행동들을 단순화하고 필요한 도구 제공
- JS 명령어는 2분 데모에서 보여준 것 이상의 기능을 수행 가능, 사용자 상호작용에 응답해 서버로 이벤트 전송 가능
- LiveView의 JS 훅을 사용하여 더 많은 사용자 정의 JavaScript 수행 가능
- JS 바인딩을 사용하여 무한 스크롤과 같은 작업을 수행할 수 있으며, LiveView의 새로운 기능에 의해 더욱 용이
- 15.️️ 데이터 효율적 관리 LiveView로 해결
- LiveView는 JavaScript 상호작용과 우아함을 보여주는 LiveBe의 중요성을 강조
- LiveView는 대량 데이터를 서버에 저장하거나 'Phoenix update append' 기능을 사용하는 문제 해결
- LiveView 스트림을 통해 클라이언트 측에 데이터를 효율적으로 저장하고 관리
- 클라이언트 측 데이터 관리로 LiveView는 API를 노출하여 대량 데이터 처리방법 제시
- 이에 대한 예시로 메시지 삭제 기능과 간단한 코드 살펴봄
-
- 웹 개발에서 LiveView의 문제 해결과 미래 전망
- LiveView는 웹 개발 중 단일 페이지 앱을 구축할 때 발생하는 일부 가장 흔한 문제들을 해결
- 이 프레임워크는 보안, 파일 업로드, 상태 복구, 코드 구성, JS 요구 사항 및 대량 데이터 집합 작업과 같은 다양한 문제를 다룸
- LiveView는 이러한 문제들의 세부 사항을 해결하고, 간단한 API를 노출하여 솔루션을 활용하고 필요할 때 확장할 수 있도록 함
- LiveView의 선언적 성격은 웹 개발의 어려운 부분을 처리하며, 응용 프로그램의 요구 사항을 충족하는 앱 코드만 작성하면 됨
-
- VidiGo | 비디고 - Analyze Video AI
- Elixir, Phoenix LiveView & Erlang • Sophie DeBenedetto & Andrea Leopardi - YouTube
- How Phoenix LiveView Optimizes Real-Time Web Apps with Streams • Sophie DeBenedetto • GOTO 2023 - YouTube
- Phoenix auth in 2024: password auth: Go Cahoots for once — Homepage of Marcin Koziej
- Mobile app development with LiveView Native and Elixir - DEV Community
- Mobile app development with LiveView Native and Elixir. Part - 2 - DEV Community
- Mobile app development with LiveView Native and Elixir. Part - 3 - DEV Community
- Phoenix-Liveview-series-1 - YouTube
- Plugs in Elixir Phoenix Part 1. What are plugs in elixir? | by victor Mbashia | Jul, 2024 | Medium
- Mastering Phoenix Framework - Introduction - DEV Community
- Mastering Phoenix Framework - Part 1 - DEV Community
- A Complete Guide to Phoenix for Elixir Monitoring with AppSignal | AppSignal Blog
- Schemaless Validation in Phoenix. | by victor Mbashia | Dec, 2024 | Medium
- Harness PubSub for Real-Time Features in Phoenix Framework - DEV Community
- corea: Rewriting the previous COREA project using Phoenix LiveView
- doumi_phoenix_params: A helper library that supports converting form to params and params to form
- elixir-phoenix-svelte: An example repository demonstrating Elixir + Phoenix 1.7 with Svelte
- live_svelte: Svelte inside Phoenix LiveView with seamless end-to-end reactivity
- potion_shop: A vulnerable Elixir and Phoenix application for learning web security
- Plausible Analytics | Simple, privacy-friendly alternative to Google Analytics
- Plug
- pogo: Distributed supervisor for clustered Elixir applications
- rustler: Safe Rust bridge for creating Erlang NIF functions
- sentry 크래시 리포트, 에러 트래킹이 필요하면 sentry
- telemetry 소스 코드 읽기: erlang telemetry
- vecto: Hybrid Search with Postgres and Ecto
- An Introduction to Test Factories and Fixtures for Elixir | AppSignal Blog
- An Introduction to Mocking Tools for Elixir | AppSignal Blog
- Elixir for Programmers
- 대학 과정 Mastering Elixir - YouTube
- 중급 3년차 Programming Elixir 1.6 - YouTube
- 중급 3년차 Concurrent Data Processing in Elixir - YouTube
- 중급 3년차 Functional Web Development with Elixir, OTP, and Phoenix - YouTube
- 중급 3년차 하룻 만에 끝내는 Elixir 기초 - YouTube
- Mobile Convergence :: Elixir 기초 시작하기 및 타입, 연산, 함수
- 1. Elixir Motivation - YouTube
- Learn Elixir | How To Learn Elixir Free
- json_corp/apps/json_corp_web/lib/json_corp_web/live/playgrounds/chat_live.ex at main · nallwhy/json_corp