[kotlin] Ktor HTML 라이브러리 데이터 처리

코틀린 기반의 Ktor 프레임워크는 경량화된 멀티 플랫폼 서버 프레임워크로, HTML을 통해 간단하게 데이터를 처리할 수 있습니다.

Ktor 백엔드 서버 설정

먼저 build.gradle 파일에 아래와 같이 Ktor 라이브러리를 추가합니다.

dependencies {
    implementation("io.ktor:ktor-server-netty:$ktor_version")
    implementation("io.ktor:ktor-html-builder:$ktor_version")
}

이제 다음 코드로 백엔드 서버를 설정하고 HTML을 렌더링하는 라우트를 추가할 수 있습니다.

import io.ktor.application.*
import io.ktor.html.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import kotlinx.html.*

fun main() {
    embeddedServer(Netty, port = 8080) {
        routing {
            get("/") {
                val data = "Hello, World"
                call.respondHtml {
                    head {
                        title { +"Ktor HTML 예제" }
                    }
                    body {
                        h1 { +"환영합니다" }
                        p { +data }
                    }
                }
            }
        }
    }.start(wait = true)
}

위의 코드는 http://localhost:8080 에 접속하면 “환영합니다”와 “Hello, World” 메시지가 표시되는 간단한 웹 페이지를 렌더링합니다.

Ktor HTML 빌더를 사용하여 HTML 코드를 렌더링하고, 서버의 Get 요청에 대한 응답으로 HTML을 반환합니다.

데이터 처리

클라이언트로부터 받은 데이터를 처리하여 동적인 HTML을 생성하려면 call.receiveParameters() 함수를 사용합니다.

예를 들어, POST 요청으로 받은 데이터를 처리하여 HTML에 표시하는 코드는 다음과 같습니다.

post("/submit") {
    val name = call.receiveParameters()["name"]
    call.respondHtml {
        head {
            title { +"제출 완료" }
        }
        body {
            h1 { +"제출 완료" }
            p { +"제출한 이름: $name" }
        }
    }
}

이를 통해 클라이언트로부터 받은 이름을 HTML 페이지에 동적으로 표시할 수 있습니다.

마무리

Ktor를 사용하여 HTML을 렌더링하고, 클라이언트로부터 받은 데이터를 처리하고 동적인 HTML을 생성하는 방법에 대해 알아보았습니다. Ktor의 강력한 기능을 활용하여 다양한 웹 어플리케이션을 개발할 수 있습니다.