Back-End

[Ktor] Ktor 프로젝트 생성 - (1)

MJ_94 2024. 11. 28. 12:08

이번 포스팅에서는 Ktor 서버 프로젝트를 만드는 방법부터 실행까지 과정을 설명한다.

더 나아가 Ktor에 익숙해지기 위해 여러 가지 작업도 추가해보며 연습해 볼 예정이다.

Ktor 프로젝트 생성

먼저 자신이 사용하고 있는 IntelliJ IDEA의 버전에 따라 생성 방법에 차이가 있다.

IntelliJ IDEA CE : 웹 기반의 Ktor project generator를 통해 쉽게 생성할 수 있다.
IntelliJ IDEA Ultimate : 전용 Ktor 플러그인을 사용하여 새 프로젝트를 생성할 수 있다.

Ktor Project Generator 사용하기

Ktor Project Generator를 통해 프로젝트를 만드는 방법에 대해 알아보자.

  1. Ktor project generator에 접속한다.
  2. Project artifact 필드는 com.example.ktor-sample-app 기본값을 가지고 있으므로 알맞는 artifact를 지정해 준다.

  1. Configure 버튼을 눌러 설정 메뉴를 열어준다.

configure를 통해 아래와 같은 설정값을 지정할 수 있다.

  • Build System: Gradle 또는 Maven 중 원하는 빌드 시스템을 선택
  • Ktor version: Ktor 버전을 선택
  • Engine: 서버 실행에 사용할 엔진을 선택
  • Configuration: 서버 매개변수를 YAML 또는 HOCON 파일로 지정할지, 아니면 코드에서 지정할지 선택
  • Include samples: 이 옵션을 활성화하면 플러그인 샘플 코드가 추가됨
  1. Done을 클릭하여 설정값을 저장하고 설정 메뉴 닫기.

  2. 하단의 plugins 리스트는 프로젝트에 추가할 수 있는 플러그인 목록이다.
    플러그인은 authentication, serialization 및 content encoding, compression, cookie support 등과 같은 Ktor 애플리케이션에서 일반적인 기능을 제공하는 구성 요소들이 있다.

  3. Download를 클릭하여 Ktor 프로젝트를 다운로드하자.


이제 다운로드한 프로젝트를 압축해제하고 실행시켜보자.



압축해제 및 프로젝트 실행하기

command line을 사용하여 프로젝트를 압축 해제하고, 빌드 및 실행하는 방법에 대해 알아보자.

  • 윗 장에서 ktor-sample이라는 프로젝트를 생성하고 다운로드했다.
  • MAC 기준으로, 다운로드한 프로젝트는 download 디렉토리에 위치해 있다.
  • 필요한 경우, 이름과 경로를 자신의 환경에 맞게 변경하면 된다.

이제 command line를 켜고 아래 순서대로 작업을 해보자.

1. 터미널을 통해 프로젝트를 다운로드 받은 경로로 이동한다.

cd Downloads

2. ZIP 파일을 동일한 이름으로 압축해제 한다.

unzip ktor-sample.zip -d ktor-sample

3. 새롭게 생성된 폴더로 이동한다.

cd ktor-sample

4. mac 시스템에서는 gradlew Gradle Helper 스크립트를 실행 가능하게 만들어야 한다. 이를 위해 chmod 명령어를 사용한다.

chmod +x ./gradlew

5. 프로젝트를 빌드한다.

./gradlew build

만약 위 명령어를 실행한 후 빌드에 성공했다면 이제 Gradle을 통해 프로젝트를 실행할 수 있다.

6. 프로젝트를 실행한다.

./gradlew run

7. 프로젝트가 정상 실행 되었다면, 브라우저를 열어 http://0.0.0.0:8080를 입력한다. 그럼 “Hello World!” 문구가 적힌 화면을 볼 수 있다. (저는 한글로 바꿔봤습니다)

 

이것으로 Ktor 프로젝트 실행까지 알아봤지만, 이렇게 굳이 직접 명령줄로 실행하지 않아도 IntelliJ IDEA를 통해 더 쉽게 실행할 수 있다.


추가 작업들

추가로 알아두면 좋은 작업들이 있다.

이 작업들은 상호 간에 의존성은 없지만 하나씩 추가할 때마다 점점 복잡하고 어렵다고 느낄 수 있으므로 위 리스트의 순서대로 배워가는 것을 추천한다.

관심이 있으신 분들은 링크를 클릭해 보시면 좋겠다.