Ext JS는 Sencha(초기에는 YUI Extensions와 같은 명칭으로 시작)에서 개발한 자바스크립트 기반 웹 애플리케이션 프레임워크이다. 2006년에 첫 번째 버전이 공개된 이후, Rich Internet Application(RIA) 구현을 목표로 컴포넌트 기반 UI 도구와 데이터 관리 기능을 제공한다.
주요 특징
- 컴포넌트 중심 구조 : 그리드, 트리, 폼, 차트 등 다양한 UI 위젯을 클래스로 제공하며, 이러한 위젯을 조합해 복잡한 인터페이스를 구축할 수 있다.
- MVC/MVVM 아키텍처 지원 : 모델‑뷰‑컨트롤러(MVC)와 모델‑뷰‑뷰모델(MVVM) 패턴을 공식적으로 지원해 애플리케이션 로직과 UI를 분리한다.
- 데이터 스토어와 프로시저 :
Ext.data.Store와Ext.data.Model을 통해 원격 데이터 소스(REST, JSON, XML 등)와의 연동을 단순화한다. - 테마와 레이아웃 시스템 : 사전 정의된 테마와 유연한 레이아웃 매니저를 제공해 다양한 화면 해상도와 디바이스에 대응한다.
- 툴링 : Sencha Cmd, Sencha Architect 등 빌드·배포·시각적 설계 도구와 연동한다.
역사와 배포
| 연도 | 주요 사건 |
|---|---|
| 2006 | Ext JS 1.0 공개 (YUI Extensions에서 분리) |
| 2008 | Ext JS 2.0 출시, 클래스 시스템 및 모듈화 도입 |
| 2011 | Sencha가 Ext JS 프로젝트를 인수하고, Ext JS 4.0 발표 |
| 2014 | Ext JS 5.x에서 현대적인 클래스 시스템 및 ES6 호환성 강화 |
| 2020 이후 | Ext JS 6.x와 7.x에서 타입스크립트 선언 파일 제공, 최신 브라우저와의 호환성 유지 |
라이선스
- 상용 라이선스 : 기업용 제품에 대한 상업적 이용은 Sencha와의 계약을 통해 라이선스를 구매해야 한다.
- 오픈소스 : 과거에는 GPLv3 라이선스로 배포되었으나, 현재 최신 버전은 상용 라이선스와 별도로 커뮤니티(Free) 버전이 제공된다.
사용 사례
- 기업 내부 관리 시스템(ERP, CRM)
- 대시보드 및 데이터 시각화 도구
- 복잡한 폼 및 워크플로우가 필요한 웹 포털
관련 기술
- Sencha Touch : 모바일 전용 UI 프레임워크(이후 Ext JS와 통합)
- ExtReact, ExtAngular, ExtVue : 각각 React, Angular, Vue와 연동되는 Ext JS 기반 UI 컴포넌트 라이브러리
참고 사항
Ext JS는 풍부한 기능을 제공하지만, 초기 로드 시 파일 크기가 크고, 학습 곡선이 비교적 가파른 편이다. 따라서 프로젝트 규모와 팀 역량을 고려해 도입 여부를 판단한다.