미티어 (웹 프레임워크)
1. 개요
미티어는 2011년 Skybreak라는 이름으로 출시된 JavaScript 웹 프레임워크이다. 분산 데이터 프로토콜(DDP)을 사용하여 서버와 클라이언트 간의 실시간 데이터 동기화를 지원하며, 다양한 개발 도구와 확장 프레임워크를 제공한다. 2019년 Tiny Capital에 인수되어 Meteor Software로 이름이 변경되었다.
-
자바스크립트 웹 프레임워크 -
Next.js
Next.js는 Vercel에서 개발하고 React를 기반으로 하는 오픈 소스 웹 개발 프레임워크로, 서버 사이드 렌더링, 정적 사이트 생성, API 라우트, 이미지 최적화 등 다양한 기능을 제공하여 웹 개발 생산성과 성능을 향상시킨다. -
자바스크립트 웹 프레임워크 -
제스트 (프레임워크)
Jest는 다양한 JavaScript 환경을 지원하며 `test()`와 `expect()` 함수로 테스트 케이스를 작성하고 CLI를 통해 실행, 코드 커버리지 확인 등을 제공하는 테스팅 프레임워크이다. -
자바스크립트로 작성된 자유 소프트웨어 -
Node.js
Node.js는 라이언 달이 2009년에 개발한 자바스크립트 런타임 환경으로, 구글 크롬 V8 엔진을 기반으로 구축되었으며 이벤트 기반의 논블로킹 I/O 모델을 사용하여 확장성 있는 네트워크 애플리케이션 개발에 용이하고 웹 서버 및 네트워킹 도구 제작을 위한 다양한 코어 모듈과 npm을 통한 오픈 소스 라이브러리 활용을 제공한다. -
자바스크립트로 작성된 자유 소프트웨어 -
D3.js
D3.js는 웹 브라우저에서 데이터를 기반으로 동적인 시각화를 구현하기 위해 사용되는 자바스크립트 라이브러리로, SVG 요소 조작, 데이터-DOM 연결, 다양한 시각화 기능 및 API를 제공하여 복잡한 데이터 시각화를 효율적으로 구현하도록 돕는다. -
리치 인터넷 애플리케이션 프레임워크 -
자바FX
JavaFX는 자바 기반의 UI 구축 플랫폼으로, 다양한 플랫폼을 지원하며 풍부한 UI 기능들을 제공하고, Java 8부터 JDK에 포함되었다가 JDK 11부터 분리되어 관리된다. -
리치 인터넷 애플리케이션 프레임워크 -
마이크로소프트 실버라이트
마이크로소프트 실버라이트는 2007년에 출시되어 어도비 플래시에 대항하고자 개발된 마이크로소프트의 RIA 기술이며, 닷넷 프레임워크 기반으로 XAML을 사용해 사용자 인터페이스를 정의했으나 2021년에 지원이 종료되었다.
2. 역사
미티어는 2011년 12월, 약 8개월간의 개발을 거쳐 "스카이브레이크(Skybreak)"라는 이름으로 처음 출시되었다. 2012년 4월, 현재의 이름인 "미티어(Meteor)"로 변경되었고 공식적으로 런칭되었다.
2.1. 성장과 발전
2011년 12월, 약 8개월간의 개발 기간을 거쳐 미티어는 Skybreak라는 이름으로 처음 출시되었다. 2012년 4월, 프레임워크는 미티어로 이름이 변경되었고 공식적으로 출시되었다. 이후 몇 달 동안 Andreessen Horowitz의 대규모 투자와 스타트업 업계 유명 인사들의 지지를 받으며, 미티어는 꾸준히 사용자 기반을 확대했다. 미티어는 프로덕션 앱과 웹사이트에서 더 일반적으로 사용되게 되었다.
Series B 자금 조달 라운드에서 대규모 벤처 캐피탈을 유치한 후, 미티어는 몇몇 다른 스타트업을 인수하여 핵심 제품에 통합했다. 인수 대상에는 클라우드 데이터베이스 스타트업 FathomDB, 미티어 애플리케이션 운영 및 관리를 위한 클라우드 플랫폼 Galaxy, 성능 모니터링 솔루션 Kadira가 포함되었다. 미티어는 사용자 기반을 성공적으로 수익화했다. 2016년, 미티어는 Galaxy를 통해 미티어 앱에 대한 웹 호스팅을 제공하여 자체 수익 목표를 30% 초과 달성했다.
2016년부터 미티어를 지원하는 오픈 소스 조직인 Meteor Development Group은 전체 node.js 생태계에서 주로 격리된 pub/sub 시스템을 점진적으로 대체하기 위해 GraphQL을 기반으로 한 새로운 백엔드 레이어를 개발하기 시작했다. 이 백엔드 레이어는 Apollo 프레임워크이다.
2019년 10월, Meteor.js 오픈 소스 프레임워크와 Galaxy Hosting Products는 Tiny Capital에 인수되어 Meteor Software로 이름이 변경되었다.
2.2. 기술적 진화: Apollo 프레임워크
2016년부터 미티어를 지원하는 오픈 소스 조직인 미티어 개발 그룹(Meteor Development Group)은 GraphQL을 기반으로 한 새로운 백엔드 레이어인 Apollo 프레임워크를 개발하기 시작했다. 이는 기존의 pub/sub 시스템을 점진적으로 대체하고, 전체 node.js 생태계와의 통합을 강화하기 위한 것이었다.
3. 분산 데이터 프로토콜 (Distributed Data Protocol, DDP)
분산 데이터 프로토콜(DDP)은 서버 측 데이터베이스를 쿼리하고 업데이트하며, 이러한 업데이트를 클라이언트 간에 동기화하기 위한 클라이언트-서버 프로토콜이다. 게시-구독 메시징 패턴을 사용한다. 이는 미티어 자바스크립트 프레임워크에서 사용하기 위해 만들어졌다. DDP 명세는 깃허브에 있다.
4. 패키지 및 도구
미티어 생태계는 개발 편의성을 높이는 다양한 패키지와 도구를 제공한다. 여기에는 인앱 개발 도구, 관리 패널, 데이터베이스 주입 공격 감지 도구, React/GraphQL 스택, React Native 통합 패키지 등이 포함된다.
4.2. 확장 프레임워크
* Vulcan.js - 미티어 기반의 React/GraphQL 스택
* Apollo - 미티어를 지원하는 GraphQL 서버
* Meteor React Native - React Native와 통합하기 위한 패키지
5. 도서
대한민국에서는 http://www.kyobobook.co.kr/product/detailViewKor.laf?mallGb=KOR&ejkGb=KOR&barcode=9791160503609 미티어코딩공작소 (교보문고)를 통해 미티어를 학습할 수 있다.
| 저자 | 제목 | 출판년도 |
|---|---|---|
| 콜먼, 톰; 그리프, 사샤 | Discover Meteor영어 | 2014 |
| 호흐하우스, 스테판; 쉐벨, 마누엘 | Meteor in Action영어 | 2014 |
| 뮌스, 필립 | Auditing Meteor Applications영어 | 2016 |
| 스트랙, 아이작 | Getting started with Meteor.js JavaScript framework영어 | 2012 |
| 수시리팔라, 아루노다 | Bulletproof Meteor영어 | 2014 |
| 티타렌코, 데이비드; 로빈슨, 조쉬; 그레이, 아론 | Introducing Meteor영어 | 2015 |
| 수시리팔라, 아루노다 | Meteor Explained – A Journey Into Meteor's Reactivity영어 | 2014 |
| 턴불, 데이비드 | Your First Meteor Application: A Complete Beginner's Guide to the Meteor JavaScript Framework영어 | 2014 |