일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- suspend programming
- DB 기능
- Android
- .github
- 개발하는 정대리
- Bitrise
- navigation component
- 브론즈 1
- 프로그래머스
- 피보나치 수 2
- 브론즈1
- DB
- keystore
- kotlin
- 백준
- gradlew
- 실버2
- github action
- capitalize
- 최댓값 최솟값
- 데이터베이스
- 데이터베이스 첫걸음
- Myungpyo Shim
- LazyRow
- 실버 4
- compose
- LazyColumn
- Activirty
- 성빈랜드
- 2레벨
- Today
- Total
plzy의 개발 블로그
[Ktor] kotlin으로 서버를 만들어보자 #1 기본 설정하기 본문
kotlin으로 백엔드를 만든다면 어떤 방법이 있을까?
kotlin spring도 있겠지만, ktor이라는 것도 있다.
과연 ktor이 무엇인지 알아보고 기본 설정을 해보자
ktor이란?
JetBrains에서 만든 서버 프레임워크이다.
ktor를 쓰면 코루틴 기반의 비동기 서버와 HTTP 클라이언트 모두 개발이 가능하다는 장점이 있다.
기본 설정하기
프로젝트 생성
Gradle에 가서 우리는 kotlin을 사용할 거기 때문에 Kotlin/JVM으로 설정한다.
그리고 Kotlin DSL build script를 체크해주자.
name은 아무렇게나 적고 FINISH를 눌러준다.dependencies 추가하기
ktor를 사용할려면 ktor 의존성을 추가해줘야 한다.
build.gradle.kts에 가서 dependencies 안에 추가해주자.implementation("io.ktor:ktor-server-core:2.0.0") implementation("io.ktor:ktor-server-netty:2.0.0") implementation("ch.qos.logback:logback-classic:1.2.7")
ktor를 실행시키기 위해서는 engine을 정의해줘야 한다.
application { mainClass.set("io.ktor.server.netty.EngineMain") }
완성된 build.gradle.kts
plugins { application kotlin("jvm") version "1.6.10" } group = "org.example" version = "1.0-SNAPSHOT" application { mainClass.set("io.ktor.server.netty.EngineMain") } repositories { mavenCentral() } dependencies { implementation(kotlin("stdlib")) implementation("io.ktor:ktor-server-core:2.0.0") implementation("io.ktor:ktor-server-netty:2.0.0") implementation("ch.qos.logback:logback-classic:1.2.7") }
application.conf 생성
자신이 쓸 포트번호를 설정해줘야 한다.
resources에 application.conf를 생성해준다.ktor{ deployment { port=8010 } application { modules = [com.example.ApplicationKt.module] } }
만약 자신이 port번호를 바꾸고 싶으면 위의 port에 다른 번호를 넣으면 된다.
ktor 실행하기
실제로 ktor를 실행해보자
kotlin package에 Application.kt 파일을 생성한 뒤 돌려보자.package com.example import io.ktor.server.application.* import io.ktor.server.response.* import io.ktor.server.routing.* fun main(args: Array<String>) : Unit = io.ktor.server.netty.EngineMain.main(args = args) fun Application.module() { routing { get("/") { call.respondText("Hello World!") } } }
fun main에 자신이 선언한 Engine을 설정해준다.
Application.module 함수에는 선언된 url에 어떤 식으로 response가 되는지 나타내 주는 함수이다.get("/") 은 http://localhost:8080/ url에 responseText인 ("Hello World!")로 설정해줬으므로
Hello World 가 뜰 것이다.
'DB' 카테고리의 다른 글
데이터베이스의 종류 (0) | 2021.02.20 |
---|---|
[DB] 데이터베이스의 기능 4 (보안) (0) | 2021.02.20 |
[DB] 데이터베이스의 기능 3 (장애 대응) (0) | 2021.02.20 |
[DB] 데이터베이스의 기능 2 (동시성 제어) (0) | 2021.02.20 |
[DB] 데이터베이스의 기능들에는 어떤 것이 있을까? (검색과 갱신) (0) | 2021.02.20 |