Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- aws
- AWS EKS
- CloudWatch
- minikube
- 공부
- AI
- Java
- mysql 튜닝
- Pinpoint
- Linux
- Kubernetes
- PETERICA
- Elasticsearch
- 정보처리기사실기 기출문제
- 기록으로 실력을 쌓자
- 코틀린 코루틴의 정석
- Spring
- 정보처리기사 실기 기출문제
- kotlin
- IntelliJ
- CKA 기출문제
- 오블완
- MySQL
- 정보처리기사 실기
- 티스토리챌린지
- kotlin spring
- kotlin coroutine
- kotlin querydsl
- APM
- CKA
Archives
- Today
- Total
피터의 개발이야기
[Kotlin] Ktor 샘플 프로젝트 생성과정, 10분 미만 본문
반응형
ㅁ 들어가며
ㅇ 지난 글, Ktor란?을 정리하였다.
# 요약
- Ktor는 JetBrains에서 개발한 Kotlin 전용 웹 개발 프레임워크로, 서버와 클라이언트 앱 개발을 모두 지원하며 코루틴 기반의 비동기 처리를 제공한다.
- Ktor의 주요 특징으로는 경량성, 코루틴 지원, 모듈형 아키텍처, 다양한 플랫폼 지원, 사용 편의성이 있다.
- Spring과 비교했을 때 Ktor는 부팅 속도가 빠르고 리소스 사용량이 적어, 마이크로서비스 아키텍처와 빠른 개발 및 배포가 필요한 상황에 적합하다.
ㅁ 프로젝트 생성
ㅇ ktor로 이동하고 Start를 클릭
ㅇ ktor-peterica로 프로젝트 이름 입력
ㅇ add plugin: Ktor Swagger-UI을 선택하니 의존성이 있는 Routing과 Webjars가 자동으로 등록되었다.
ㅇ Generate project 버튼을 클릭한다.
ㅇ 압축파일을 다운받아 인텔리제이로 프로젝트를 오픈한다.
ㅁ 인텔리제이로 실행
ㅇ 프로젝트를 오픈하고 Gradle > Tasks > application > run 클릭
ㅇ 정상적으로 서버가 기동되었다.
ㅁ 웹 접속
ㅇ http://localhost:8080으로 접속 성공
ㅇ http://localhost:8080/swagger-ui/index.html로 접속하여 swagger 화면을 테스트 하였다.
ㅁ 소스 분석
package com.example
import com.example.plugins.*
import io.ktor.server.application.*
fun main(args: Array<String>) {
io.ktor.server.netty.EngineMain.main(args)
}
fun Application.module() {
configureRouting()
}
ㅇ main에 모듈로 configureRouting()이 세팅되어 있다.
package com.example.plugins
import io.github.smiley4.ktorswaggerui.SwaggerUI
import io.ktor.http.*
import io.ktor.server.application.*
import io.ktor.server.application.Application
import io.ktor.server.application.install
import io.ktor.server.response.*
import io.ktor.server.routing.*
import io.ktor.server.webjars.*
fun Application.configureRouting() {
install(Webjars) {
path = "/webjars" //defaults to /webjars
}
install(SwaggerUI) {
swagger {
swaggerUrl = "swagger-ui"
forwardRoot = true
}
info {
title = "Example API"
version = "latest"
description = "Example API for testing and demonstration purposes."
}
server {
url = "http://localhost:8080"
description = "Development Server"
}
}
routing {
get("/") {
call.respondText("Hello World!")
}
get("/webjars") {
call.respondText("<script src='/webjars/jquery/jquery.js'></script>", ContentType.Text.Html)
}
}
}
ㅇ Swagger와 2개의 API를 세팅하는 소스의 전부이다.
ㅁ Ktor 샘플 소스
$ git clone https://github.com/ktorio/ktor-documentation.git
ㅇ Ktor의 문서에 소개된 다양한 샘플 소스를 다운받을 수 있다.
ㅇ 서버와 클라이언트 외에도 로깅, simulate-slow-server 등 개발에 필요할 법한 소스를 확인할 수 있었다.
ㅁ 마무리
플러그인 설정하고 소스 다운받아 실행하는데 10분도 걸리지 않았다. 서버개발의 신속성과 편의성이 좋았다. Ktor는 백엔드 개발자 뿐만 아니라 클라이언트 개발자도 필요에 따라 서버를 자신이 쉽게 만들 수 있는 프레임워크라고 생각한다.
작업했던 소스는 이곳에 있다.
ㅁ 함께 보면 좋은 사이트
ㅇ Ktor란?
반응형
'Programming > Kotlin' 카테고리의 다른 글
[Kotlin] ?(물음표)와 !!(느낌표 두개) (0) | 2024.06.28 |
---|---|
[Kotlin] Scope Functions (let, with, run, apply, also) 정리 (0) | 2024.06.25 |
Ktor란? (0) | 2024.06.19 |
[kotlin] 코틀린 코루틴의 정석 - 무제한 디스패처(Unconfined Dispatcher) (0) | 2024.06.14 |
[kotlin] 코틀린 코루틴의 정석 - 코루틴의 동작 원리(Coroutine과 Continuation) (0) | 2024.06.13 |
Comments