Ktor(케이터)는 코틀린으로 작성하는 서버라고 정의 할수있습니다.
Ktor를 사용하면 클라이언트쪽도 작업을 할수 있습니다.
Ktor는 서버와 클라이언트 둘 다 사용할수있습니다.
Ktor공식사이트
먼저
시작하기 앞서 Ktor를 코틀린 백엔드라고도 할수 있지만 정확히는 server framework입니다. 사실 서버용이라기보다는 각 application간 connection을 쉽게 만들어주기 위한 framework으로 web applications, HTTP service, mobile application, browser application 등을 모두를 지원합니다.
다른 또 하나의 특징은 비동기적인 네트워크 기능과 코루틴 기반의 빠른 처리 속도를 특징으로 합니다.
그 특징의 종류로는
쉬운 구성
Ktor는 간단한 구성을 제공합니다. 애플리케이션을 생성하고 라우팅을 설정하는 것만으로도 웹 애플리케이션을 만들 수 있습니다.
비동기적인 네트워크 기능
Ktor는 비동기적인 네트워크 기능을 지원합니다. 이를 통해 높은 처리 속도와 성능을 달성할 수 있습니다.
코루틴 기반의 빠른 처리 속도
Ktor는 코루틴을 사용하여 비동기적인 처리를 수행합니다. 이를 통해 빠른 처리 속도를 달성할 수 있습니다.
모듈화된 설계
Ktor는 모듈화된 설계를 제공합니다. 이를 통해 필요한 기능만 선택적으로 추가할 수 있습니다.
다양한 클라이언트와 서버 엔진 지원
Ktor는 다양한 클라이언트와 서버 엔진을 지원합니다. 예를 들어, Netty, Jetty, Undertow와 같은 서버 엔진과 HTTP 클라이언트, WebSocket 클라이언트 등을 지원합니다.
Ktor는 이러한 특징을 바탕으로 경량화된 웹 프레임워크로서 널리 사용되고 있습니다. 또한, Kotlin 언어를 사용하여 개발되었기 때문에 Kotlin의 특징을 적극적으로 활용할 수 있습니다.
Ktor와 Retrofit은 모두 안드로이드에서 HTTP 클라이언트를 구현하는 데 사용되는 라이브러리입니다. 하지만 둘 사이에는 몇 가지 차이점이 있습니다.
-Retrofit은 Square사에서 개발된 라이브러리로, 안드로이드 앱에 최적화되어 있습니다. Ktor는 JetBrains사에서 개발한 라이브러리로, 안드로이드 외에도 다른 플랫폼에서 사용할 수 있습니다.
-Retrofit은 주로 JSON 기반의 REST API를 처리하는 데 사용됩니다. Ktor는 REST API 외에도 다른 유형의 HTTP 요청을 처리할 수 있습니다.
-Retrofit은 Java와 Kotlin 모두에서 사용할 수 있지만, Ktor는 Kotlin에서만 사용할 수 있습니다.
-Retrofit은 인터페이스 기반의 쉬운 API를 제공합니다. Ktor는 DSL(Domain Specific Language)을 사용하여 HTTP 요청 및 응답을 구성할 수 있습니다.
이러한 차이점이 있고
호환성 측면에서, Retrofit은 안드로이드 앱 개발에 적합한 라이브러리이며, 안드로이드와의 호환성이 뛰어나지만 Ktor는 멀티플랫폼 개발을 고려할 때 유용합니다. 또한, Retrofit과 Ktor는 모두 OkHttp 클라이언트를 기본적으로 사용하기 때문에, OkHttp 인터셉터 및 다른 기능들을 함께 사용할 수 있습니다. Retrofit과 Ktor는 비슷한 작업을 수행하지만, 각각의 특성에 따라 상황에 맞쳐서 사용하시면 됩니다.
build.gradle
implementation "io.ktor:ktor-client-core:1.6.3"
implementation "io.ktor:ktor-client-android:1.6.3"
implementation "io.ktor:ktor-client-serialization:1.6.3"
implementation "io.ktor:ktor-client-logging:1.6.3"
implementation "io.ktor:ktor-client-gson:1.6.3"
Manifast
<uses-permission android:name="android.permission.INTERNET" />