반응형

프레임워크(Framework)/Ktor 7

[Ktor] Ktor 프레임워크 서버 환경 변수 설정하기 - yml, hocon

개요 Ktor 프로젝트에서는 호스트 주소, 포트 번호, 모듈 등과 같은 서버 환경 변수를 다양한 방법으로 구성할 수 있다. 스프링 프로젝트에서는 서버 환경 변수를 properties 또는 yml 파일로 구성하는 반면에 Ktor 프로젝트는 서버 환경 변수를 애플리케이션 내에서 코틀린 코드로 구성하는 방법과, 스프링 프로젝트와 유사한 파일로 구성하는 방법으로 구분된다. 코트로 서버 환경 변수를 설정하는 방법보다 yml과 같은 파일로 서버 환경 변수를 구성하는 것이 친숙하기 때문에 파일로 환경 변수를 구성하는 방법을 알아보고자 한다. 의존성 추가 Ktor에서는 파일로 서버 환경 변수를 구성할 때 YMAL(.yml 또는 .ymal) 파일과 HOCON(.conf) 파일로 구성할 수 있다. 만약, yml 파일로 서..

[Ktor] Kotlin + Ktor 환경에서 의존성 주입하는 방법 - Dependency Injection

Intro Ktor 프레임워크는 Spring과는 달리 의존성 주입(DI)에 대한 기능을 기본적으로 제공하지 않는다. 따라서 수동으로 의존성 주입 설정을 하거나, 의존성 주입 라이브러리를 사용해야 한다. 코틀린 DI 라이브러리는 대표적으로 Koin, Dagger 등이 존재한다. 이 외에도 다양한 라이브러리들이 존재하지만 일반적으로 많이 사용되는 Koin 라이브러리를 사용하여 의존성 주입을 하고자 한다. 의존성 주입은 애플리케이션의 구성 요소를 느슨하게 결합(Loose Coupling)하여 코드 유지보수성과 테스트 용이성을 향상한다. 의존성 추가 Koin 라이브러리를 사용하기 위해 다음과 같이 의존성을 추가한다. build.gradle.kts dependencies { ... implementation("i..

[Ktor] Kotlin + Ktor 환경에서 Ktorm ORM 엔티티 작성 및 테이블 매핑하기

Ktorm의 Table과 Entity Ktorm에서 엔티티 정의와 테이블 매핑은 Table 클래스와 Entity 인터페이스를 통해 작성할 수 있다. Table 클래스 Ktorm의 Table 클래스는 데이터베이스 테이블을 나타내는 클래스로 테이블의 구조와 열(Column)을 정의할 수 있다. Table 클래스를 통해 데이터베이스와 상호 작용할 수 있다. 데이터베이스의 타입에 대응하는 함수들과, 키 설정 함수, 엔티티와 매핑하기 위한 바인딩 함수 등을 제공한다. 타입 함수 long(), varchar(), int(), boolean(), date() 등 키 설정 함수 primaryKey() : 기본키 설정 references() : 외래키 설정 object Departments : Table("t_depar..

[Ktor] Kotlin + Ktor + Ktorm 환경에서 MySQL 연동하기

Ktorm 자바 스프링 또는 코틀린 스프링에서 사용하는 ORM인 JPA가 있다면, ktor 프레임워크에서 사용할 수 있는 ORM은 Exposed 또는 Ktorm이 있다. 이 중에서도 Ktorm은 Kotlin에서 사용할 수 있는 JDBC 기반의 ORM 프레임워크다. Kotlin 프로젝트에서 데이터베이스 운영에 대하여 중복 코드를 줄이고 코틀린 코드로 SQL 쿼리를 작성할 수 있는 DSL 기능과 시퀀스 API를 제공한다. Ktorm 공식 문서 : https://www.ktorm.org/ Ktorm | Kotlin ORM lib with SQL DSL What’s Ktorm? Ktorm is a lightweight and efficient ORM Framework for Kotlin directly base..

[Ktor] Kotlin 객체로 Yml 파일 읽어서 사용하기 - Jackson 라이브러리 활용

Intro Spring Boot에서는 @Value 어노테이션을 통해 yml, properties 등 파일의 구성 정보를 쉽게 읽어서 값을 가져올 수 있다. 반면에 Ktor 프레임워크에서는 Kotlin 코드, HOCON(.conf), YAML(.yaml 또는 .yml) 파일을 통해 다양한 서버 환경 변수를 구성할 수 있다. yml(yaml) 파일을 통해 설정한 정보들을 관리할 경우에는 여러 라이브러리(Jackson, snakeyaml 등)를 활용하여 yml 파일을 직접 읽어서 변환한 후 사용해야 한다. Spring Boot 환경과 유사하게 YML 파일로 서버 환경 변수를 구성하고, Jackson 라이브러리를 활용해서 YML 파일을 객체로 매핑하여 프로퍼티 값으로 사용해 보고자 한다. build.gradle..

[Ktor] Ktor Framework HTTP API 작성 및 테스트

Intro Ktor 프레임워크의 공식문서를 기반으로 학습하여 간단히 HTTP API를 만들어 실행까지 해보는 것을 목표로 한다. 본 내용은 실제 데이터베이스를 사용하여 정보를 관리하지 않고 간단히 리스트에 저장하여 실습한다. 백엔드 역할을 수행할 수 있는 HTTP API 만들기 API 엔드포인트를 구성하고 정의하기 직렬화 플러그인을 통해 JSON 변환 단순화하기 고객(Customer)과 주문(Order)에 대한 정보 조회 고객(Customer) 정보 추가 및 제거 Ktor 프로젝트 생성하기 프로젝트 생성 Ktor Project Generator(https://start.ktor.io/) 또는 IntelliJ IDEA Ultimate를 통해 프로젝트를 생성한다. Ktor 프로젝트 생성 방법은 아래 게시글에..

[Ktor] Ktor Framework란? - Ktor 소개 및 프로젝트 생성하기

KtorKtor 프레임워크는 Kotlin과 IntelliJ IDEA 개발한 것으로 유명한 JetBrains에서 개발한 연결된 애플리케이션(Connected application)을 쉽게 구축할 수 있는 프레임워크이다. 개발자들 사이에서는 케이터 또는 크토르 등으로 불리고 있다. Ktor 프레임워크의 특징코틀린을 주 언어로 개발된 프레임워크다. 코틀린은 null 안전성, 확장 함수 등 여러 최신 언어 기능을 제공한다.연결된 애플리케이션(Connected applications)을 쉽게 구축할 수 있는 프레임워크로 웹 애플리케이션, HTTP 서비스, 모바일 및 웹 애플리케이션 등 유연하게 사용할 수 있다.고성능을 위해 설계되어 비동기(Asynchronous) 아키텍처로 수많은 동시 연결을 효율적으로 처리할 ..

반응형