클라이언트 애플리케이션 생성
코드 예시: tutorial-client-get-started
Ktor는 다중 플랫폼 비동기 HTTP 클라이언트를 포함하며, 이를 통해
이 튜토리얼에서는 요청을 보내고 응답을 출력하는 첫 번째 Ktor 클라이언트 애플리케이션을 생성하는 방법을 보여드립니다.
사전 요구 사항
이 튜토리얼을 시작하기 전에 IntelliJ IDEA Community 또는 Ultimate를 설치하세요.
새 프로젝트 생성
기존 프로젝트에서 Ktor 클라이언트를 수동으로
새 Kotlin 프로젝트를 생성하려면 IntelliJ IDEA를 열고 다음 단계를 따르세요:
시작 화면에서 New Project를 클릭하세요.
또는 주 메뉴에서 File | New | Project를 선택하세요.
New Project 마법사에서 왼쪽 목록에서 Kotlin 을 선택하세요.
오른쪽 창에서 다음 설정을 지정하세요:
Name : 프로젝트 이름을 지정하세요.
Location : 프로젝트 디렉터리를 지정하세요.
Build system : Gradle 이 선택되었는지 확인하세요.
Gradle DSL : Kotlin 을 선택하세요.
Add sample code : 생성된 프로젝트에 샘플 코드를 포함하려면 이 옵션을 선택하세요.
Create 를 클릭하고 IntelliJ IDEA가 프로젝트를 생성하고 의존성을 설치할 때까지 기다리세요.
의존성 추가
Ktor 클라이언트에 필요한 의존성을 추가해 보겠습니다.
gradle.properties 파일을 열고 Ktor 버전을 지정하기 위해 다음 줄을 추가하세요:
kotlinNOTE
Ktor의 EAP 버전을 사용하려면 Space 저장소를 추가해야 합니다.
build.gradle.kts 파일을 열고 다음 아티팩트를 의존성 블록에 추가하세요:
kotlinktor-client-core
는 주요 클라이언트 기능을 제공하는 핵심 의존성입니다.ktor-client-cio
는 네트워크 요청을 처리하는엔진을 위한 의존성입니다.네트워크 요청을 처리하는 엔진에 대해 알아봅니다.
build.gradle.kts 파일의 오른쪽 상단 모서리에 있는 Load Gradle Changes 아이콘을 클릭하여 새로 추가된 의존성을 설치하세요.
클라이언트 생성
클라이언트 구현을 추가하려면 src/main/kotlin 으로 이동하여 다음 단계를 따르세요:
Main.kt 파일을 열고 기존 코드를 다음 구현으로 교체하세요:
kotlinKtor에서 클라이언트는 HttpClient 클래스로 표현됩니다.
HttpClient.get()
메서드를 사용하여GET 요청을 생성하세요.요청 URL, HTTP 메서드, 헤더, 요청 본문 등 다양한 요청 매개변수를 지정하고 요청을 생성하는 방법을 알아봅니다.응답은응답을 받고, 응답 본문을 얻고, 응답 매개변수를 얻는 방법을 알아봅니다.HttpResponse
클래스 객체로 수신됩니다.kotlin위 코드를 추가하면 IDE는
get()
함수에 대해 다음 오류를 표시합니다: suspend 함수 'get'은 코루틴 또는 다른 suspend 함수에서만 호출되어야 합니다.이를 해결하려면
main()
함수를 suspend 함수로 만들어야 합니다.IntelliJ IDEA에서 정의 옆의 빨간 전구를 클릭하고 Make main suspend 를 선택하세요.
println()
함수를 사용하여 서버에서 반환된 상태 코드를 출력하고,close()
함수를 사용하여 스트림을 닫고 연결된 모든 리소스를 해제합니다. Main.kt 파일은 다음과 같아야 합니다:kotlin
애플리케이션 실행
애플리케이션을 실행하려면 Main.kt 파일로 이동하여 다음 단계를 따르세요:
IntelliJ IDEA에서
main()
함수 옆의 거터 아이콘을 클릭하고 Run 'MainKt' 를 선택하세요.- IntelliJ IDEA가 애플리케이션을 실행할 때까지 기다리세요.
IDE 하단의 Run 창에 출력이 표시됩니다.
서버가
200 OK
메시지로 응답하더라도, SLF4J가StaticLoggerBinder
클래스를 찾지 못해 no-operation (NOP) 로거 구현으로 기본 설정되었다는 오류 메시지가 표시됩니다. 이는 로깅이 비활성화되었음을 의미합니다.이제 작동하는 클라이언트 애플리케이션이 있습니다. 그러나 이 경고를 수정하고 로깅을 통해 HTTP 호출을 디버그하려면 추가 단계가 필요합니다.
로깅 활성화
Ktor는 JVM 로깅을 위해 SLF4J 추상화 계층을 사용하므로, 로깅을 활성화하려면 로깅 프레임워크(예: Logback)를 제공해야 합니다.
gradle.properties 파일에서 로깅 프레임워크의 버전을 지정하세요:
kotlinbuild.gradle.kts 파일을 열고 다음 아티팩트를 의존성 블록에 추가하세요:
kotlin- Load Gradle Changes 아이콘을 클릭하여 새로 추가된 의존성을 설치하세요.
IntelliJ IDEA에서 다시 실행 버튼(
)을 클릭하여 애플리케이션을 다시 시작하세요.
더 이상 오류가 표시되지 않지만, IDE 하단의 Run 창에는 동일한
200 OK
메시지가 표시됩니다.이로써 로깅을 활성화했습니다. 로그를 확인하려면 로깅 구성을 추가해야 합니다.
src/main/resources 로 이동하여 다음 구현으로 새 logback.xml 파일을 생성하세요:
xmlIntelliJ IDEA에서 다시 실행 버튼(
)을 클릭하여 애플리케이션을 다시 시작하세요.
이제 Run 창에서 출력된 응답 위에 트레이스 로그가 표시될 것입니다:
TIP
Ktor는