[kotlin] 코틀린 웹 서버 개발에서의 REST API 구현 방법

코틀린은 인기있는 프로그래밍 언어로, 웹 서버 개발에도 많이 사용됩니다. 이번 포스트에서는 코틀린을 활용하여 REST API를 구현하는 방법에 대해 알아보겠습니다.

1. 의존성 설정

먼저, 프로젝트에서 사용할 라이브러리를 설정해야 합니다. 코틀린 웹 서버 개발을 위해 일반적으로 사용되는 라이브러리는 Ktor입니다. build.gradle 파일에 다음 의존성을 추가해주세요.

dependencies {
    implementation "io.ktor:ktor-server-netty:1.6.3"
    implementation "io.ktor:ktor-jackson:1.6.3"
}

위의 의존성은 Ktor의 서버 및 Jackson 라이브러리를 사용하는 것을 의미합니다.

2. REST API Endpoint 정의

다음으로, REST API의 엔드포인트를 정의해야 합니다. Ktor는 라우팅을 쉽게 정의할 수 있는 기능을 제공합니다. 아래는 간단한 예시입니다.

import io.ktor.application.*
import io.ktor.features.ContentNegotiation
import io.ktor.jackson.jackson
import io.ktor.routing.*
import io.ktor.server.netty.*

fun Application.module() {
    install(ContentNegotiation) {
        jackson { }
    }

    routing {
        get("/api/hello") {
            call.respondText("Hello, World!")
        }
        
        post("/api/users") {
            val user = call.receive<User>()
            // 사용자 생성 로직
        }
    }
}

data class User(val name: String, val age: Int)

위의 코드에서는 /api/hello 엔드포인트로 GET 요청이 들어오면 “Hello, World!”를 응답으로 반환하고, /api/users 엔드포인트로 POST 요청이 들어오면 받은 사용자 정보를 사용하여 사용자를 생성하는 로직을 추가할 수 있습니다.

3. 서버 실행

마지막으로, 서버를 실행해야 합니다. Ktor는 다양한 서버 엔진을 지원하며, 여기서는 Netty를 사용하도록 하겠습니다. 아래는 서버를 실행하는 간단한 예시입니다.

fun main() {
    embeddedServer(Netty, port = 8080, module = Application::module).start(wait = true)
}

위의 코드는 8080 포트에서 서버를 실행하는 예시입니다. 이제 main 함수를 실행하면 서버가 시작됩니다.

마무리

이번 포스트에서는 코틀린을 사용하여 REST API를 구현하는 간단한 방법을 알아보았습니다. Ktor를 통해 더 많은 기능을 활용하여 웹 서버를 개발할 수 있으니 관심있는 분들은 공식 문서를 참고해보시기 바랍니다.