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 |
Tags
- 싱글톤
- Observer Pattern
- Abstract Factory
- PrototypePattern
- 디자인패턴
- r
- Singleton
- Kotlin
- 프로토타입 패턴
- Functional Programming
- ㅋㅁ
- factory method
- 함수형프로그래밍
- material3
- android designsystem
- builderPattern
- compose
- 추상 팩토리
- 추상팩토리패턴
- 옵저버 패턴
- 디자인패턴 #
- designPattern
- ㅓ
- 안드로이드 디자인시스템
- 코틀린
- F
- Design Pattern
- El
- 팩토리 메소드
- 빌터패턴
Archives
- Today
- Total
오늘도 더 나은 코드를 작성하였습니까?
ktor(Server) 본문
Ktor는 마이크로서비스, 웹 애플리케이션 등을 만들기 위한 비동기 프레임워크입니다.
IntelliJ IDEA Ultimate 전용 플러그인을 사용하거나 웹 기반 프로젝트 생성기를 사용하여 새 Ktor 프로젝트를 만들고 구성할 수 있습니다. 이 가이드에서는 간단한 Ktor 애플리케이션을 생성, 실행 및 테스트하는 방법을 보여줍니다.
- protocol: 통신규약, 사용자가 서버에 접속할 때 어떤 방식으로 통신할 지 정의한다.
- HTTP(Hyper Text Transfer Protocol): 웹 브라우저와 웹 서버가 서로 데이터(하이퍼 텍스트)를 주고받기 위해 만든 통신규약
- HTTPS(Hyper Text Transter Protocol Secure): HTTP에서 보안이 강화된 버전.
- host(domain): 인터넷에 접속되어 있는 각각의 컴퓨터를 가리키는 주소
- port: 포트번호
- 한 개의 컴퓨터엔 여러 개의 서버가 존재할 수 있다. 즉, 포트번호를 통해 어떤 서버를 이용할 지 결정한다.
- 웹서버는 전세계적으로 80번 포트를 이용하는 것이 표준이다. 따라서 url엔 기본적으로 포트번호 80이 생략되어 있다
- path: 서버 컴퓨터 내부에 있는 디렉토리의 파일. 즉, 자원의 경로
- query string: 데이터를 전달
- 쿼리 스트링의 시작은 "?"이고, 각 key-value쌍은 "&"로 구분된다
1. 프로젝트 기본설정.
2. plugin
authentication, serialization and content encoding, compression, cookie support등과 같은 Ktor 애플리케이션의 공통 기능을 제공하는 빌딩 블록인 플러그인 세트를 선택.
3.
Application.kt
package com.example
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import com.example.plugins.*
fun main() {
embeddedServer(Netty, port = 8080, host = "0.0.0.0") {
configureRouting()
}.start(wait = true)
}
EmbeddedServer fun은 서버 매개변수를 구성하고 애플리케이션을 실행한다.
Routing.kt
package com.example.plugins
import io.ktor.server.routing.*
import io.ktor.http.*
import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.request.*
fun Application.configureRouting() {
routing {
get("/") {
call.respondText("Hello World!")
}
}
}
configureRouting은 라우팅을 정의하는 extention Function 입니다.
이 기능은 별도의 플러그인 패키지(Routing.kt 파일)에 선언되어 있습니다.
라우팅 블록 내의 get funtion는
- / 경로에 대한 GET 요청을 수신하고 일반 텍스트 응답으로 응답합니다.