아파치 플렉스

아파치 플렉스

아파치 플렉스(영어: Apache Flex)는 웹·데스크톱·모바일 애플리케이션을 위한 오픈소스 SDK(Software Development Kit)이며, 주로 Adobe Flash 플랫폼용 리치 인터넷 애플리케이션(RIA)을 개발하기 위해 사용되었다. 현재는 HTML5, JavaScript, WebAssembly 등 다양한 타겟으로 컴파일 할 수 있는 확장성을 제공한다. 아파치 플렉스는 2004년 Adobe에 의해 “Adobe Flex”라는 이름으로 처음 발표되었으며, 2011년 Adobe가 프로젝트를 오픈소스로 전환하고 Apache Software Foundation에 기부함으로써 “Apache Flex”로 재탄생하였다.


개요

  • 공식 명칭: Apache Flex
  • 개발 조직: Apache Software Foundation (ASF)
  • 주요 언어: ActionScript 3, MXML (XML 기반 UI 선언 언어)
  • 지원 플랫폼: Adobe Flash Player, Adobe AIR, HTML5 (Apache Royale를 통한 변환)
  • 라이선스: Apache License 2.0 (오픈소스)
  • 최신 버전: 4.16.1 (2023년 11월 기준)

아파치 플렉스는 UI 컴포넌트와 레이아웃, 데이터 바인딩, 국제화(I18N) 등을 지원하는 고수준 프레임워크이며, MVC(Model‑View‑Controller) 패턴을 기반으로 한 구조적 개발을 촉진한다.


역사

연도 사건
2004 Adobe가 Flex 1.0을 발표, Flash 기반 RIA 개발 도구로 출시
2006 Flex 2.0 출시, Flash Builder(당시 Flex Builder)와 통합
2007 Flex 3.0 출시, 컴포넌트 라이브러리와 스킨 지원 강화
2011 Adobe가 Flex 소스 코드를 Apache 재단에 기부, 프로젝트 명을 “Apache Flex”로 변경
2012 Apache Flex 4.0 정식 릴리즈, 빌드 툴인 Ant 기반 Flex SDK 제공
2014 Flex 4.6 출시, ActionScript 3와 MXML의 최신 사양 지원
2017 “Apache Royale”(구 FlexJS) 프로젝트 시작, HTML5/JS 타깃 지원 확대
2020‑2023 지속적인 보안 패치 및 HTML5/WebAssembly 지원 강화

주요 특징

  1. 다중 타깃 컴파일

    • 기본적으로 SWF(Flash)와 AIR 어플리케이션을 생성하지만, Apache Royale를 이용하면 동일한 소스 코드를 HTML5/JavaScript 코드로 변환 가능.
  2. MXML 기반 UI 선언

    • XML 형식의 마크업 언어인 MXML을 사용해 UI 구성요소를 선언형으로 정의한다. 이는 UI와 로직을 분리하는 데 유리하다.
  3. 풍부한 컴포넌트 라이브러리

    • Spark 및 MX 컴포넌트 집합을 제공하여 데이터 그리드, 차트, 트리, 리스트 등 다양한 UI 위젯을 손쉽게 활용할 수 있다.
  4. 데이터 바인딩

    • 양방향 데이터 바인딩 메커니즘을 제공해 UI와 데이터 모델 간 동기화를 자동화한다.
  5. 국제화 및 접근성

    • 다국어 지원을 위한 리소스 번들, 오른쪽‑왼쪽(LTR/RTL) 레이아웃, 스크린 리더 호환성을 기본 제공한다.
  6. 빌드 및 배포 도구

    • Apache Ant 기반 flex-sdk 명령줄 도구, Maven, Gradle 플러그인 등 다양한 빌드 시스템과 통합 가능하다.

사용 예시

<!-- Sample MXML file: HelloWorld.mxml -->
<?xml version="1.0" encoding="utf-8"?>
<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"
               xmlns:s="library://ns.adobe.com/flex/spark"
               minWidth="400" minHeight="300">
    <fx:Script>
        <![CDATA[
            import mx.controls.Alert;
            private function sayHello():void {
                Alert.show("안녕, 아파치 플렉스!");
            }
        ]]>
    </fx:Script>

    <s:Button label="클릭" click="sayHello()"/>
</s:Application>

위 코드는 Spark 버튼을 포함한 간단한 Flex 애플리케이션을 정의한다. mxmlc 명령을 사용해 컴파일하면 SWF 파일이 생성된다.


라이선스

아파치 플렉스는 Apache License 2.0 하에 배포된다. 이는 상업적 이용, 수정, 재배포가 자유롭고 특허 권리 보장을 포함한다. 따라서 기업·개인 모두에게 비용 부담 없이 활용할 수 있다.


관련 프로젝트

  • Apache Royale (구 FlexJS) – Flex SDK를 기반으로 HTML5/JavaScript 애플리케이션을 생성하도록 확장한 프로젝트.
  • Adobe AIR – 플렉스 애플리케이션을 데스크톱·모바일 네이티브 패키지로 배포할 수 있게 해주는 런타임.
  • Flash Builder – Eclipse 기반 IDE로, Flex 개발을 위한 편집·디버깅·프로파일링 기능을 제공한다. (현재는 유지보수 단계)

참고 문헌

  1. Apache Flex Project. Apache Flex Documentation. https://flex.apache.org (2023).
  2. Adobe Systems Incorporated. Flex 4.6 Reference Guide. Adobe Press, 2014.
  3. Krill, Paul. “Apache Flex moves into the open‑source era.” InfoWorld, 2011년 11월 8일.
  4. “Apache Royale – Flex to HTML5.” Apache Software Foundation, 2022년 6월 업데이트.

외부 링크

  • 공식 사이트: https://flex.apache.org
  • GitHub 저장소: https://github.com/apache/flex-sdk
  • Apache Royale: https://royale.apache.org

본 항목은 2026년 2월 현재를 기준으로 작성되었으며, 향후 버전 업데이트や 프로젝트 진행 상황에 따라 내용이 변동될 수 있다.

둘러보기

더 찾아볼 만한 주제