관리 메뉴

피터의 개발이야기

[Kotlin] Ktor 샘플 프로젝트 생성과정, 10분 미만 본문

Programming/Kotlin

[Kotlin] Ktor 샘플 프로젝트 생성과정, 10분 미만

기록하는 백앤드개발자 2024. 6. 24. 10:10
반응형

ㅁ 들어가며

ㅇ 지난 글, Ktor란?을 정리하였다.

# 요약
- Ktor는 JetBrains에서 개발한 Kotlin 전용 웹 개발 프레임워크로, 서버와 클라이언트 앱 개발을 모두 지원하며 코루틴 기반의 비동기 처리를 제공한다.
- Ktor의 주요 특징으로는 경량성, 코루틴 지원, 모듈형 아키텍처, 다양한 플랫폼 지원, 사용 편의성이 있다.
- Spring과 비교했을 때 Ktor는 부팅 속도가 빠르고 리소스 사용량이 적어, 마이크로서비스 아키텍처와 빠른 개발 및 배포가 필요한 상황에 적합하다.

 

ㅁ 프로젝트 생성

ㅇ ktor로 이동하고 Start를 클릭

 

 

ㅇ ktor-peterica로 프로젝트 이름 입력

 

ㅇ  add plugin: Ktor Swagger-UI을 선택하니 의존성이 있는 Routing과 Webjars가 자동으로 등록되었다.

ㅇ Generate project 버튼을 클릭한다.

ㅇ 압축파일을 다운받아 인텔리제이로 프로젝트를 오픈한다.

 

ㅁ 인텔리제이로 실행

ㅇ 프로젝트를 오픈하고 Gradle > Tasks > application > run 클릭

ㅇ 정상적으로 서버가 기동되었다.

 

ㅁ 웹 접속

ㅇ http://localhost:8080으로 접속 성공

 

ㅇ http://localhost:8080/swagger-ui/index.html로 접속하여 swagger 화면을 테스트 하였다.

 

ㅁ 소스 분석

package com.example

import com.example.plugins.*
import io.ktor.server.application.*

fun main(args: Array<String>) {
    io.ktor.server.netty.EngineMain.main(args)
}

fun Application.module() {
    configureRouting()
}

ㅇ main에 모듈로 configureRouting()이 세팅되어 있다.

 

package com.example.plugins

import io.github.smiley4.ktorswaggerui.SwaggerUI
import io.ktor.http.*
import io.ktor.server.application.*
import io.ktor.server.application.Application
import io.ktor.server.application.install
import io.ktor.server.response.*
import io.ktor.server.routing.*
import io.ktor.server.webjars.*

fun Application.configureRouting() {
    install(Webjars) {
        path = "/webjars" //defaults to /webjars
    }
    install(SwaggerUI) {
        swagger {
            swaggerUrl = "swagger-ui"
            forwardRoot = true
        }
        info {
            title = "Example API"
            version = "latest"
            description = "Example API for testing and demonstration purposes."
        }
        server {
            url = "http://localhost:8080"
            description = "Development Server"
        }
    }
    routing {
        get("/") {
            call.respondText("Hello World!")
        }
        get("/webjars") {
            call.respondText("<script src='/webjars/jquery/jquery.js'></script>", ContentType.Text.Html)
        }
    }
}

ㅇ Swagger와 2개의 API를 세팅하는 소스의 전부이다.

 

ㅁ Ktor 샘플 소스

$ git clone https://github.com/ktorio/ktor-documentation.git

ㅇ Ktor의 문서에 소개된 다양한 샘플 소스를 다운받을 수 있다.

 

ㅇ 서버와 클라이언트 외에도 로깅, simulate-slow-server 등 개발에 필요할 법한 소스를 확인할 수 있었다.

 

ㅁ 마무리

 플러그인 설정하고 소스 다운받아 실행하는데 10분도 걸리지 않았다. 서버개발의 신속성과 편의성이 좋았다. Ktor는 백엔드 개발자 뿐만 아니라 클라이언트 개발자도 필요에 따라 서버를 자신이 쉽게 만들 수 있는 프레임워크라고 생각한다.

 

작업했던 소스는 이곳에 있다. 

 

ㅁ 함께 보면 좋은 사이트

ktor 홈페이지

Ktor란?

 

반응형
Comments