Elixir의 핫 코드 로딩을 이용한 모놀리식 애플리케이션 모듈화
2025-07-12
클라이언트당 하나의 인스턴스로 배포되는 Elixir 기반 모놀리식 애플리케이션인 Alzo는 클라이언트별 기능을 위해 Elixir와 Erlang VM의 핫 코드 로딩 기능을 활용합니다. 이를 통해 마이크로서비스로 인한 캐스케이드 오류 및 복잡한 테스트를 방지합니다. 클라이언트별 LiveView 애플리케이션은 `/alzo/lib/clients/apps`에 있으며, 시작 시 동적으로 로드됩니다. 빌드 시 클라이언트 코드가 제거되므로 메인 애플리케이션이 런타임 애플리케이션에 의존하지 않습니다. 단순화를 위해 핫 코드 업그레이드는 피합니다. 이러한 접근 방식은 효율적인 개발, 유지 관리, 확장성 및 동적 애플리케이션에서 메인 코드베이스로 공통 기능을 쉽게 리팩토링할 수 있는 기능을 제공합니다.