kotlin-ktor-ktorm

Wonjun Hwang
Wonjun HwangCEO @Kit Works Inc. à Kit Works inc.
코틀린 실전
코틀린 섬, 한 달 표류기
2023.07.23
키트웍스 김천규
1
코틀린을 쓰기 전
2
태생이
자바(Java)인데
괜찮을까?
한달 전의 나
3
4
== Extensible design
5
확장함수란?
기존 클래스에 함수를 추가할 수 있는 기능
 재사용성 및 가독성
6
확장함수 예시1. 메소드
7
확장함수 예시2. Builder
8
코드보기(play.kotlin)
9
10
Learning curve
공식문서만 보면 끝
https://ktor.io/docs/welcome.html
11
Ktor(케이터) 특징
성능: 라우팅을 하는 부분에서부터 suspend 함수로 작성
유연함
- 표준
- 인터페이스
- 구조
- 플러그인
12
성능: 코루틴(Coroutine)
라우팅 부분이 suspend로 동작
13
일반적으로 동시정 처리 시
TCS(Thread Context Switching)이 발생
Context Switching(문맥교환): 현재 진행하고 있는 Task(Process,
Thread)의 상태를 저장 후, 다음 진행할 Task의 상태를 읽어
진행하는 과정
14
코루틴(Coroutine)은
Context Switch이 발생 안함
15
유연함: 표준 Engine
16
유연함: 표준, 인증 인가
인증 별 공식 문서 기준으로 구현이 되있음
이를 이용해 쉽게 개발이 가능
17
유연함: 구조
• Group by file
• Group routing definitions
• Group by folders
• Group by features
18
Group routes by paths, Nested routes
19
Type-safe routing
20
Route extension functions
21
유연함: 플러그인
22
Real world: Ktor
23
24
25
Ktorm(케이텀) 특징
Extensible design
코틀린 시퀀스 api 랑 동일한 메서드 (filter, map, sortedBy, etc)
=>매우 간결, 실용적임
DCL 지원 안함
 Why? DB 관리자는 따로 있음 + ORM마다 DDL 규칙이 다름
다대다(N:N) 관계 지원 안함
Why? 테이블 관계가 복잡할 수록 코드 복잡도도 증가
26
27
CRUD 중 R을 가장 많은 시간 투자
28
비교: JPA-QueryDsl
29
비교: JPA-QueryDsl
생각해봅시다.
- Where 조건 간 서로 의존적인지, 독립적인지 알 수 있는가?
- 특정 조건에 따라 쿼리를 만들려면?
30
비교: Prisma
31
비교: Prisma
A, B 틀린 그림 찾기
32
A B
Ktorm: EntitySequence
filter, map, reduce 등등
기존 코틀린 표준 라이브러리 키워드랑 동일
33
Ktorm: Select
34
Ktorm 엔티티
35
Insert/Delete
36
Real world: Ktom
37
JS보다 TS, Java보다 Kotlin을 씁시다
38
a
39
1996년
1991년
1 sur 39

Recommandé

[2D4]Python에서의 동시성_병렬성 par
[2D4]Python에서의 동시성_병렬성[2D4]Python에서의 동시성_병렬성
[2D4]Python에서의 동시성_병렬성NAVER D2
30.5K vues146 diapositives
Pgday bdr gt1000 par
Pgday bdr gt1000Pgday bdr gt1000
Pgday bdr gt1000정대 천
38 vues28 diapositives
Pgday bdr 천정대 par
Pgday bdr 천정대Pgday bdr 천정대
Pgday bdr 천정대PgDay.Seoul
1.6K vues28 diapositives
자바8 나머지 공개 par
자바8 나머지 공개자바8 나머지 공개
자바8 나머지 공개Sungchul Park
2.9K vues24 diapositives
자바 메모리 릭 패턴 par
자바 메모리 릭 패턴자바 메모리 릭 패턴
자바 메모리 릭 패턴효원 강
5.4K vues10 diapositives
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화 par
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화
제프리 리처의 Windows via C/C++ : 8장 유저 모드에서의 스레드 동기화sung ki choi
8.1K vues48 diapositives

Contenu connexe

Plus de Wonjun Hwang

상속과 구현 par
상속과 구현상속과 구현
상속과 구현Wonjun Hwang
0 vue77 diapositives
오버라이딩 조금 더 알아보기 par
오버라이딩 조금 더 알아보기오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기Wonjun Hwang
0 vue22 diapositives
컴포넌트 설계 par
컴포넌트 설계컴포넌트 설계
컴포넌트 설계Wonjun Hwang
14 vues21 diapositives
성능 테스트 par
성능 테스트성능 테스트
성능 테스트Wonjun Hwang
13 vues13 diapositives
WebRTC par
WebRTCWebRTC
WebRTCWonjun Hwang
22 vues18 diapositives
Flutter & Firebase par
Flutter & FirebaseFlutter & Firebase
Flutter & FirebaseWonjun Hwang
18 vues16 diapositives

Plus de Wonjun Hwang(20)

오버라이딩 조금 더 알아보기 par Wonjun Hwang
오버라이딩 조금 더 알아보기오버라이딩 조금 더 알아보기
오버라이딩 조금 더 알아보기
Wonjun Hwang0 vue
프론트엔드 비동기 프로그래밍 par Wonjun Hwang
프론트엔드 비동기 프로그래밍프론트엔드 비동기 프로그래밍
프론트엔드 비동기 프로그래밍
Wonjun Hwang28 vues
트렌디 앱 - ARC & OBSIDIAN par Wonjun Hwang
트렌디 앱 - ARC & OBSIDIAN트렌디 앱 - ARC & OBSIDIAN
트렌디 앱 - ARC & OBSIDIAN
Wonjun Hwang29 vues
차이나는 개발자 클라스 par Wonjun Hwang
차이나는 개발자 클라스차이나는 개발자 클라스
차이나는 개발자 클라스
Wonjun Hwang6 vues
차이나는 개발자 클라스 par Wonjun Hwang
차이나는 개발자 클라스차이나는 개발자 클라스
차이나는 개발자 클라스
Wonjun Hwang37 vues

kotlin-ktor-ktorm