Skip to content

코드에서 구성

Ktor를 사용하면 호스트 주소, 포트,

서버 모듈
모듈을 사용하면 경로를 그룹화하여 애플리케이션을 구조화할 수 있습니다.
등 다양한 서버 파라미터를 코드에서 직접 구성할 수 있습니다. 구성 방식은
embeddedServer 또는 EngineMain
애플리케이션 배포 요구사항에 따라 서버를 생성하는 방법을 알아봅니다.
을 사용하는 서버 설정 방식에 따라 달라집니다.

embeddedServer를 사용하면 원하는 파라미터를 함수에 직접 전달하여 서버를 구성할 수 있습니다. embeddedServer 함수는

서버 엔진
네트워크 요청을 처리하는 엔진에 대해 알아봅니다.
, 서버가 수신할 호스트 및 포트, 추가 구성 등 서버 구성을 위한 다양한 파라미터를 허용합니다.

이 섹션에서는 embeddedServer를 실행하는 몇 가지 다른 예시를 살펴보고, 서버를 효과적으로 구성하는 방법을 설명합니다.

기본 구성

아래 코드 스니펫은 Netty 엔진과 8080 포트를 사용한 기본 서버 설정을 보여줍니다.

kotlin

port 파라미터를 0으로 설정하여 서버를 임의의 포트에서 실행할 수 있습니다. embeddedServer 함수는 엔진 인스턴스를 반환하므로, ApplicationEngine.resolvedConnectors 함수를 사용하여 코드에서 포트 값을 얻을 수 있습니다.

엔진 구성

embeddedServer 함수를 사용하면 configure 파라미터를 통해 엔진별 옵션을 전달할 수 있습니다. 이 파라미터에는 모든 엔진에 공통적으로 적용되며 ApplicationEngine.Configuration 클래스에 노출되는 옵션이 포함됩니다.

아래 예시는 Netty 엔진을 사용하여 서버를 구성하는 방법을 보여줍니다. configure 블록 내에서 호스트와 포트를 지정하기 위해 connector를 정의하고 다양한 서버 파라미터를 사용자 정의합니다.

kotlin

connectors.add() 메서드는 지정된 호스트(127.0.0.1)와 포트(8080)를 가진 커넥터를 정의합니다.

이러한 옵션 외에도 다른 엔진별 속성을 구성할 수 있습니다.

Netty

Netty 관련 옵션은 NettyApplicationEngine.Configuration 클래스에 의해 노출됩니다.

kotlin

Jetty

Jetty 관련 옵션은 JettyApplicationEngineBase.Configuration 클래스에 의해 노출됩니다.

Jetty 서버는 configureServer 블록 내에서 구성할 수 있으며, 이 블록은 Server 인스턴스에 대한 접근을 제공합니다.

idleTimeout 속성을 사용하여 연결이 닫히기 전까지 유휴 상태로 있을 수 있는 시간(기간)을 지정합니다.

kotlin

CIO

CIO 관련 옵션은 CIOApplicationEngine.Configuration 클래스에 의해 노출됩니다.

kotlin

Tomcat

Tomcat을 엔진으로 사용하는 경우, configureTomcat 속성을 사용하여 구성할 수 있으며, 이 속성은 Tomcat 인스턴스에 대한 접근을 제공합니다.

kotlin

사용자 지정 환경

아래 예시는 ApplicationEngine.Configuration 클래스로 표현되는 사용자 지정 구성을 사용하여 여러 커넥터 엔드포인트가 있는 서버를 실행하는 방법을 보여줍니다.

kotlin

전체 예시는 embedded-server-multiple-connectors 를 참조하세요.

TIP

사용자 지정 환경을 사용하여 HTTPS를 제공 할 수도 있습니다.

명령줄 구성

Ktor를 사용하면 명령줄 인수를 사용하여 embeddedServer를 동적으로 구성할 수 있습니다. 이는 포트, 호스트 또는 타임아웃과 같은 구성이 런타임에 지정되어야 하는 경우에 특히 유용합니다.

이를 위해 CommandLineConfig 클래스를 사용하여 명령줄 인수를 구성 객체로 파싱하고 구성 블록 내에서 전달합니다.

kotlin

이 예시에서 Application.ConfigurationtakeFrom() 함수는 porthost와 같은 엔진 구성 값을 오버라이드하는 데 사용됩니다. loadCommonConfiguration() 함수는 타임아웃과 같은 루트 환경에서 구성을 로드합니다.

서버를 실행하려면 다음과 같이 인수를 지정합니다.

shell

TIP

정적 구성의 경우, 구성 파일이나 환경 변수를 사용할 수 있습니다. 자세한 내용은 파일 구성 을 참조하세요.