JVM과 안드로이드 개발에서 자바 언어의 대안으로 떠오르고 있는 코틀린(Kotlin)이 여러 개발 프ㅔ임워크의 지원을 받으며 빅리그에 입성할 조짐을 보이고 있다. 예를 들어, 스프링 프레임워크도 이제 코틀린을 지원한다. 코틀린을 지원하는 자바린(Javalin), Ktor 같은 새로운 프레임워크도 있다.
피보탈의 스프링 프레임워크는 의존성 주입(Dependency Injection)을 특징으로 하는 믿을만한 자바 프레임워크로 잘 알려져 있는데, 올해 출시된 스프링 5.0부터 코틀린을 지원한다. 스프링 5.0은 코틀린 기능을 스프링 자체에 추가했을 뿐만 아니라 코틀린 확장 프로그램을 지원하고, 유틸리티 클래스에 대한 대안과 코틀린 전용 클래스 계층 구조를 제공한다.
스프링 5.0의 코틀린용 DSL(Domain-Specific Language) 라우팅은 개발자가 스프링 펑셔널 웹 API를 사용해 스프링 웹 프레임워크에 액세스할 수 있도록 해 준다. 또한 스프링 부트(Spring Boot) 기술을 이용한 주석 기반 애플리케이션을 작성해 프로덕션용 스탠드얼론 스프링 애플리케이션을 구축하는 데도 코틀린을 사용할 수 있다.
이클립스 파운데이션의 Vert.X JVM 프레임워크는 3.5버전부터 코틀린 동시 실행 루틴을 지원해 비동기화 이벤트나 이벤트 처리용으로 사용할 수 있다. 기업 환경과 웹 개발 환경을 지향하는 Vert.X는 이벤트 중심의 논블러킹 프레임워크로, 적은 수의 쓰레드와 대규모 환경에서 동시 실행을 처리할 수 있다.
자바 개발용 웹 프레임워크인 스파크(아파치 스파크 프로젝트와 혼동하지 말기 바란다)는 코틀린 DSL을 추가했다. REST API 구축용으로 사용할 수 있을 뿐만 아니라 템플릿 엔진도 지원한다. 마이크로수프 개발용으로 스파카는 10줄 미만의 코드로 JSON을 서비스할 수 있다. 스파크는 코틀린과 자바 개발자가 선언 구문을 통해 최소한의 보일러플레이트 코드로 웹 애플리케이션을 구축할 수 있는 장소를 제공한다.
코틀린 개발사 젯브레인즈(JetBrains)가 개발한 Ktor 프레임워크는 코틀린의 강력한 형식 지정 특성을 수용해 형식 지정 엔드포인트와 플랫폼에 공유된 클래스와의 데이터 교환 기능을 제공한다. Ktor는 커넥티드 애플리케이션 개발용 멀티플랫폼 애플리케이션 프레임워크를 제공한다. 파이프라인 기능과 API는 코틀린의 코루틴을 사용하며, 비동기 프로그래밍 모델을 지원한다. Ktor API는 주로 람다를 포함한 함수 호출이다.
11월 초에 안정적인 1.0 버전이 발표된 자바린(Javalin)은 경량화된 코틀린 및 자바용 웹 프레임워크로, 스파크와 코아(Koa) 웹 프레임워크의 영향을 받았다. 자바린은 온전한 프레임워크가 아니라 REST API 라이브러리이로, 코트린을 기반으로 하지만 몇몇 기능 인터페이스는 자바로 작성됐다.
자바린에는 MVC(model-view-controller) 개념이 없으며, 대신 템플릿 엔진, 웹소켓, 정적 파일 서비스를 지원한다. 자바린은 또한 내장 제티(Jetty) 서버, 템플릿과 마크다운 렌더링도 갖추고 있다. editor@itworld.co.kr