Skip to content

서버 생성하기

서버 생성하기

Ktor 애플리케이션을 생성하기 전에, 애플리케이션을 어떻게

할 것인지 고려해야 합니다:

  • 독립형 패키지(self-contained package) 형태

    이 경우, 네트워크 요청을 처리하는 데 사용되는 애플리케이션

    엔진(engine)
    네트워크 요청을 처리하는 엔진에 대해 알아봅니다.
    이 애플리케이션의 일부가 되어야 합니다. 애플리케이션은 엔진 설정, 연결 및 SSL 옵션에 대한 제어권을 갖습니다.

  • 서블릿(servlet) 형태

    이 경우, Ktor 애플리케이션은 애플리케이션 생명주기와 연결 설정을 제어하는 서블릿 컨테이너(Tomcat 또는 Jetty 등) 내부에서 배포될 수 있습니다.

독립형 패키지

Ktor 서버 애플리케이션을 독립형 패키지로 제공하려면 먼저 서버를 생성해야 합니다. 서버 설정에는 서버

엔진
네트워크 요청을 처리하는 엔진에 대해 알아봅니다.
(Netty, Jetty 등), 다양한 엔진 전용 옵션, 호스트 및 포트 값 등 다양한 설정이 포함될 수 있습니다. Ktor에서 서버를 생성하고 실행하는 두 가지 주요 접근 방식은 다음과 같습니다:

  • embeddedServer 함수는 코드에서 서버 파라미터를 설정 하고 애플리케이션을 빠르게 실행할 수 있는 간단한 방법입니다.

  • EngineMain은 서버 설정을 위한 더 많은 유연성을 제공합니다. 파일에 서버 파라미터를 지정 할 수 있으며 애플리케이션을 다시 컴파일하지 않고도 설정을 변경할 수 있습니다. 또한, 명령줄(command line)에서 애플리케이션을 실행하고 해당 명령줄 인수를 전달하여 필요한 서버 파라미터를 재정의(override)할 수 있습니다.

코드를 통한 설정

embeddedServer 함수는

코드
코드에서 다양한 서버 파라미터를 설정하는 방법을 알아봅니다.
에서 서버 파라미터를 설정하고 애플리케이션을 빠르게 실행하는 간단한 방법입니다. 아래의 코드 스니펫에서 이 함수는 서버를 시작하기 위해
엔진
네트워크 요청을 처리하는 엔진에 대해 알아봅니다.
과 포트를 파라미터로 받습니다. 다음 예제에서는 Netty 엔진을 사용하여 서버를 실행하고 8080 포트에서 수신 대기합니다:

kotlin

전체 예제는 embedded-server 를 참조하세요.

파일을 통한 설정

EngineMain은 선택한 엔진으로 서버를 시작하고 외부

설정 파일
설정 파일에서 다양한 서버 파라미터를 설정하는 방법을 알아봅니다.
(일반적으로 resource 디렉터리에 위치한 application.conf 또는 application.yaml)로부터
애플리케이션 모듈
모듈을 사용하면 라우트를 그룹화하여 애플리케이션을 구조화할 수 있습니다.
을 로드합니다.

로드할 모듈을 지정하는 것 외에도, 설정 파일에는 포트, 호스트, SSL 설정과 같은 다양한 서버 파라미터를 포함할 수 있습니다. 예를 들어, 아래 설정은 서버 포트를 8080으로 설정합니다.

kotlin
yaml

NOTE

EngineMain.main()으로 서버를 즉시 시작하는 대신, EngineMain.createServer()를 사용하여 서버 인스턴스를 수동으로 생성할 수 있습니다. 자세한 내용은 를 참조하세요.

전체 예제는 engine-main engine-main-yaml 을 참조하세요.

서블릿(Servlet)

Ktor 애플리케이션은 Tomcat 및 Jetty를 포함한 서블릿 컨테이너 내부에서 실행 및 배포될 수 있습니다. 서블릿 컨테이너 내부에 배포하려면

WAR
WAR 아카이브를 사용하여 서블릿 컨테이너 내에서 Ktor 애플리케이션을 실행하고 배포하는 방법을 알아봅니다.
아카이브를 생성한 다음, WAR를 지원하는 서버나 클라우드 서비스에 배포해야 합니다.