버텍스(Vert.X)는 이벤트 드리븐(영어: event-driven) 방식의 자바 버추얼 머신(영어: Java Virtual Machine) 위에서 동작하는 어플리케이션 프레임워크이다.

Vert.x
원저자팀 폭스(Tim Fox)
개발자Tim Fox, VMWare, 레드햇, 이클립스 재단
안정화 버전
4.2.1 / 2021년 11월 3일(2년 전)(2021-11-03)[1]
미리보기 버전
4.2.2-SNAPSHOT / 2021년 11월 3일(2년 전)(2021-11-03)[2]
저장소
프로그래밍 언어자바, 자바스크립트, 아파치 그루비, 루비, 스칼라, 코틀린, Ceylon, 파이썬, 클로저
운영 체제크로스 플랫폼
플랫폼자바 가상 머신
종류이벤트 드리븐 네트워킹
라이선스아파치 라이선스 버전 2.0
상태개발 중
웹사이트vertx.io

자바스크립트의 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);

특징 편집

  1. Scale: 버텍스는 이벤트 드리븐([3]), 논 블럭킹(non blocking) 방식이다. 이로써 적은 커널 쓰레드를 사용하여 여러 동시성을 확보할 수 있다.
  2. Polyglot: Java, JavaScript, Groovy, Ruby, Ceylon, Scala, Kotlin 등의 여러 언어에서 사용가능하다.

각주 편집

  1. “Eclipse Vert.x 4.2.1”. 《GitHub. 2021년 12월 13일에 확인함. 
  2. “Eclipse Vert.x 4.2.2”. 2021년 12월 13일에 확인함. 
  3. event driven

외부 링크 편집