2018년 11월 19일
우리가 Kotlin을 개발하면서, 관용적이고 고성능 API를 만들 수 있도록 도와주는 많은 기능을 구현해 왔습니다. 우리는 이러한 기능을 최대한 활용하는 웹 프레임워크를 만드는 것을 꿈꿔왔습니다. 오늘, 우리는 그런 종류의 프레임워크를 만들었다고 말할 수 있습니다! Ktor를 환영해 주세요. 이제 Ktor는 1.0 버전에 도달했습니다.
Ktor는 연결된 시스템에서 비동기 서버 및 클라이언트를 구축하기 위한 Kotlin 프레임워크입니다. Kotlin 팀에 의해 생성되고 있으며, 따라서 훌륭한 개발자 경험과 우수한 런타임 성능을 제공하기 위해 언어를 최대한 활용합니다.
Ktor는 코루틴을 사용하여 처음부터 구축되었으며, 이로써 복잡한 비동기 구조를 단순한 순차적 코드처럼 표현할 수 있게 되었습니다. 런타임에서도 코루틴은 상당히 효율적입니다. 또한 Kotlin 기능을 사용하여 코드가 아닌 마법이 없는 간결하고 개발자 친화적인 API를 제공하는 도메인 특화 언어(DSL)를 제공할 수 있습니다.
물론 Ktor는 Kotlin에서 서버 측 애플리케이션을 빌드하기 위한 유일한 옵션이 아닙니다. Spring 및 Vert.x와 같은 다른 프레임워크가 Kotlin을 완벽하게 지원하고 있음을 보는 것은 기쁩니다. 이러한 프레임워크를 사용하면 기존 투자와 경험을 보존하는 훌륭한 방법입니다. 동시에 Ktor는 코루틴과 DSL을 사용하는 고유한 이점을 제공하여 새로운 백엔드 프로젝트나 마이크로서비스를 시작할 때 훌륭한 옵션이 됩니다.
Ktor는 이미 다수의 대규모 프로젝트에서 운영 환경에서 배포되었습니다. 예를 들어, HLTV.org는 Ktor에서 약 2억 건의 페이지 뷰를 매월 처리하고 총 31억 건의 페이지 뷰를 처리합니다. ThoughtWorks Technology Radar의 최신 릴리스에서는 Ktor를 평가 범주에 포함시켰습니다.
포함된 내용
Ktor의 두 가지 주요 부분은 JVM에서 실행되는 HTTP 서버 프레임워크와 멀티플랫폼 HTTP 클라이언트입니다. JetBrains 프로젝트로서, Ktor는 새로운 프로젝트를 빠르게 시작할 수 있도록 도와주는 유용한 도구와 함께 제공됩니다.
서버
HTTP 서버 부분은 Netty, Jetty 및 Java 서블릿과 같은 검증된 기술을 기반으로 구축되었습니다. Netty 또는 Jetty와 같은 가벼운 엔진을 사용할 때, 초고속으로 시작하고 1초 미만으로 연결을 받을 준비가 됩니다. 12요소 패러다임과 호환되며 컨테이너 친화적이며 데스크톱(또는 Android) 애플리케이션에 임베드할 수 있습니다. 또한 Tomcat과 같은 애플리케이션 서버에서 실행할 수도 있습니다.
Ktor는 풍부하고 사용하기 쉬운 확장성 메커니즘을 제공하며, 대부분의 내장 기능은 이 위에 구현되었습니다. 서드파티 기능은 내장 기능과 별반 다르지 않습니다. 기본적으로 Ktor에는 세션, 인증, JSON 직렬화, 인기있는 템플릿 엔진, 웹 소켓, 메트릭 및 기타 여러 가지 필수 기능이 포함되어 있습니다. 또한 빠른 시작, 자동 리로딩 및 단위 및 통합 테스트 작성을 위한 사용하기 쉬운 기능을 제공하여 생산적인 개발 워크플로를 지원합니다.
클라이언트
클라이언트 부분은 비동기로 구현되었으며, 서버를 구동하는 데 사용되는 코루틴 및 IO 원시 자료를 동일하게 사용합니다. 이로써 모든 백엔드 기능을 비동기 파이프라인으로 연결하여 비동기 마이크로서비스 아키텍처를 구축하는 데 이상적입니다.
클라이언트는 멀티플랫폼 라이브러리로 구현되어 있으며, 현재 JVM, JS, Android 및 iOS를 지원합니다. 이로써 모바일 디바이스 및 웹 페이지에서 데이터를 균일한 방식으로 검색할 수 있으며, 응용 프로그램 실행을 차단하지 않거나 성공 또는 실패를 처리하기 위한 복잡한 익명 함수 체인을 구축하지 않고도 가능합니다.
도구
마지막으로, 도구를 사용하면 필요한 기능을 선택하고 Ktor를 사용하여 완전한 시작 앱을 얻을 수 있습니다. 이것은 웹 및 IntelliJ IDEA 플러그인을 통해 작동합니다.
Ktor와 마찬가지로 다른 Kotlin 라이브러리와 마찬가지로 Ktor는 무료 및 오픈 소스이며, GitHub에서 개발되었으며 Apache 2 라이선스로 출시되었습니다.
시작하기
Ktor의 Hello World는 한 트윗에 들어갈 만큼 작습니다:
fun main() {
embeddedServer(Netty, port = 8080) {
routing {
get("/") {
call.respondText("Hello World!")
}
}
}.start(wait = true)
}
더 많은 내용을 공유하기 위해 웹 사이트에서 퀵스타트 가이드, 서버 및 클라이언트 작성을 위한 상세 문서 및 다양한 샘플 프로젝트를 제공합니다. 비디오를 선호하는 경우 Ryan Harter의 KotlinConf 2018 토크는 백엔드에서 Ktor를 사용하는 소개로 좋은 자료입니다.
https://start.ktor.io/ 로 이동하여 프로젝트 템플릿을 얻고 문서를 확인하면 새로운 백엔드가 즉시 실행됩니다! 도움이 필요한 경우 Kotlin Slack의 #ktor 채널에서 친절한 동료들이 도와줄 것입니다.
좋은 Ktor를 이용하세요!
원문
'Kotlin > Release Notes' 카테고리의 다른 글
[Kotlin Release Notes] Kotlin 1.3.30 released (0) | 2023.09.07 |
---|---|
[Kotlin Release Notes] Kotlin 1.3.20 released (0) | 2023.09.07 |
[Kotlin Release Notes] Kotlin 1.3 Released with Coroutines, Kotlin/Native Beta, and more (0) | 2023.09.06 |
[Kotlin Release Notes] KotlinConf 2018 Announcements (0) | 2023.09.06 |
[Kotlin Release Notes] Kotlin 1.3 RC is Here: Migrate Your Coroutines! (1) | 2023.09.06 |
댓글