Vert.x
버텍스(Vert.X)는 이벤트 드리븐(영어: event-driven) 방식의 자바 버추얼 머신(영어: Java Virtual Machine) 위에서 동작하는 어플리케이션 프레임워크이다.
원저자 | 팀 폭스(Tim Fox) |
---|---|
개발자 | Tim Fox, VMWare, 레드햇, 이클립스 재단 |
안정화 버전 | 4.2.1
/ 2021년 11월 3일[1] |
미리보기 버전 | 4.2.2-SNAPSHOT
/ 2021년 11월 3일[2] |
저장소 | |
프로그래밍 언어 | 자바, 자바스크립트, 아파치 그루비, 루비, 스칼라, 코틀린, Ceylon, 파이썬, 클로저 |
운영 체제 | 크로스 플랫폼 |
플랫폼 | 자바 가상 머신 |
종류 | 이벤트 드리븐 네트워킹 |
라이선스 | 아파치 라이선스 버전 2.0 |
상태 | 개발 중 |
웹사이트 | vertx |
자바스크립트의 Node.js, 파이선의 Twisted, 펄의 Perl Objected Environment, C의 libevent, PHP의 reactPHP 나 amphp 그리고 루비의 EventMachine 등과 비슷하다.
예제
편집"Hello from Vert.x!"를 서비스하는 웹 서버는 자바로 작성이 가능하다:
import io.vertx.core.AbstractVerticle;
public class Server extends AbstractVerticle {
public void start() {
vertx.createHttpServer().requestHandler(req -> {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}).listen(8080);
}
}
자바스크립트로는 다음과 같다:
vertx.createHttpServer()
.requestHandler(function (req) {
req.response()
.putHeader("content-type", "text/plain")
.end("Hello from Vert.x!");
}).listen(8080);
특징
편집- Scale: 버텍스는 이벤트 드리븐([3]), 논 블럭킹(non blocking) 방식이다. 이로써 적은 커널 쓰레드를 사용하여 여러 동시성을 확보할 수 있다.
- Polyglot: Java, JavaScript, Groovy, Ruby, Ceylon, Scala, Kotlin 등의 여러 언어에서 사용가능하다.
각주
편집- ↑ “Eclipse Vert.x 4.2.1”. 《GitHub》. 2021년 12월 13일에 확인함.
- ↑ “Eclipse Vert.x 4.2.2”. 2021년 12월 13일에 확인함.
- ↑ event driven