코드로 설정하기
코드로 설정하기
Ktor를 사용하면 호스트 주소, 포트,
embeddedServer를 사용하면 원하는 파라미터를 함수에 직접 전달하여 서버를 설정합니다. embeddedServer 함수는
이 섹션에서는 embeddedServer를 실행하는 여러 가지 예시를 살펴보며 서버를 유용하게 설정하는 방법을 설명합니다.
기본 설정
아래 코드 스니펫은 Netty 엔진과 8080 포트를 사용하는 기본 서버 설정을 보여줍니다.
port 파라미터를 0으로 설정하면 서버를 무작위 포트에서 실행할 수 있습니다. embeddedServer 함수는 엔진 인스턴스를 반환하므로, ApplicationEngine.resolvedConnectors 함수를 사용하여 코드에서 포트 값을 가져올 수 있습니다.
엔진 설정
embeddedServer 함수를 사용하면 configure 파라미터를 통해 엔진 전용 옵션을 전달할 수 있습니다. 이 파라미터에는 모든 엔진에 공통적인 옵션이 포함되어 있으며, ApplicationEngine.Configuration 클래스에 의해 노출됩니다.
아래 예시는 Netty 엔진을 사용하여 서버를 설정하는 방법을 보여줍니다. configure 블록 내에서 호스트와 포트를 지정하기 위한 connector를 정의하고 다양한 서버 파라미터를 커스터마이징합니다.
connectors.add() 메서드는 지정된 호스트(127.0.0.1)와 포트(8080)로 커넥터(connector)를 정의합니다.
이러한 옵션 외에도 다른 엔진 전용 속성을 설정할 수 있습니다.
Jetty
Jetty 전용 옵션은 JettyApplicationEngineBase.Configuration 클래스에 의해 노출됩니다.
configureServer 블록 내에서 Jetty 서버를 설정할 수 있으며, 이 블록은 Server 인스턴스에 대한 접근을 제공합니다.
idleTimeout 속성을 사용하여 연결이 닫히기 전까지 유휴 상태로 유지될 수 있는 시간을 지정합니다.
Tomcat
Tomcat을 엔진으로 사용하는 경우, configureTomcat 속성을 사용하여 설정할 수 있으며, 이 속성은 Tomcat 인스턴스에 대한 접근을 제공합니다.
사용자 정의 환경
아래 예시는 ApplicationEngine.Configuration 클래스로 표현되는 사용자 정의 설정을 사용하여 여러 커넥터 엔드포인트로 서버를 실행하는 방법을 보여줍니다.
전체 예시는 embedded-server-multiple-connectors 를 참고하세요.
TIP
사용자 정의 환경을 사용하여 HTTPS를 제공 할 수도 있습니다.
명령줄 설정
Ktor를 사용하면 명령줄 인수를 사용하여 embeddedServer를 동적으로 설정할 수 있습니다. 이는 포트, 호스트 또는 타임아웃과 같은 설정을 런타임에 지정해야 하는 경우에 특히 유용할 수 있습니다.
이를 위해 CommandLineConfig 클래스를 사용하여 명령줄 인수를 설정 객체로 파싱하고 설정 블록 내에서 전달합니다.
이 예시에서는 port 및 host와 같은 엔진 설정 값을 재정의하기 위해 Application.Configuration의 takeFrom() 함수를 사용합니다. loadCommonConfiguration() 함수는 타임아웃과 같은 루트 환경의 설정을 로드합니다.
서버를 실행하려면 다음과 같은 방식으로 인수를 지정합니다.
TIP
정적 설정의 경우 설정 파일이나 환경 변수를 사용할 수 있습니다. 자세한 내용은 파일로 설정하기 를 참고하세요.